tests: Fix all remaining test bugs caused by discrepancies between how Ruffle and Flash Player handle dynamic `Namespace`s.

For some reason, in Flash Player, `RTQName`s that use a dynamic namespace do *not* pick the same namespace that you would ordinarily get if declaring or referencing that namespace statically. My suspicion is that this has something to do with E4X namespaces, which are flagged as a separate space from ES4 namespaces.
This commit is contained in:
David Wendt 2021-11-05 19:11:43 -04:00 committed by kmeisthax
parent 1170385c3b
commit 5b58301795
22 changed files with 1247 additions and 33 deletions

View File

@ -22,25 +22,21 @@ true
false
///p.normal_var
This is a normal var
///delete p.flash_proxy::proxy_var
///attempted to delete property: http://www.adobe.com/2006/actionscript/flash/proxy::proxy_var
///type of name is QName
///name.localName
proxy_var
///name.uri
http://www.adobe.com/2006/actionscript/flash/proxy
true
///delete p.flash_proxy::proxy_var (QName)
false
///delete p.flash_proxy::proxy_var (RTQName)
false
///delete p.flash_proxy::proxy_var (RTQNameL)
false
///delete p.flash_proxy::proxy_var (Multiname)
false
///delete p.flash_proxy::proxy_var (MultinameL)
false
///delete (p.normal_fn)()
///called normal_fn
true
///delete p.flash_proxy::proxy_fn
///attempted to delete property: http://www.adobe.com/2006/actionscript/flash/proxy::proxy_fn
///type of name is QName
///name.localName
proxy_fn
///name.uri
http://www.adobe.com/2006/actionscript/flash/proxy
true
false
///delete p.proxy_var
///attempted to delete property: proxy_var
///type of name is QName
@ -65,4 +61,4 @@ crazy_return
///name.uri
///returning non-bool value
true
true

Binary file not shown.

View File

