[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash testsuite/actionscript.all/with.as server...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash testsuite/actionscript.all/with.as server... |
Date: |
Mon, 15 Oct 2007 21:42:21 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/10/15 21:42:20
Modified files:
testsuite/actionscript.all: with.as
server : as_environment.cpp as_environment.h
. : ChangeLog
Log message:
* server/as_environment.{cpp,h}: have
find_object_{dot,slash}syntax
support a scope stack.
* testsuite/actionscript.all/with.as: fix last failing test.
Should be
easy to add more failing (hint: get variable in
one-before-last member
of with stack scope ).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/with.as?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.97&r2=1.98
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4613&r2=1.4614
Patches:
Index: testsuite/actionscript.all/with.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/with.as,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- testsuite/actionscript.all/with.as 14 Oct 2007 21:38:11 -0000 1.28
+++ testsuite/actionscript.all/with.as 15 Oct 2007 21:42:20 -0000 1.29
@@ -21,7 +21,7 @@
// compile this test case with Ming makeswf, and then
// execute it like this gnash -1 -r 0 -v out.swf
-rcsid="$Id: with.as,v 1.28 2007/10/14 21:38:11 strk Exp $";
+rcsid="$Id: with.as,v 1.29 2007/10/15 21:42:20 strk Exp $";
#include "check.as"
@@ -382,7 +382,7 @@
getvariable
setvariable
};
- xcheck_equals(checkpoint, "o.i.j");
+ check_equals(checkpoint, "o.i.j");
//// SETTING VARIABLES
Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -b -r1.97 -r1.98
--- server/as_environment.cpp 15 Oct 2007 09:40:07 -0000 1.97
+++ server/as_environment.cpp 15 Oct 2007 21:42:20 -0000 1.98
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: as_environment.cpp,v 1.97 2007/10/15 09:40:07 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.98 2007/10/15 21:42:20 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -66,7 +66,7 @@
// TODO: let find_target return generic as_objects, or use 'with'
stack,
// see player2.swf or bug #18758 (strip.swf)
// @@ TODO: should we use scopeStack here too ?
- as_object* target = is_slash_based ? find_object_slashsyntax(path) :
find_object_dotsyntax(path);
+ as_object* target = is_slash_based ? find_object_slashsyntax(path,
&scopeStack) : find_object_dotsyntax(path, &scopeStack);
if (target)
{
@@ -262,7 +262,7 @@
if (parse_path(varname, path, var, &is_slash_based)) {
//log_msg(_("Variable '%s' parsed into path='%s', var='%s'"),
varname.c_str(), path.c_str(), var.c_str());
//target = find_target(path);
- target = is_slash_based ? find_object_slashsyntax(path) :
find_object_dotsyntax(path);
+ target = is_slash_based ? find_object_slashsyntax(path, &scopeStack) :
find_object_dotsyntax(path, &scopeStack);
if (target)
{
target->set_member(VM::get().getStringTable().find(var), val);
@@ -638,7 +638,7 @@
}
as_object*
-as_environment::find_object_dotsyntax(const std::string& path) const
+as_environment::find_object_dotsyntax(const std::string& path, const
ScopeStack* scopeStack) const
{
#ifdef DEBUG_TARGET_FINDING
log_msg(_("find_object_dotsyntax(%s) called"), path.c_str());
@@ -658,6 +658,7 @@
//assert(path.length() > 0);
as_object* env = m_target;
+ if ( scopeStack && ! scopeStack->empty() ) env = scopeStack->back().get();
assert(env);
const char* p = path.c_str();
@@ -760,7 +761,7 @@
}
as_object*
-as_environment::find_object_slashsyntax(const std::string& path) const
+as_environment::find_object_slashsyntax(const std::string& path, const
ScopeStack* scopeStack) const
{
#ifdef DEBUG_TARGET_FINDING
log_msg(_("find_object_slashsyntax(%s) called"), path.c_str());
@@ -775,6 +776,7 @@
}
as_object* env = m_target;
+ if ( scopeStack && ! scopeStack->empty() ) env = scopeStack->back().get();
assert(env);
const char* p = path.c_str();
Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- server/as_environment.h 9 Oct 2007 16:34:54 -0000 1.58
+++ server/as_environment.h 15 Oct 2007 21:42:20 -0000 1.59
@@ -640,7 +640,7 @@
///
/// Return NULL if path doesn't point to an object.
///
- as_object* find_object_slashsyntax(const std::string& path) const;
+ as_object* find_object_slashsyntax(const std::string& path, const
ScopeStack* scopeStack=NULL) const;
/// Find an object referenced by the given path (dot syntax).
//
@@ -648,7 +648,7 @@
///
/// Return NULL if path doesn't point to an object.
///
- as_object* find_object_dotsyntax(const std::string& path) const;
+ as_object* find_object_dotsyntax(const std::string& path, const
ScopeStack* scopeStack=NULL) const;
};
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4613
retrieving revision 1.4614
diff -u -b -r1.4613 -r1.4614
--- ChangeLog 15 Oct 2007 12:58:59 -0000 1.4613
+++ ChangeLog 15 Oct 2007 21:42:20 -0000 1.4614
@@ -1,3 +1,11 @@
+2007-10-15 Sandro Santilli <address@hidden>
+
+ * server/as_environment.{cpp,h}: have find_object_{dot,slash}syntax
+ support a scope stack.
+ * testsuite/actionscript.all/with.as: fix last failing test. Should be
+ easy to add more failing (hint: get variable in one-before-last member
+ of with stack scope).
+
2007-10-15 Udo Giacomozzi <address@hidden>
* backend/render_handler_agg.cpp, backend/render_handler_agg.h,
gui/fb.cpp,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash testsuite/actionscript.all/with.as server...,
Sandro Santilli <=