[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/avm2 r9533: COERCE opcode: Coerce null val
From: |
Tom Stellard |
Subject: |
[Gnash-commit] /srv/bzr/gnash/avm2 r9533: COERCE opcode: Coerce null values. |
Date: |
Sat, 30 Aug 2008 18:41:42 +0800 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9533
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sat 2008-08-30 18:41:42 +0800
message:
COERCE opcode: Coerce null values.
modified:
libcore/vm/Machine.cpp
libcore/vm/Machine.h
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp 2008-08-28 14:05:32 +0000
+++ b/libcore/vm/Machine.cpp 2008-08-30 10:41:42 +0000
@@ -1790,8 +1790,15 @@
{
asName a = pool_name(mStream->read_V32(), mPoolObject);
as_value value = pop_stack();
+
//TODO: Actually coerce the value.
- push_stack(value);
+ if(value.is_null()){
+ as_value new_type = get_property_value(a);
+ push_stack(new_type);
+ }
+ else{
+ push_stack(value);
+ }
break;
}
/// 0x82 ABC_ACTION_COERCE_A
=== modified file 'libcore/vm/Machine.h'
--- a/libcore/vm/Machine.h 2008-08-27 05:41:23 +0000
+++ b/libcore/vm/Machine.h 2008-08-30 10:41:42 +0000
@@ -317,6 +317,12 @@
mStack.push(value);
}
+ as_value get_property_value(asName multiname){
+ as_environment env;
+ as_value val =
env.get_variable(mPoolObject->mStringPool[multiname.getNamespace()->getAbcURI()],*getScopeStack(),NULL);
+ return val;
+ }
+
void print_stack(){
std::stringstream ss;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/avm2 r9533: COERCE opcode: Coerce null values.,
Tom Stellard <=