Fixed: #2474 Gotos incorrectly decompiled

This commit is contained in:
Jindra Petřík
2025-06-29 22:58:28 +02:00
parent 483b673c6f
commit e6fb646b1b
18 changed files with 612 additions and 16 deletions

View File

@@ -35,5 +35,9 @@ program
#include "tests/TestSwitchMostCommon.script.asasm"
#include "tests/TestXmlStar.script.asasm"
#include "tests/TestLocalRegIf.script.asasm"
#include "tests/TestGoto.script.asasm"
#include "tests/TestGoto2.script.asasm"
#include "tests/TestAlwaysBreak.script.asasm"
#include "tests/TestAlwaysBreak2.script.asasm"
; place to add next
end ; program

View File

@@ -0,0 +1,101 @@
class
refid "tests:TestAlwaysBreak"
instance QName(PackageNamespace("tests"), "TestAlwaysBreak")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestAlwaysBreak")
iinit
refid "tests:TestAlwaysBreak/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageNamespace(""), "run")
method
refid "tests:TestAlwaysBreak/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
debug 1, "v", 0, 15
jump ofs0055
ofs000c:
label
pushbyte 5
coerce_a
setlocal1
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "a"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
getlocal1
pushbyte 4
ifngt ofs0048
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "b"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
getlocal1
pushbyte 10
ifngt ofs003e
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "c"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
jump ofs005a
ofs003e:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "d"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
ofs0048:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "e"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
jump ofs005a
ofs0055:
pushtrue
iftrue ofs000c
ofs005a:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "f"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
returnvoid
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestAlwaysBreak/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,29 @@
script
sinit
refid "tests:TestAlwaysBreak/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestAlwaysBreak", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestAlwaysBreak"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestAlwaysBreak"
popscope
initproperty QName(PackageNamespace("tests"), "TestAlwaysBreak")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestAlwaysBreak")
#include "TestAlwaysBreak.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,100 @@
class
refid "tests:TestAlwaysBreak2"
instance QName(PackageNamespace("tests"), "TestAlwaysBreak2")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestAlwaysBreak2")
iinit
refid "tests:TestAlwaysBreak2/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageNamespace(""), "run")
method
refid "tests:TestAlwaysBreak2/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
debug 1, "v", 0, 15
jump ofs0055
ofs000c:
label
pushbyte 5
coerce_a
setlocal1
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "a"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
getlocal1
pushbyte 4
ifngt ofs0048
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "b"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
getlocal1
pushbyte 10
ifngt ofs003e
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "c"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
jump ofs005a
ofs003e:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "d"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
ofs0048:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "e"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
jump ofs005a
ofs0055:
jump ofs000c
ofs005a:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")])
pushstring "f"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestAlwaysBreak"),ProtectedNamespace("tests:TestAlwaysBreak"),StaticProtectedNs("tests:TestAlwaysBreak"),PrivateNamespace("TestAlwaysBreak.as$33")]), 1
returnvoid
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestAlwaysBreak2/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,29 @@
script
sinit
refid "tests:TestAlwaysBreak2/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestAlwaysBreak2", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestAlwaysBreak2"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestAlwaysBreak2"
popscope
initproperty QName(PackageNamespace("tests"), "TestAlwaysBreak2")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestAlwaysBreak2")
#include "TestAlwaysBreak2.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,111 @@
class
refid "tests:TestGoto"
instance QName(PackageNamespace("tests"), "TestGoto")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestGoto")
iinit
refid "tests:TestGoto/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageNamespace(""), "run")
method
refid "tests:TestGoto/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
debug 1, "v", 0, 13
pushbyte 5
coerce_a
setlocal1
getlocal1
pushbyte 1
ifngt ofs003e
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "a"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
getlocal1
pushbyte 2
ifngt ofs0031
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "goto"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
jump ofs0061
ofs0031:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "b"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
jump ofs0047
ofs003e:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "c"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
ofs0047:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "d"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
getlocal1
pushbyte 3
ifngt ofs006f
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "e"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
ofs0061:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "f"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
jump ofs0079
ofs006f:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "g"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
ofs0079:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")])
pushstring "end"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto"),ProtectedNamespace("tests:TestGoto"),StaticProtectedNs("tests:TestGoto"),PrivateNamespace("TestGoto.as$31")]), 1
returnvoid
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestGoto/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,29 @@
script
sinit
refid "tests:TestGoto/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestGoto", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestGoto"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestGoto"
popscope
initproperty QName(PackageNamespace("tests"), "TestGoto")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestGoto")
#include "TestGoto.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,121 @@
class
refid "tests:TestGoto2"
instance QName(PackageNamespace("tests"), "TestGoto2")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestGoto2")
iinit
refid "tests:TestGoto2/instance/init"
body
maxstack 1
localcount 1
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal0
constructsuper 0
returnvoid
end ; code
end ; body
end ; method
trait method QName(PackageNamespace(""), "run")
method
refid "tests:TestGoto2/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
debug 1, "v", 0, 13
pushbyte 5
coerce_a
setlocal1
getlocal1
pushbyte 1
ifngt ofs003e
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "a"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
getlocal1
pushbyte 2
ifngt ofs0031
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "goto"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
jump ofs0074
ofs0031:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "b"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
jump ofs0047
ofs003e:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "c"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
ofs0047:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "d"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
getlocal1
pushbyte 3
ifngt ofs008c
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "e"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
getlex Multiname("b",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushbyte 5
ifngt ofs007e
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "f"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
ofs0074:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "g"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
ofs007e:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "h"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
jump ofs0096
ofs008c:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "i"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
ofs0096:
findpropstrict Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")])
pushstring "end"
callpropvoid Multiname("trace",[PackageNamespace(""),Namespace("http://adobe.com/AS3/2006/builtin"),PackageNamespace("tests"),PackageInternalNs("tests"),PrivateNamespace("tests:TestGoto2"),ProtectedNamespace("tests:TestGoto2"),StaticProtectedNs("tests:TestGoto2"),PrivateNamespace("TestGoto2.as$32")]), 1
returnvoid
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestGoto2/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,29 @@
script
sinit
refid "tests:TestGoto2/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestGoto2", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestGoto2"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestGoto2"
popscope
initproperty QName(PackageNamespace("tests"), "TestGoto2")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestGoto2")
#include "TestGoto2.class.asasm"
end ; trait
end ; script