gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/as_value.cpp testsuite/m...


From: Zou Lunkai
Subject: [Gnash-commit] gnash ChangeLog server/as_value.cpp testsuite/m...
Date: Wed, 21 Nov 2007 08:29:41 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Zou Lunkai <zoulunkai>  07/11/21 08:29:41

Modified files:
        .              : ChangeLog 
        server         : as_value.cpp 
        testsuite/misc-swfc.all: swf4opcode.sc 

Log message:
        * server/as_value.cpp: to_number() convert invalid float literal
          to zero instead of NaN for swf<5.
        * testsuite/misc-swfc.all/swf4opcode.sc: xcheck->check.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4905&r2=1.4906
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.96&r2=1.97
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-swfc.all/swf4opcode.sc?cvsroot=gnash&r1=1.4&r2=1.5

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4905
retrieving revision 1.4906
diff -u -b -r1.4905 -r1.4906
--- ChangeLog   21 Nov 2007 06:56:16 -0000      1.4905
+++ ChangeLog   21 Nov 2007 08:29:40 -0000      1.4906
@@ -1,5 +1,11 @@
 2007-11-21 Zou Lunkai <address@hidden>
 
+       * server/as_value.cpp: to_number() convert invalid float literal
+         to zero instead of NaN for swf<5.
+       * testsuite/misc-swfc.all/swf4opcode.sc: xcheck->check.
+       
+2007-11-21 Zou Lunkai <address@hidden>
+
        * testsuite/misc-swfc.all/swf4opcode.sc,
          testsuite/misc-actionsript.all/ops.as: more opcode tests. 
          

Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- server/as_value.cpp 20 Nov 2007 00:44:03 -0000      1.96
+++ server/as_value.cpp 21 Nov 2007 08:29:40 -0000      1.97
@@ -348,23 +348,27 @@
                        // @@ Moock says the rule here is: if the
                        // string is a valid float literal, then it
                        // gets converted; otherwise it is set to NaN.
-
-                       try { 
-
+            try 
+            { 
                                double d = 
boost::lexical_cast<double>(getStr());
 
-                               if ( isinf(d) ) {
+                if ( isinf(d) ) 
+                {
+                    if(swfversion <= 4)  
+                        return (double)0.0;
+                    else    
                                        return (double)NAN;
                                }
 
                                return d;
-
-                       } catch (boost::bad_lexical_cast &) {
-
+            } 
+            catch (boost::bad_lexical_cast &) 
+            {
+                if(swfversion <= 4)  
+                    return (double)0.0;
+                else    
                                return (double)NAN;
-
                        }
-
                }
 
                case NULLTYPE:

Index: testsuite/misc-swfc.all/swf4opcode.sc
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-swfc.all/swf4opcode.sc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- testsuite/misc-swfc.all/swf4opcode.sc       21 Nov 2007 06:56:17 -0000      
1.4
+++ testsuite/misc-swfc.all/swf4opcode.sc       21 Nov 2007 08:29:40 -0000      
1.5
@@ -24,7 +24,7 @@
  *  Deduction:
  *
  *     There is no NaN number in swf4 at all, invalid numbers are converted to 
0.
- *     Fix as_value::to_number() should fix all tests in this file.
+ *    
  */
 
 //
@@ -64,19 +64,19 @@
         //  test opcode ActionEquals
         //
         testvar = (uninitialized1 == '');
-        xcheck_equals(testvar, 1);
+        check_equals(testvar, 1);
         testvar = ('' == uninitialized2);
-        xcheck_equals(testvar, 1); 
+        check_equals(testvar, 1); 
         testvar = ('' == '');  
-        xcheck_equals(testvar, 1); 
+        check_equals(testvar, 1); 
         testvar = ('xyz' == 'abc');
         //Ref: http://swishtutor.com
         // both hands are converted to zero
-        xcheck_equals(testvar, 1); 
-        xcheck_equals('xyz', 0);
-        xcheck_equals('abc', 0);
-        xcheck_equals('xyz', 'xyz');
-        xcheck_equals('xyz', 'abc');
+        check_equals(testvar, 1); 
+        check_equals('xyz', 0);
+        check_equals('abc', 0);
+        check_equals('xyz', 'xyz');
+        check_equals('xyz', 'abc');
         
         // test 'undefined' in swf4
         check_equals(uninitialized2, uninitialized3);
@@ -113,8 +113,8 @@
         // x and y are converted to number 0 before comparision
         check( ! (x < y) );
         check( ! (x > y) );
-        xcheck( x == y );
-        xcheck( x == 0);
+        check( x == y );
+        check( x == 0);
         
         //
         // test swf4 ActionMultiply, ActionDivide, ActionAdd, ActionSubstract
@@ -122,13 +122,13 @@
         x = "abc";
         y = 0;
         z = x * y;
-        xcheck_equals(z, 0);
+        check_equals(z, 0);
         z = x / 1;
-        xcheck_equals(z, 0);
+        check_equals(z, 0);
         z = x + 1;
-        xcheck_equals(z, 1);
+        check_equals(z, 1);
         z = x - 1;
-        xcheck_equals(z, -1);
+        check_equals(z, -1);
         
         //
         // TODO: add tests for ActionStringEq, ActionStringGreater,




reply via email to

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