[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_object.h server/as_va...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_object.h server/as_va... |
Date: |
Thu, 01 Feb 2007 13:40:08 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/02/01 13:40:08
Modified files:
. : ChangeLog
server : as_object.h as_value.cpp
server/asobj : Number.cpp
testsuite/actionscript.all: Object.as
Log message:
* server/as_object.h (get_primitive_value): return
an OBJECT value by default (not a number).
* server/as_value.cpp (operator==): avoid infinite
recursion now that get_primitive_value is allowed
to return an OBJECT again.
* server/asobj/Numbec.cpp: override get_primitive_value
to return a NUMBER value.
* testsuite/actionscript.all/Object.as: don't expect
failures for valueOf tests.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2214&r2=1.2215
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Number.cpp?cvsroot=gnash&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Object.as?cvsroot=gnash&r1=1.19&r2=1.20
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2214
retrieving revision 1.2215
diff -u -b -r1.2214 -r1.2215
--- ChangeLog 1 Feb 2007 11:57:19 -0000 1.2214
+++ ChangeLog 1 Feb 2007 13:40:07 -0000 1.2215
@@ -1,5 +1,17 @@
2007-02-01 Sandro Santilli <address@hidden>
+ * server/as_object.h (get_primitive_value): return
+ an OBJECT value by default (not a number).
+ * server/as_value.cpp (operator==): avoid infinite
+ recursion now that get_primitive_value is allowed
+ to return an OBJECT again.
+ * server/asobj/Numbec.cpp: override get_primitive_value
+ to return a NUMBER value.
+ * testsuite/actionscript.all/Object.as: don't expect
+ failures for valueOf tests.
+
+2007-02-01 Sandro Santilli <address@hidden>
+
* testsuite/actionscript.all/Object.as: add tests for toString
and valueOf. The latter doesn't work yet.
* server/asobj/Object.cpp: add valueOf and toString methods,
Index: server/as_object.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- server/as_object.h 1 Feb 2007 11:23:56 -0000 1.33
+++ server/as_object.h 1 Feb 2007 13:40:07 -0000 1.34
@@ -131,15 +131,19 @@
/// Return the "primitive" value of this object
//
- /// The default implementation returns the numeric value
- /// of this object, other objects can override this function
+ /// The default implementation returns an Object value,
+ /// other objects can override this function
/// to provide another "preferred" primitive. Primitive
- /// values are: undefined, null, boolean, string, number.
+ /// values are: undefined, null, boolean, string, number, object.
///
/// See ECMA-2.6.2 (section 4.3.2).
///
- virtual as_value get_primitive_value() const {
- return as_value(get_numeric_value());
+ virtual as_value get_primitive_value() const
+ {
+ // Since as_value(const as_object*) doesn't exist
+ // we have to cast the value to non-const, or
+ // the as_value will result as beeing a BOOLEAN ! (?)
+ return as_value(const_cast<as_object*>(this));
}
/// Set a member value
Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/as_value.cpp 21 Dec 2006 11:34:49 -0000 1.16
+++ server/as_value.cpp 1 Feb 2007 13:40:08 -0000 1.17
@@ -536,7 +536,10 @@
else
{
// convert this value to a primitive and recurse
- return to_primitive() == v;
+ as_value v2 = to_primitive();
+ if ( v2.is_object() ) return false;
+ else return v2 == v;
+ //return to_primitive() == v;
}
}
else
Index: server/asobj/Number.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Number.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- server/asobj/Number.cpp 1 Feb 2007 11:23:56 -0000 1.10
+++ server/asobj/Number.cpp 1 Feb 2007 13:40:08 -0000 1.11
@@ -18,7 +18,7 @@
//
//
-/* $Id: Number.cpp,v 1.10 2007/02/01 11:23:56 strk Exp $ */
+/* $Id: Number.cpp,v 1.11 2007/02/01 13:40:08 strk Exp $ */
// Implementation of ActionScript Number class.
@@ -96,6 +96,11 @@
return _val;
}
+ as_value get_primitive_value() const
+ {
+ return get_numeric_value();
+ }
+
};
Index: testsuite/actionscript.all/Object.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Object.as,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- testsuite/actionscript.all/Object.as 1 Feb 2007 11:57:20 -0000
1.19
+++ testsuite/actionscript.all/Object.as 1 Feb 2007 13:40:08 -0000
1.20
@@ -20,7 +20,7 @@
// compile this test case with Ming makeswf, and then
// execute it like this gnash -1 -r 0 -v out.swf
-rcsid="$Id: Object.as,v 1.19 2007/02/01 11:57:20 strk Exp $";
+rcsid="$Id: Object.as,v 1.20 2007/02/01 13:40:08 strk Exp $";
#include "check.as"
@@ -55,7 +55,7 @@
check (obj.member == 1)
check_equals(typeof(obj.toString()), 'string');
check_equals(obj.toString(), '[object Object]');
-xcheck_equals(typeof(obj.valueOf()), 'object');
+check_equals(typeof(obj.valueOf()), 'object');
check_equals(obj.valueOf(), obj);
// Test Object creation using literal initialization
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/as_object.h server/as_va...,
Sandro Santilli <=