[Top][All Lists]
[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,
- [Gnash-commit] gnash ChangeLog server/as_value.cpp testsuite/m...,
Zou Lunkai <=