[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu... |
Date: |
Fri, 11 Jan 2008 08:50:15 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/01/11 08:50:15
Modified files:
. : ChangeLog
server/vm : ASHandlers.cpp
testsuite/actionscript.all: String.as ops.as
Log message:
(ActionNewEquals): for SWF<=5 always convert the input parameters to
primitives.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5373&r2=1.5374
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.176&r2=1.177
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/String.as?cvsroot=gnash&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/ops.as?cvsroot=gnash&r1=1.30&r2=1.31
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5373
retrieving revision 1.5374
diff -u -b -r1.5373 -r1.5374
--- ChangeLog 11 Jan 2008 08:36:19 -0000 1.5373
+++ ChangeLog 11 Jan 2008 08:50:14 -0000 1.5374
@@ -1,5 +1,14 @@
2008-01-11 Sandro Santilli <address@hidden>
+ * server/vm/ASHandlers.cpp (ActionNewEquals): for SWF<=5
+ always convert the input parameters to primitives.
+ * testsuite/actionscript.all/String.as: success in
+ number to string object comparison.
+ * testsuite/actionscript.all/ops.as: success in comparison
+ between different string objects with same primitive value.
+
+2008-01-11 Sandro Santilli <address@hidden>
+
* testsuite/actionscript.all/String.as: test String object
construction.
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -b -r1.176 -r1.177
--- server/vm/ASHandlers.cpp 9 Jan 2008 17:52:17 -0000 1.176
+++ server/vm/ASHandlers.cpp 11 Jan 2008 08:50:14 -0000 1.177
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: ASHandlers.cpp,v 1.176 2008/01/09 17:52:17 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.177 2008/01/11 08:50:14 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -3022,8 +3022,32 @@
thread.ensureStack(2);
+ int swfVersion = VM::get().getSWFVersion();
+ if ( swfVersion <= 5 )
+ {
+ as_value op1 = env.top(0);
+ try { op1 = op1.to_primitive(); }
+ catch (ActionTypeError& e)
+ {
+ log_debug(_("to_primitive() threw an ActionTypeError %s"),
+ op1.to_debug_string().c_str(), e.what());
+ }
+
+ as_value op2 = env.top(1);
+ try { op2 = op2.to_primitive(); }
+ catch (ActionTypeError& e)
+ {
+ log_debug(_("to_primitive() threw an ActionTypeError %s"),
+ op2.to_debug_string().c_str(), e.what());
+ }
+
+ env.top(1).set_bool(op1.equals(op2));
+ }
+ else
+ {
/// ECMA-262 abstract equality comparison (sect 11.9.3)
env.top(1).set_bool(env.top(1).equals(env.top(0)));
+ }
env.drop(1);
}
Index: testsuite/actionscript.all/String.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/String.as,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- testsuite/actionscript.all/String.as 11 Jan 2008 08:36:20 -0000
1.31
+++ testsuite/actionscript.all/String.as 11 Jan 2008 08:50:15 -0000
1.32
@@ -16,7 +16,7 @@
// Original author: Mike Carlson - June 19th, 2006
-rcsid="$Id: String.as,v 1.31 2008/01/11 08:36:20 strk Exp $";
+rcsid="$Id: String.as,v 1.32 2008/01/11 08:50:15 strk Exp $";
#include "check.as"
@@ -435,7 +435,7 @@
#if OUTPUT_VERSION >= 6
check(stringObject != numberObject);
#else
-xcheck_equals(stringObject, numberObject); // SWF5 always converts to string !!
+check_equals(stringObject, numberObject); // SWF5 always converts to primitive
before comparison !!
#endif
check_equals(numberObject.toString(), stringObject);
check_equals(numberObject.toString(), stringObject.toString());
Index: testsuite/actionscript.all/ops.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/ops.as,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- testsuite/actionscript.all/ops.as 2 Dec 2007 09:15:55 -0000 1.30
+++ testsuite/actionscript.all/ops.as 11 Jan 2008 08:50:15 -0000 1.31
@@ -20,7 +20,7 @@
* Test binary predicates (equal, less_then, greater_then, logical and
bitwise ops)
*/
-rcsid="$Id: ops.as,v 1.30 2007/12/02 09:15:55 strk Exp $";
+rcsid="$Id: ops.as,v 1.31 2008/01/11 08:50:15 strk Exp $";
#include "check.as"
@@ -131,7 +131,7 @@
#if OUTPUT_VERSION > 5
check( ! (str1 == str2) ); // they are not the same object
#else // OUTPUT_VERSION <= 5
- xcheck( str1 == str2 ); // SWF5 automatically converts to a string for
comparison !
+ check( str1 == str2 ); // SWF5 automatically converts to primitive before
comparison !
#endif // OUTPUT_VERSION <= 5
// for MovieClip
- [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp testsu...,
Sandro Santilli <=