[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/avm2 r9512: Fix CONSTRUCTPROP opcode.,
Tom Stellard <=