CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/11/21 22:35:37
Modified files: . : ChangeLog server/vm : ASHandlers.cpp testsuite/actionscript.all: ops.as Log message: ActionStringCompare needs versioned string conversion. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4911&r2=1.4912 http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.157&r2=1.158 http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/ops.as?cvsroot=gnash&r1=1.28&r2=1.29 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4911 retrieving revision 1.4912 diff -u -b -r1.4911 -r1.4912 --- ChangeLog 21 Nov 2007 21:57:51 -0000 1.4911 +++ ChangeLog 21 Nov 2007 22:35:36 -0000 1.4912 @@ -1,5 +1,12 @@ 2007-11-21 Sandro Santilli <[EMAIL PROTECTED]> + * server/vm/ASHandlers.cpp (ActionStringCompare): + use versioned string conversion. + * testsuite/actionscript.all/ops.as: few null/undefined + string comparison tests. + +2007-11-21 Sandro Santilli <[EMAIL PROTECTED]> + * server/vm/ASHandlers.cpp (ActionLessThen, ActionEqual): return a number rather then a bool in swf4 or lower. Index: server/vm/ASHandlers.cpp =================================================================== RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v retrieving revision 1.157 retrieving revision 1.158 diff -u -b -r1.157 -r1.158 --- server/vm/ASHandlers.cpp 21 Nov 2007 21:57:51 -0000 1.157 +++ server/vm/ASHandlers.cpp 21 Nov 2007 22:35:37 -0000 1.158 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: ASHandlers.cpp,v 1.157 2007/11/21 21:57:51 strk Exp $ */ +/* $Id: ASHandlers.cpp,v 1.158 2007/11/21 22:35:37 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1344,7 +1344,8 @@ // GNASH_REPORT_FUNCTION; as_environment& env = thread.env; thread.ensureStack(2); - env.top(1).set_bool(env.top(1).to_string() < env.top(0).to_string()); + int ver = env.get_version(); + env.top(1).set_bool(env.top(1).to_string_versioned(ver) < env.top(0).to_string_versioned(ver)); env.drop(1); } Index: testsuite/actionscript.all/ops.as =================================================================== RCS file: /sources/gnash/gnash/testsuite/actionscript.all/ops.as,v retrieving revision 1.28 retrieving revision 1.29 diff -u -b -r1.28 -r1.29 --- testsuite/actionscript.all/ops.as 21 Nov 2007 06:56:17 -0000 1.28 +++ testsuite/actionscript.all/ops.as 21 Nov 2007 22:35:37 -0000 1.29 @@ -20,7 +20,7 @@ * Test binary predicates (equal, less_then, greater_then, logical and bitwise ops) */ -rcsid="$Id: ops.as,v 1.28 2007/11/21 06:56:17 zoulunkai Exp $"; +rcsid="$Id: ops.as,v 1.29 2007/11/21 22:35:37 strk Exp $"; #include "check.as" @@ -350,6 +350,47 @@ check(z!=y); check_equals(z, true); +//------------------------------------------------ +// String comparison (ACTION_STRINGCOMPARE : 0x29) +//------------------------------------------------ + +asm { + push "z", undefined, null + stringlessthan setvariable +}; +check_equals(typeof(z), 'boolean'); +#if OUTPUT_VERSION < 7 + check(z); +#else + check(!z); +#endif + +asm { + push "z", null, undefined + stringlessthan setvariable +}; +check_equals(typeof(z), 'boolean'); +#if OUTPUT_VERSION < 7 + check(!z); +#else + check(z); +#endif + +asm { + push "z", null, null + stringlessthan setvariable +}; +check_equals(typeof(z), 'boolean'); +check(!z); + +asm { + push "z", undefined, undefined + stringlessthan setvariable +}; +check_equals(typeof(z), 'boolean'); +check(!z); + +// TODO: add saner tests for stringcompare here //------------------------------------------------ // Bitwise AND operator (ACTION_BITWISEAND : 0x60) @@ -688,7 +729,7 @@ check(isNaN(y)); #if OUTPUT_VERSION < 7 - totals(205); + totals(213); #else - totals(207); + totals(215); #endif _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit