[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_value.cpp server/as_v...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_value.cpp server/as_v... |
Date: |
Mon, 09 Jul 2007 03:30:50 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/07/09 03:30:50
Modified files:
. : ChangeLog
server : as_value.cpp as_value.h
testsuite/actionscript.all: Number.as
Log message:
* server/as_value.{cpp,h} (equals): don't always force string
comparison if the first argument is a string (matches ECMA
spec,
fixes bug #20403).
* testsuite/actionscript.all/Number.as: add test for string:00
==
number:0
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3684&r2=1.3685
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.55&r2=1.56
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.h?cvsroot=gnash&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Number.as?cvsroot=gnash&r1=1.21&r2=1.22
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3684
retrieving revision 1.3685
diff -u -b -r1.3684 -r1.3685
--- ChangeLog 9 Jul 2007 02:13:43 -0000 1.3684
+++ ChangeLog 9 Jul 2007 03:30:49 -0000 1.3685
@@ -1,5 +1,13 @@
2007-07-08 Sandro Santilli <address@hidden>
+ * server/as_value.{cpp,h} (equals): don't always force string
+ comparison if the first argument is a string (matches ECMA spec,
+ fixes bug #20403).
+ * testsuite/actionscript.all/Number.as: add test for string:00 ==
+ number:0
+
+2007-07-08 Sandro Santilli <address@hidden>
+
* server/asobj/Global.h: include extension.h when needed.
* server/swf.h: link to info about ActionNewAdd
* testsuite/actionscript.all/Number.as: Add a quick testcases
Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- server/as_value.cpp 1 Jul 2007 10:54:20 -0000 1.55
+++ server/as_value.cpp 9 Jul 2007 03:30:50 -0000 1.56
@@ -658,10 +658,6 @@
if ( obj_or_func && v_obj_or_func ) return m_object_value ==
v.m_object_value;
if ( m_type == v.m_type ) return equalsSameType(v);
- else if (m_type == STRING)
- {
- return m_string_value == v.to_string(env);
- }
else if (m_type == NUMBER && v.m_type == STRING)
{
return equalsSameType(v.to_number(env)); // m_number_value ==
v.to_number(env);
@@ -672,6 +668,10 @@
return v.equalsSameType(to_number(env)); // m_number_value ==
v.to_number(env);
//return v.m_number_value == to_number(env);
}
+ else if (m_type == STRING)
+ {
+ return m_string_value == v.to_string(env);
+ }
else if (m_type == BOOLEAN)
{
return m_boolean_value == v.to_bool();
Index: server/as_value.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.h,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- server/as_value.h 1 Jul 2007 10:54:20 -0000 1.56
+++ server/as_value.h 9 Jul 2007 03:30:50 -0000 1.57
@@ -15,7 +15,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-/* $Id: as_value.h,v 1.56 2007/07/01 10:54:20 bjacques Exp $ */
+/* $Id: as_value.h,v 1.57 2007/07/09 03:30:50 strk Exp $ */
#ifndef GNASH_AS_VALUE_H
#define GNASH_AS_VALUE_H
@@ -521,6 +521,13 @@
//
/// See ECMA-262 abstract equality comparison (sect 11.9.3)
///
+ /// NOTE: these invariants should hold
+ ///
+ /// - A != B is equivalent to ! ( A == B )
+ /// - A == B is equivalent to B == A, except for order of
+ /// evaluation of A and B.
+ ///
+ ///
/// @param env
/// The environment to use for running the toString() method
/// for object values. If NULL, toString() won't be run.
Index: testsuite/actionscript.all/Number.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Number.as,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- testsuite/actionscript.all/Number.as 9 Jul 2007 01:59:42 -0000
1.21
+++ testsuite/actionscript.all/Number.as 9 Jul 2007 03:30:50 -0000
1.22
@@ -26,7 +26,7 @@
// TODO: test with SWF target != 6 (the only one tested so far)
//
-rcsid="$Id: Number.as,v 1.21 2007/07/09 01:59:42 strk Exp $";
+rcsid="$Id: Number.as,v 1.22 2007/07/09 03:30:50 strk Exp $";
#include "check.as"
@@ -90,7 +90,7 @@
check_equals( typeof(NaN), 'number' );
check_equals( typeof(isNaN), 'function' );
check_equals( typeof(isNaN(NaN)), 'boolean' );
-check(NaN != NaN);
+check(NaN != NaN); // TODO: this seems a bogus check, the check should
actually return false
check( isNaN(NaN) );
check_equals( typeof(isNaN(0/0)), 'boolean' );
check( isNaN(0/0) );
@@ -261,6 +261,9 @@
// ActionNewAdd
check_equals('0' + -1, '0-1');
+// string:00 number:0 equality
+check_equals('00', 0);
+
check_equals(typeof(Number.prototype.valueOf), 'function');
check_equals(typeof(Number.prototype.toString), 'function');
#if OUTPUT_VERSION > 5
- [Gnash-commit] gnash ChangeLog server/as_value.cpp server/as_v...,
Sandro Santilli <=