[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/Number.cpp testsui...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/Number.cpp testsui... |
Date: |
Wed, 02 Apr 2008 10:55:33 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/04/02 10:55:32
Modified files:
. : ChangeLog
server/asobj : Number.cpp
testsuite/actionscript.all: Number.as
testsuite/swfdec: PASSING
Log message:
Number.valueOf is also only meant to work for Number instances.
Fixes all the odd tests for Number.prototype in SWF5.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6160&r2=1.6161
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Number.as?cvsroot=gnash&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/swfdec/PASSING?cvsroot=gnash&r1=1.117&r2=1.118
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6160
retrieving revision 1.6161
diff -u -b -r1.6160 -r1.6161
--- ChangeLog 2 Apr 2008 09:54:49 -0000 1.6160
+++ ChangeLog 2 Apr 2008 10:55:30 -0000 1.6161
@@ -1,11 +1,18 @@
2008-04-01 Sandro Santilli <address@hidden>
+ * server/asobj/Number.cpp: add valueOf_method, as Number.valueOf like
+ Number.toString must only work for number instances.
+ * testsuite/actionscript.all/Number.as: those weird tests for
+ Number.prototype in swf5 are fixed now.
+ * testsuite/swfdec/PASSING: number.swf succeeds.
+
+2008-04-01 Sandro Santilli <address@hidden>
+
* testsuite/actionscript.all/Number.as: more tests on Number.prototype
(weird results)
* server/asobj/Number.as (toString_method): Number.prototype.toString
is supposed to work _only_ for the number object.
* testsuite/actionscript.all/Boolean.as: !"true" succeeds.
- * testsuite/swfdec/PASSING: number.swf succeeds.
2008-04-01 Benjamin Wolsey <address@hidden>
Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/asobj/Number.cpp 2 Apr 2008 09:39:59 -0000 1.42
+++ server/asobj/Number.cpp 2 Apr 2008 10:55:32 -0000 1.43
@@ -106,6 +106,8 @@
}
static as_value toString_method(const fn_call& fn);
+
+ static as_value valueOf_method(const fn_call& fn);
};
static void
@@ -122,7 +124,7 @@
o.init_member("toString", new
builtin_function(number_as_object::toString_method));
// Number.valueOf()
- o.init_member("valueOf", new
builtin_function(as_object::valueof_method));
+ o.init_member("valueOf", new
builtin_function(number_as_object::valueOf_method));
}
@@ -221,4 +223,14 @@
return as_value::doubleToString(val, radix);
}
+as_value
+number_as_object::valueOf_method(const fn_call& fn)
+{
+ // Number.valueOf must only work for number object, not generic ones.
+ // This is so trace(Number.prototype == Object) return true in swf5 ?
+ boost::intrusive_ptr<number_as_object> obj =
ensureType<number_as_object>(fn.this_ptr);
+
+ return obj->get_primitive_value();
+}
+
} // namespace gnash
Index: testsuite/actionscript.all/Number.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Number.as,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- testsuite/actionscript.all/Number.as 2 Apr 2008 09:54:50 -0000
1.52
+++ testsuite/actionscript.all/Number.as 2 Apr 2008 10:55:32 -0000
1.53
@@ -28,7 +28,7 @@
//
-rcsid="$Id: Number.as,v 1.52 2008/04/02 09:54:50 strk Exp $";
+rcsid="$Id: Number.as,v 1.53 2008/04/02 10:55:32 strk Exp $";
#include "check.as"
Number.hasOwnProperty = ASnative(101, 5);
@@ -326,11 +326,11 @@
check(Number.hasOwnProperty('constructor'));
check_equals(typeof(Number.prototype), 'object');
#if OUTPUT_VERSION == 5
- xcheck_equals(Number.prototype, Object);
- xcheck_equals(Number.prototype, Function);
- xcheck_equals(Number.prototype, Object.__proto__);
- xcheck_equals(Number.prototype, null);
- xcheck_equals(Number.prototype, undefined);
+ check_equals(Number.prototype, Object);
+ check_equals(Number.prototype, Function);
+ check_equals(Number.prototype, Object.__proto__);
+ check_equals(Number.prototype, null);
+ check_equals(Number.prototype, undefined);
check(Number.prototype != 0);
check(Number.prototype != "string");
#else
Index: testsuite/swfdec/PASSING
===================================================================
RCS file: /sources/gnash/gnash/testsuite/swfdec/PASSING,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -b -r1.117 -r1.118
--- testsuite/swfdec/PASSING 1 Apr 2008 09:26:55 -0000 1.117
+++ testsuite/swfdec/PASSING 2 Apr 2008 10:55:32 -0000 1.118
@@ -408,6 +408,7 @@
newobject-paths-6.swf:e2e207b7b6966fdffd3a0017cdbf2f1c
newobject-paths-7.swf:e8af4c2cd51e1b3c5e7ab3121386d0ba
newobject-paths-8.swf:fc8407413a00bf2e41e27db7e7ec8c9f
+number.swf:3ef5211bf02f128749453b0ea006061d
number-tostring-radix-5.swf:9c620b9523efbfc2cd30832d38c3d403
number-tostring-radix-6.swf:82b91ba51d982a8c27dddffd129051df
number-tostring-radix-7.swf:c6870eb97ffb4af5f99c3a18498de2f5