gnash-commit
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]