gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9512: Fix CONSTRUCTPROP opcode.


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9512: Fix CONSTRUCTPROP opcode.
Date: Fri, 22 Aug 2008 11:53:14 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9512
committer: Tom Stellard <address@hidden>
branch nick: gnash_traits
timestamp: Fri 2008-08-22 11:53:14 +0800
message:
  Fix CONSTRUCTPROP opcode.
modified:
  libcore/vm/Machine.cpp
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-08-22 03:33:08 +0000
+++ b/libcore/vm/Machine.cpp    2008-08-22 03:53:14 +0000
@@ -1286,17 +1286,13 @@
                // TODO
                asName a = pool_name(mStream->read_V32(), mPoolObject);
                boost::uint32_t argc = mStream->read_V32();
-               int shift = completeName(a, argc);
-               ENSURE_OBJECT(mStack.top(argc + shift));
-               // We have to move the stack if there was a shift.
-               if (shift)
-               {
-                       boost::uint32_t i = argc;
-                       while (i--)
-                               mStack.top(i + shift) = mStack.top(i);
-                       mStack.drop(shift);
-               }
-               // TODO: Finish this (See ECMA spec)
+               as_environment env = get_args(argc);
+               as_object* object = pop_stack().to_object().get();
+               object->dump_members();
+               as_value property = 
object->getMember(NSV::PROP_uuCONSTRUCTORuu,0);
+               as_value value = 
call_method(property,&env,object,argc,env.stack_size() - 1);
+               push_stack(value);
+               
                break;
        }
 /// 0x55 ABC_ACTION_NEWOBJECT


reply via email to

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