gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/asobj/Object.cpp testsui...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/Object.cpp testsui...
Date: Wed, 24 Oct 2007 21:55:33 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/24 21:55:33

Modified files:
        .              : ChangeLog 
        server/asobj   : Object.cpp 
        testsuite/actionscript.all: Object.as 

Log message:
                * server/asobj/Object.cpp: don't replicate all exported 
interfaces
                  to the Object class; move registerClass from prototype to 
class;
                  have hasOwnProperty return false on invalid calls.
                * testsuite/actionscript.all/Object.as: one more success, more
                  tests needed for hasOwnProperty calls.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4695&r2=1.4696
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Object.cpp?cvsroot=gnash&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/Object.as?cvsroot=gnash&r1=1.37&r2=1.38

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4695
retrieving revision 1.4696
diff -u -b -r1.4695 -r1.4696
--- ChangeLog   24 Oct 2007 21:31:59 -0000      1.4695
+++ ChangeLog   24 Oct 2007 21:55:32 -0000      1.4696
@@ -1,5 +1,13 @@
 2007-10-24 Sandro Santilli <address@hidden>
 
+       * server/asobj/Object.cpp: don't replicate all exported interfaces
+         to the Object class; move registerClass from prototype to class;
+         have hasOwnProperty return false on invalid calls.
+       * testsuite/actionscript.all/Object.as: one more success, more
+         tests needed for hasOwnProperty calls.
+
+2007-10-24 Sandro Santilli <address@hidden>
+
        * server/vm/VM.{cpp,h}: initial support for a native functions table.
        * server/asobj/Global.cpp: ASnative global.
        * server/asobj/Object.cpp: register Objects' natives (101 series).

Index: server/asobj/Object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Object.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- server/asobj/Object.cpp     24 Oct 2007 21:32:00 -0000      1.33
+++ server/asobj/Object.cpp     24 Oct 2007 21:55:33 -0000      1.34
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: Object.cpp,v 1.33 2007/10/24 21:32:00 strk Exp $ */
+/* $Id: Object.cpp,v 1.34 2007/10/24 21:55:33 strk Exp $ */
 
 #include "tu_config.h"
 #include "Object.h"
@@ -54,12 +54,6 @@
        VM& vm = o.getVM();
        int target_version = vm.getSWFVersion();
 
-       as_function* native;
-
-       // Object.registerClass() -- TODO: should this only be in SWF6 or 
higher ?
-       vm.registerNative(object_registerClass, 101, 8);
-       o.init_member("registerClass", vm.getNative(101, 8));
-
        // Object.valueOf()
        vm.registerNative(as_object::valueof_method, 101, 3);
        o.init_member("valueOf", vm.getNative(101, 3));
@@ -165,13 +159,19 @@
        // This is going to be the global Object "class"/"function"
        static boost::intrusive_ptr<builtin_function> cl=NULL;
 
+       VM& vm = VM::get();
+
        if ( cl == NULL )
        {
                cl=new builtin_function(&object_ctor, getObjectInterface());
-               // replicate all interface to class, to be able to access
-               // all methods as static functions
-               attachObjectInterface(*cl);
-               cl->init_member("prototype", as_value(getObjectInterface()));
+
+               // TODO: is this needed ?
+               //cl->init_member("prototype", as_value(getObjectInterface()));
+
+               // Object.registerClass() -- TODO: should this only be in SWF6 
or higher ?
+               vm.registerNative(object_registerClass, 101, 8);
+               cl->init_member("registerClass", vm.getNative(101, 8));
+
                     
        }
 
@@ -338,7 +338,7 @@
                IF_VERBOSE_ASCODING_ERRORS(
                log_aserror(_("Object.hasOwnProperty() requires one arg"));
                );
-               return as_value();
+               return as_value(false);
        }
        as_value& arg = fn.arg(0);
        const std::string& propname = arg.to_string(&(fn.env()));
@@ -347,7 +347,7 @@
                IF_VERBOSE_ASCODING_ERRORS(
                log_aserror(_("Invalid call to Object.hasOwnProperty('%s')"), 
arg.to_debug_string().c_str());
                );
-               return as_value();
+               return as_value(false);
        }
        return 
as_value(fn.this_ptr->getOwnProperty(VM::get().getStringTable().find(propname)) 
!= NULL);
 }

Index: testsuite/actionscript.all/Object.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/Object.as,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- testsuite/actionscript.all/Object.as        24 Oct 2007 07:58:14 -0000      
1.37
+++ testsuite/actionscript.all/Object.as        24 Oct 2007 21:55:33 -0000      
1.38
@@ -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.37 2007/10/24 07:58:14 strk Exp $";
+rcsid="$Id: Object.as,v 1.38 2007/10/24 21:55:33 strk Exp $";
 
 #include "check.as"
 
@@ -51,11 +51,7 @@
  check(!Object.prototype.hasOwnProperty("__proto__"));
 #endif 
 
-#if OUTPUT_VERSION < 6
- check_equals(Object.prototype.registerClass, undefined);
-#else
- xcheck_equals(Object.prototype.registerClass, undefined);
-#endif
+check_equals(Object.prototype.registerClass, undefined);
 
 #if OUTPUT_VERSION > 5
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]