@ -0,0 +1,46 @@
class
refid "Test"
instance QName(PackageNamespace(""), "Test")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("Test")
iinit
name "Test/Test"
refid "Test/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 83
returnvoid
end ; code
end ; body
end ; method
end ; instance
cinit
name ""
refid "Test/class/init"
body
maxstack 1
localcount 1
initscopedepth 3
maxscopedepth 4
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,204 @@
class
refid "Test/init/TestProxy"
instance QName(PrivateNamespace("Test.as$38"), "TestProxy")
extends QName(PackageNamespace("flash.utils"), "Proxy")
flag PROTECTEDNS
protectedns ProtectedNamespace("Test.as$38:TestProxy")
iinit
name "Test.as$38:TestProxy/TestProxy"
refid "Test/init/TestProxy/instance/init"
body
maxstack 1
localcount 1
initscopedepth 5
maxscopedepth 6
code
getlocal0
pushscope
getlocal0
constructsuper 0
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 83
returnvoid
end ; code
end ; body
end ; method
trait method QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "deleteProperty") flag OVERRIDE
method
name "Test.as$38:TestProxy/flash_proxy:deleteProperty"
refid "Test/init/TestProxy/instance/http://www.adobe.com/2006/actionscript/flash/proxy:deleteProperty"
param null
returns QName(PackageNamespace(""), "Boolean")
flag HAS_PARAM_NAMES
paramname "trace"
body
maxstack 3
localcount 2
initscopedepth 5
maxscopedepth 6
code
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 9
getlocal0
pushscope
debug 1, "name", 0, 9
debugline 10
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///attempted to delete property:"
getlocal1
callpropvoid QName(PackageNamespace(""), "trace"), 2
debugline 12
getlocal1
getlex QName(PackageNamespace(""), "QName")
istypelate
iffalse L50
debugline 13
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///type of name is QName"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 15
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///name.localName"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 16
findpropstrict QName(PackageNamespace(""), "trace")
getlocal1
getproperty Multiname("localName", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 18
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///name.uri"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 19
findpropstrict QName(PackageNamespace(""), "trace")
getlocal1
getproperty Multiname("uri", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 21
getlocal1
getproperty Multiname("localName", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "crazy_return"
ifstrictne L49
debugline 22
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///returning non-bool value"
callpropvoid QName(PackageNamespace(""), "trace"), 1
pushstring "This isn't a bool at all"
debugline 23
returnvalue
L49:
jump L64
L50:
debugline 25
getlocal1
getlex QName(PackageNamespace(""), "String")
istypelate
iffalse L60
debugline 26
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///type of name is String"
callpropvoid QName(PackageNamespace(""), "trace"), 1
jump L64
L60:
debugline 28
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///invalid name type"
callpropvoid QName(PackageNamespace(""), "trace"), 1
L64:
debugline 31
pushtrue
returnvalue
end ; code
end ; body
end ; method
end ; trait
trait method QName(PrivateNamespace("Test.as$38"), "normal_fn")
method
name "Test.as$38:TestProxy/Test.as$38:normal_fn"
refid "Test/init/TestProxy/instance/Test/init/normal_fn"
body
maxstack 2
localcount 1
initscopedepth 5
maxscopedepth 6
code
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 34
getlocal0
pushscope
debugline 35
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///called normal_fn"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 36
returnvoid
end ; code
end ; body
end ; method
end ; trait
trait slot QName(PrivateNamespace("Test.as$38"), "normal_var") value Utf8("This is a normal var") end
trait method QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "proxy_fn")
method
name "Test.as$38:TestProxy/flash_proxy:proxy_fn"
refid "Test/init/TestProxy/instance/http://www.adobe.com/2006/actionscript/flash/proxy:proxy_fn"
body
maxstack 2
localcount 1
initscopedepth 5
maxscopedepth 6
code
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 40
getlocal0
pushscope
debugline 41
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///called proxy_fn"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 42
returnvoid
end ; code
end ; body
end ; method
end ; trait
trait slot QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "proxy_var") value Utf8("This is a normal var in the proxy ns") end
end ; instance
cinit
name ""
refid "Test/init/TestProxy/class/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,245 @@
script
sinit
name ""
refid "Test/init"
body
maxstack 4
localcount 3
initscopedepth 1
maxscopedepth 4
code
getlocal0
pushscope
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 2
findpropstrict Multiname("Test", [PackageNamespace("")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex QName(PackageNamespace(""), "Object")
newclass "Test"
popscope
initproperty QName(PackageNamespace(""), "Test")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 8
findpropstrict Multiname("TestProxy", [PrivateNamespace("Test.as$38")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex QName(PackageNamespace("flash.utils"), "Proxy")
pushscope
getlex QName(PackageNamespace("flash.utils"), "Proxy")
newclass "Test/init/TestProxy"
popscope
popscope
initproperty QName(PrivateNamespace("Test.as$38"), "TestProxy")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty;;Test.as"
debugline 49
findpropstrict Multiname("p", [PrivateNamespace("Test.as$38")])
findpropstrict QName(PrivateNamespace("Test.as$38"), "TestProxy")
constructprop QName(PrivateNamespace("Test.as$38"), "TestProxy"), 0
setproperty QName(PrivateNamespace("Test.as$38"), "p")
debugline 51
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///p.flash_proxy::deleteProperty(\"via direct call\")"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 52
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
dup
setlocal2
getlex QName(PackageNamespace("flash.utils"), "flash_proxy")
coerce QName(PackageNamespace(""), "Namespace")
getproperty RTQName("deleteProperty")
getlocal2
pushstring "via direct call"
call 1
kill 2
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 54
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.via_getproperty"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 55
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("via_getproperty", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 57
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.my_ns::via_namespace"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 58
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty QName(Namespace("my_ns"), "via_namespace")
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 60
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.normal_var"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 61
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("normal_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 63
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///p.normal_var"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 64
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
getproperty Multiname("normal_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 66
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_var (QName)"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 67
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "proxy_var")
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 66
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_var (RTQName)"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 67
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
deleteproperty RTQName("proxy_var")
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 66
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_var (RTQNameL)"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 67
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
pushstring "proxy_var"
deleteproperty RTQNameL()
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 66
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_var (Multiname)"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 67
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("proxy_var", [Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 66
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_var (MultinameL)"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 67
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
pushstring "proxy_var"
deleteproperty MultinameL([Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 69
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete (p.normal_fn)()"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 70
findpropstrict QName(PackageNamespace(""), "trace")
getglobalscope
getlex QName(PrivateNamespace("Test.as$38"), "p")
getproperty Multiname("normal_fn", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getglobalscope
call 0
deleteproperty MultinameL([PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 72
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.flash_proxy::proxy_fn"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 73
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
deleteproperty RTQName("proxy_fn")
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 75
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.proxy_var"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 76
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("proxy_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 78
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.proxy_fn"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 79
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("proxy_fn", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 81
findpropstrict QName(PackageNamespace(""), "trace")
pushstring "///delete p.crazy_return"
callpropvoid QName(PackageNamespace(""), "trace"), 1
debugline 82
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
deleteproperty Multiname("crazy_return", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callproperty QName(PackageNamespace(""), "trace"), 1
coerce_a
setlocal1
getlocal1
returnvalue
end ; code
end ; body
end ; method
trait const QName(PrivateNamespace("Test.as$38"), "my_ns") value Namespace(Namespace("my_ns")) end
trait class QName(PackageNamespace(""), "Test")
#include "Test.class.asasm"
end ; trait
trait class QName(PrivateNamespace("Test.as$38"), "TestProxy")
#include "Test.init/TestProxy.class.asasm"
end ; trait
trait slot QName(PrivateNamespace("Test.as$38"), "p") end
end ; script

View File

@ -0,0 +1,9 @@
#version 4
program
minorversion 16
majorversion 46
#include "Test.script.asasm"
#include "test_fla/MainTimeline.script.asasm"
end ; program

View File

@ -0,0 +1,76 @@
class
refid "test_fla:MainTimeline"
instance QName(PackageNamespace("test_fla"), "MainTimeline")
extends QName(PackageNamespace("flash.display"), "MovieClip")
flag PROTECTEDNS
protectedns ProtectedNamespace("test_fla:MainTimeline")
iinit
name "test_fla:MainTimeline/test_fla:MainTimeline"
refid "test_fla:MainTimeline/instance/init"
body
maxstack 3
localcount 1
initscopedepth 10
maxscopedepth 11
code
getlocal0
pushscope
getlocal0
constructsuper 0
findpropstrict QName(PackageNamespace(""), "addFrameScript")
debugfile "test_fla.MainTimeline::MainTimeline"
debugline 1
pushbyte 0
getlocal0
getproperty QName(PackageInternalNs("test_fla"), "frame1")
callpropvoid QName(PackageNamespace(""), "addFrameScript"), 2
debugline 2
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageInternalNs("test_fla"), "frame1")
method
name "test_fla:MainTimeline/test_fla:frame1"
refid "test_fla:MainTimeline/instance/test_fla:frame1"
body
maxstack 1
localcount 1
initscopedepth 10
maxscopedepth 11
code
getlocal0
pushscope
debugfile "test_fla.MainTimeline::frame1"
debugline 3
findpropstrict QName(PackageNamespace(""), "Test")
constructprop QName(PackageNamespace(""), "Test"), 0
pop
debugline 4
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
name ""
refid "test_fla:MainTimeline/class/init"
body
maxstack 1
localcount 1
initscopedepth 9
maxscopedepth 10
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,56 @@
script
sinit
name ""
refid "test_fla:MainTimeline/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 9
code
getlocal0
pushscope
getscopeobject 0
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex QName(PackageNamespace("flash.events"), "EventDispatcher")
pushscope
getlex QName(PackageNamespace("flash.display"), "DisplayObject")
pushscope
getlex QName(PackageNamespace("flash.display"), "InteractiveObject")
pushscope
getlex QName(PackageNamespace("flash.display"), "DisplayObjectContainer")
pushscope
getlex QName(PackageNamespace("flash.display"), "Sprite")
pushscope
getlex QName(PackageNamespace("flash.display"), "MovieClip")
pushscope
getlex QName(PackageNamespace("flash.display"), "MovieClip")
newclass "test_fla:MainTimeline"
popscope
popscope
popscope
popscope
popscope
popscope
popscope
initproperty QName(PackageNamespace("test_fla"), "MainTimeline")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_deleteproperty\\"
debugline 24
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("test_fla"), "MainTimeline") slotid 1
#include "MainTimeline.class.asasm"
end ; trait
end ; script

View File

@ -42,13 +42,7 @@ This is a normal var in the proxy ns
///called normal_fn
undefined
///p.flash_proxy::proxy_fn
///attempted to get property: http://www.adobe.com/2006/actionscript/flash/proxy::proxy_fn
///type of name is QName
///name.localName
proxy_fn
///name.uri
http://www.adobe.com/2006/actionscript/flash/proxy
This is a proxy var
function Function() {}
///p.proxy_var
///attempted to get property: proxy_var
///type of name is QName

View File

@ -188,8 +188,7 @@ script
debugline 68
findpropstrict QName(PackageNamespace(""), "trace")
getlex QName(PrivateNamespace("Test.as$38"), "p")
getlex QName(PackageNamespace("flash.utils"), "flash_proxy")
coerce QName(PackageNamespace(""), "Namespace")
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
getproperty RTQName("proxy_fn")
callpropvoid QName(PackageNamespace(""), "trace"), 1

View File

@ -0,0 +1,9 @@
#version 4
program
minorversion 16
majorversion 46
#include "Test.script.asasm"
#include "test_fla/MainTimeline.script.asasm"
end ; program

View File

@ -0,0 +1,46 @@
class
refid "Test"
instance QName(PackageNamespace(""), "Test")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("Test")
iinit
name "Test/Test"
refid "Test/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 56
returnvoid
end ; code
end ; body
end ; method
end ; instance
cinit
name ""
refid "Test/class/init"
body
maxstack 1
localcount 1
initscopedepth 3
maxscopedepth 4
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,140 @@
class
refid "Test/init/TestProxy"
instance QName(PrivateNamespace("Test.as$38"), "TestProxy")
extends QName(PackageNamespace("flash.utils"), "Proxy")
flag PROTECTEDNS
protectedns ProtectedNamespace("Test.as$38:TestProxy")
iinit
name "Test.as$38:TestProxy/TestProxy"
refid "Test/init/TestProxy/instance/init"
body
maxstack 1
localcount 1
initscopedepth 5
maxscopedepth 6
code
getlocal0
pushscope
getlocal0
constructsuper 0
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 56
returnvoid
end ; code
end ; body
end ; method
trait method QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "setProperty") flag OVERRIDE
method
name "Test.as$38:TestProxy/flash_proxy:setProperty"
refid "Test/init/TestProxy/instance/http://www.adobe.com/2006/actionscript/flash/proxy:setProperty"
param null
param null
returns QName(PackageNamespace(""), "void")
flag HAS_PARAM_NAMES
paramname "value"
paramname "value"
body
maxstack 5
localcount 3
initscopedepth 5
maxscopedepth 6
code
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 9
getlocal0
pushscope
debug 1, "name", 0, 9
debug 1, "value", 1, 9
debugline 10
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///attempted to set property:"
getlocal1
pushstring "to value:"
getlocal2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 4
debugline 12
getlocal1
getlex Multiname("QName", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
istypelate
iffalse L41
debugline 13
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///type of name is QName"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
debugline 15
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///name.localName"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
debugline 16
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
getlocal1
getproperty Multiname("localName", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
debugline 18
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///name.uri"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
debugline 19
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
getlocal1
getproperty Multiname("uri", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
jump L55
L41:
debugline 20
getlocal1
getlex Multiname("String", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
istypelate
iffalse L51
debugline 21
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///type of name is String"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
jump L55
L51:
debugline 23
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")])
pushstring "///invalid name type"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38:TestProxy"), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("Test.as$38:TestProxy"), StaticProtectedNs("Test.as$38:TestProxy"), StaticProtectedNs("flash.utils:Proxy")]), 1
L55:
debugline 25
returnvoid
end ; code
end ; body
end ; method
end ; trait
trait slot QName(PrivateNamespace("Test.as$38"), "normal_var") value Utf8("This is a normal var") end
trait slot QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "proxy_var") value Utf8("This is a normal var in the proxy ns") end
end ; instance
cinit
name ""
refid "Test/init/TestProxy/class/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,260 @@
script
sinit
name ""
refid "Test/init"
body
maxstack 6
localcount 3
initscopedepth 1
maxscopedepth 4
code
getlocal0
pushscope
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 2
findpropstrict Multiname("Test", [PackageNamespace("")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), PackageInternalNs("")])
newclass "Test"
popscope
initproperty QName(PackageNamespace(""), "Test")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 8
findpropstrict Multiname("TestProxy", [PrivateNamespace("Test.as$38")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex QName(PackageNamespace("flash.utils"), "Proxy")
pushscope
getlex Multiname("Proxy", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), PackageNamespace("flash.utils")])
newclass "Test/init/TestProxy"
popscope
popscope
initproperty QName(PrivateNamespace("Test.as$38"), "TestProxy")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty;;Test.as"
debugline 34
findpropstrict Multiname("p", [PrivateNamespace("Test.as$38")])
findpropstrict Multiname("TestProxy", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
constructprop Multiname("TestProxy", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 0
setproperty QName(PrivateNamespace("Test.as$38"), "p")
debugline 36
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::setProperty(\"via direct call\", \"and value\")"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 37
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
dup
setlocal2
getlex Multiname("flash_proxy", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin"), PackageNamespace("flash.utils")])
coerce QName(PackageNamespace(""), "Namespace")
getproperty RTQName("setProperty")
getlocal2
pushstring "via direct call"
pushstring "and value"
call 2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 39
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.via_setproperty = \"test\""
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 40
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "test"
dup
setlocal2
setproperty Multiname("via_setproperty", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 42
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.my_ns::via_namespace = 123"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 43
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushbyte 123
dup
setlocal2
setproperty QName(Namespace("my_ns"), "via_namespace")
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 45
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.normal_var = \"Another var value\""
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 46
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "Another var value"
dup
setlocal2
setproperty Multiname("normal_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 48
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.normal_var"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 49
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getproperty Multiname("normal_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 51
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::proxy_var = false (QName)"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 52
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushfalse
dup
setlocal2
setproperty QName(Namespace("http://www.adobe.com/2006/actionscript/flash/proxy"), "proxy_var")
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 51
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::proxy_var = false (RTQName)"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 52
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
pushfalse
dup
setlocal2
setproperty RTQName("proxy_var")
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 51
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::proxy_var = false (RTQNameL)"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 52
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushnamespace Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")
pushstring "proxy_var"
pushfalse
dup
setlocal2
setproperty RTQNameL()
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 51
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::proxy_var = false (Multiname)"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 52
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushfalse
dup
setlocal2
setproperty Multiname("proxy_var", [Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")])
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 51
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.flash_proxy::proxy_var = false (MultinameL)"
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 52
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "proxy_var"
pushfalse
dup
setlocal2
setproperty MultinameL([Namespace("http://www.adobe.com/2006/actionscript/flash/proxy")])
getlocal2
kill 2
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 54
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "///p.proxy_var = \"Another var value in the proxy ns\""
callpropvoid Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
debugline 55
findpropstrict Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlex Multiname("p", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
pushstring "Another var value in the proxy ns"
dup
setlocal2
setproperty Multiname("proxy_var", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")])
getlocal2
kill 2
callproperty Multiname("trace", [PackageNamespace(""), PrivateNamespace("Test.as$38"), Namespace("http://adobe.com/AS3/2006/builtin")]), 1
coerce_a
setlocal1
getlocal1
returnvalue
end ; code
end ; body
end ; method
trait const QName(PrivateNamespace("Test.as$38"), "my_ns") value Namespace(Namespace("my_ns")) end
trait class QName(PackageNamespace(""), "Test")
#include "Test.class.asasm"
end ; trait
trait class QName(PrivateNamespace("Test.as$38"), "TestProxy")
#include "Test.init/TestProxy.class.asasm"
end ; trait
trait slot QName(PrivateNamespace("Test.as$38"), "p") end
end ; script

View File

@ -0,0 +1,76 @@
class
refid "test_fla:MainTimeline"
instance QName(PackageNamespace("test_fla"), "MainTimeline")
extends QName(PackageNamespace("flash.display"), "MovieClip")
flag PROTECTEDNS
protectedns ProtectedNamespace("test_fla:MainTimeline")
iinit
name "test_fla:MainTimeline/test_fla:MainTimeline"
refid "test_fla:MainTimeline/instance/init"
body
maxstack 3
localcount 1
initscopedepth 10
maxscopedepth 11
code
getlocal0
pushscope
getlocal0
constructsuper 0
findpropstrict Multiname("addFrameScript", [PrivateNamespace("test_fla:MainTimeline"), PrivateNamespace("$0"), PackageNamespace(""), PackageNamespace("test_fla"), PackageInternalNs("test_fla"), Namespace("http://adobe.com/AS3/2006/builtin"), Namespace("adobe.utils"), PackageNamespace("flash.accessibility"), Namespace("flash.desktop"), PackageNamespace("flash.display"), PackageNamespace("flash.errors"), PackageNamespace("flash.events"), Namespace("flash.external"), PackageNamespace("flash.filters"), PackageNamespace("flash.geom"), Namespace("flash.globalization"), PackageNamespace("flash.media"), PackageNamespace("flash.net"), PackageNamespace("flash.net.drm"), Namespace("flash.printing"), Namespace("flash.profiler"), Namespace("flash.sampler"), Namespace("flash.sensors"), PackageNamespace("flash.system"), PackageNamespace("flash.text"), PackageNamespace("flash.text.ime"), Namespace("flash.text.engine"), PackageNamespace("flash.ui"), PackageNamespace("flash.utils"), Namespace("flash.xml"), ProtectedNamespace("test_fla:MainTimeline"), StaticProtectedNs("test_fla:MainTimeline"), StaticProtectedNs("flash.display:MovieClip"), StaticProtectedNs("flash.display:Sprite"), StaticProtectedNs("flash.display:DisplayObjectContainer"), StaticProtectedNs("flash.display:InteractiveObject"), StaticProtectedNs("flash.display:DisplayObject"), StaticProtectedNs("flash.events:EventDispatcher")])
debugfile "test_fla.MainTimeline::MainTimeline"
debugline 1
pushbyte 0
getlocal0
getproperty Multiname("frame1", [PrivateNamespace("test_fla:MainTimeline"), PrivateNamespace("$0"), PackageNamespace(""), PackageNamespace("test_fla"), PackageInternalNs("test_fla"), Namespace("http://adobe.com/AS3/2006/builtin"), Namespace("adobe.utils"), PackageNamespace("flash.accessibility"), Namespace("flash.desktop"), PackageNamespace("flash.display"), PackageNamespace("flash.errors"), PackageNamespace("flash.events"), Namespace("flash.external"), PackageNamespace("flash.filters"), PackageNamespace("flash.geom"), Namespace("flash.globalization"), PackageNamespace("flash.media"), PackageNamespace("flash.net"), PackageNamespace("flash.net.drm"), Namespace("flash.printing"), Namespace("flash.profiler"), Namespace("flash.sampler"), Namespace("flash.sensors"), PackageNamespace("flash.system"), PackageNamespace("flash.text"), PackageNamespace("flash.text.ime"), Namespace("flash.text.engine"), PackageNamespace("flash.ui"), PackageNamespace("flash.utils"), Namespace("flash.xml"), ProtectedNamespace("test_fla:MainTimeline"), StaticProtectedNs("test_fla:MainTimeline"), StaticProtectedNs("flash.display:MovieClip"), StaticProtectedNs("flash.display:Sprite"), StaticProtectedNs("flash.display:DisplayObjectContainer"), StaticProtectedNs("flash.display:InteractiveObject"), StaticProtectedNs("flash.display:DisplayObject"), StaticProtectedNs("flash.events:EventDispatcher")])
callpropvoid Multiname("addFrameScript", [PrivateNamespace("test_fla:MainTimeline"), PrivateNamespace("$0"), PackageNamespace(""), PackageNamespace("test_fla"), PackageInternalNs("test_fla"), Namespace("http://adobe.com/AS3/2006/builtin"), Namespace("adobe.utils"), PackageNamespace("flash.accessibility"), Namespace("flash.desktop"), PackageNamespace("flash.display"), PackageNamespace("flash.errors"), PackageNamespace("flash.events"), Namespace("flash.external"), PackageNamespace("flash.filters"), PackageNamespace("flash.geom"), Namespace("flash.globalization"), PackageNamespace("flash.media"), PackageNamespace("flash.net"), PackageNamespace("flash.net.drm"), Namespace("flash.printing"), Namespace("flash.profiler"), Namespace("flash.sampler"), Namespace("flash.sensors"), PackageNamespace("flash.system"), PackageNamespace("flash.text"), PackageNamespace("flash.text.ime"), Namespace("flash.text.engine"), PackageNamespace("flash.ui"), PackageNamespace("flash.utils"), Namespace("flash.xml"), ProtectedNamespace("test_fla:MainTimeline"), StaticProtectedNs("test_fla:MainTimeline"), StaticProtectedNs("flash.display:MovieClip"), StaticProtectedNs("flash.display:Sprite"), StaticProtectedNs("flash.display:DisplayObjectContainer"), StaticProtectedNs("flash.display:InteractiveObject"), StaticProtectedNs("flash.display:DisplayObject"), StaticProtectedNs("flash.events:EventDispatcher")]), 2
debugline 2
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageInternalNs("test_fla"), "frame1")
method
name "test_fla:MainTimeline/test_fla:frame1"
refid "test_fla:MainTimeline/instance/test_fla:frame1"
body
maxstack 1
localcount 1
initscopedepth 10
maxscopedepth 11
code
getlocal0
pushscope
debugfile "test_fla.MainTimeline::frame1"
debugline 3
findpropstrict Multiname("Test", [PrivateNamespace("test_fla:MainTimeline"), PrivateNamespace("$0"), PackageNamespace(""), PackageNamespace("test_fla"), PackageInternalNs("test_fla"), Namespace("http://adobe.com/AS3/2006/builtin"), Namespace("adobe.utils"), PackageNamespace("flash.accessibility"), Namespace("flash.desktop"), PackageNamespace("flash.display"), PackageNamespace("flash.errors"), PackageNamespace("flash.events"), Namespace("flash.external"), PackageNamespace("flash.filters"), PackageNamespace("flash.geom"), Namespace("flash.globalization"), PackageNamespace("flash.media"), PackageNamespace("flash.net"), PackageNamespace("flash.net.drm"), Namespace("flash.printing"), Namespace("flash.profiler"), Namespace("flash.sampler"), Namespace("flash.sensors"), PackageNamespace("flash.system"), PackageNamespace("flash.text"), PackageNamespace("flash.text.ime"), Namespace("flash.text.engine"), PackageNamespace("flash.ui"), PackageNamespace("flash.utils"), Namespace("flash.xml"), ProtectedNamespace("test_fla:MainTimeline"), StaticProtectedNs("test_fla:MainTimeline"), StaticProtectedNs("flash.display:MovieClip"), StaticProtectedNs("flash.display:Sprite"), StaticProtectedNs("flash.display:DisplayObjectContainer"), StaticProtectedNs("flash.display:InteractiveObject"), StaticProtectedNs("flash.display:DisplayObject"), StaticProtectedNs("flash.events:EventDispatcher")])
constructprop Multiname("Test", [PrivateNamespace("test_fla:MainTimeline"), PrivateNamespace("$0"), PackageNamespace(""), PackageNamespace("test_fla"), PackageInternalNs("test_fla"), Namespace("http://adobe.com/AS3/2006/builtin"), Namespace("adobe.utils"), PackageNamespace("flash.accessibility"), Namespace("flash.desktop"), PackageNamespace("flash.display"), PackageNamespace("flash.errors"), PackageNamespace("flash.events"), Namespace("flash.external"), PackageNamespace("flash.filters"), PackageNamespace("flash.geom"), Namespace("flash.globalization"), PackageNamespace("flash.media"), PackageNamespace("flash.net"), PackageNamespace("flash.net.drm"), Namespace("flash.printing"), Namespace("flash.profiler"), Namespace("flash.sampler"), Namespace("flash.sensors"), PackageNamespace("flash.system"), PackageNamespace("flash.text"), PackageNamespace("flash.text.ime"), Namespace("flash.text.engine"), PackageNamespace("flash.ui"), PackageNamespace("flash.utils"), Namespace("flash.xml"), ProtectedNamespace("test_fla:MainTimeline"), StaticProtectedNs("test_fla:MainTimeline"), StaticProtectedNs("flash.display:MovieClip"), StaticProtectedNs("flash.display:Sprite"), StaticProtectedNs("flash.display:DisplayObjectContainer"), StaticProtectedNs("flash.display:InteractiveObject"), StaticProtectedNs("flash.display:DisplayObject"), StaticProtectedNs("flash.events:EventDispatcher")]), 0
pop
debugline 4
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
name ""
refid "test_fla:MainTimeline/class/init"
body
maxstack 1
localcount 1
initscopedepth 9
maxscopedepth 10
code
getlocal0
pushscope
returnvoid
end ; code
end ; body
end ; method
end ; class

View File

@ -0,0 +1,56 @@
script
sinit
name ""
refid "test_fla:MainTimeline/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 9
code
getlocal0
pushscope
getscopeobject 0
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex QName(PackageNamespace("flash.events"), "EventDispatcher")
pushscope
getlex QName(PackageNamespace("flash.display"), "DisplayObject")
pushscope
getlex QName(PackageNamespace("flash.display"), "InteractiveObject")
pushscope
getlex QName(PackageNamespace("flash.display"), "DisplayObjectContainer")
pushscope
getlex QName(PackageNamespace("flash.display"), "Sprite")
pushscope
getlex QName(PackageNamespace("flash.display"), "MovieClip")
pushscope
getlex QName(PackageNamespace("flash.display"), "MovieClip")
newclass "test_fla:MainTimeline"
popscope
popscope
popscope
popscope
popscope
popscope
popscope
initproperty QName(PackageNamespace("test_fla"), "MainTimeline")
debugfile "I:\\Code\\ruffle\\tests\\tests\\swfs\\avm2\\proxy_setproperty\\"
debugline 24
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("test_fla"), "MainTimeline") slotid 1
#include "MainTimeline.class.asasm"
end ; trait
end ; script

View File

@ -22,13 +22,15 @@ my_ns
Another var value
///p.normal_var
Another var value
///p.flash_proxy::proxy_var = false
///attempted to set property: http://www.adobe.com/2006/actionscript/flash/proxy::proxy_var to value: false
///type of name is QName
///name.localName
proxy_var
///name.uri
http://www.adobe.com/2006/actionscript/flash/proxy
///p.flash_proxy::proxy_var = false (QName)
false
///p.flash_proxy::proxy_var = false (RTQName)
false
///p.flash_proxy::proxy_var = false (RTQNameL)
false
///p.flash_proxy::proxy_var = false (Multiname)
false
///p.flash_proxy::proxy_var = false (MultinameL)
false
///p.proxy_var = "Another var value in the proxy ns"
///attempted to set property: proxy_var to value: Another var value in the proxy ns
@ -37,4 +39,4 @@ false
proxy_var
///name.uri
Another var value in the proxy ns
Another var value in the proxy ns

Binary file not shown.