fixed some dup problems

This commit is contained in:
Jindra Petřík
2021-01-27 19:11:31 +01:00
parent 97c325eb20
commit 2bebbfad0b
21 changed files with 644 additions and 76 deletions

View File

@@ -10,5 +10,10 @@ program
#include "tests/TestForEachCoerced.script.asasm"
#include "tests/TestIncrement2.script.asasm"
#include "tests/TestSetSlotDup.script.asasm"
#include "tests/TestSetSlotFindProperty.script.asasm"
#include "tests/TestDoubleDup.script.asasm"
#include "tests/TestIncrement3.script.asasm"
#include "tests/TestDup.script.asasm"
#include "tests/TestDup2.script.asasm"
; place to add next
end ; program

View File

@@ -0,0 +1,72 @@
class
refid "tests:TestDoubleDup"
instance QName(PackageNamespace("tests"), "TestDoubleDup")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestDoubleDup")
iinit
refid "tests:TestDoubleDup/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:TestDoubleDup/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
findpropstrict QName(PackageNamespace(""),"myprop")
getlocal 5
callproperty QName(PackageNamespace(""),"myprop"), 1
coerce QName(PackageNamespace("flash.geom"),"Rectangle")
dup
dup
setlocal 10
getproperty QName(PackageNamespace(""),"width")
negate
getlocal 10
getproperty QName(PackageNamespace(""),"height")
negate
callpropvoid QName(PackageNamespace(""),"mymethod"), 2
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestDoubleDup/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:TestDoubleDup/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestDoubleDup", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestDoubleDup"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestDoubleDup"
popscope
initproperty QName(PackageNamespace("tests"), "TestDoubleDup")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestDoubleDup")
#include "TestDoubleDup.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,71 @@
class
refid "tests:TestDup"
instance QName(PackageNamespace("tests"), "TestDup")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestDup")
iinit
refid "tests:TestDup/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:TestDup/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
pushbyte 1
pushbyte 1
getlocal1
getlocal 4
divide
subtract
dup
convert_d
setlocal1
getlocal1
multiply
subtract
returnvalue
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestDup/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:TestDup/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestDup", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestDup"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestDup"
popscope
initproperty QName(PackageNamespace("tests"), "TestDup")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestDup")
#include "TestDup.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,67 @@
class
refid "tests:TestDup2"
instance QName(PackageNamespace("tests"), "TestDup2")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestDup2")
iinit
refid "tests:TestDup2/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:TestDup2/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal3
getproperty QName(PackageNamespace(""),"myprop")
dup
getlocal1
getproperty MultinameL([PrivateNamespace("somens")])
swap
call 0
pop
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestDup2/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:TestDup2/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestDup2", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestDup2"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestDup2"
popscope
initproperty QName(PackageNamespace("tests"), "TestDup2")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestDup2")
#include "TestDup2.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,67 @@
class
refid "tests:TestIncrement3"
instance QName(PackageNamespace("tests"), "TestIncrement3")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestIncrement3")
iinit
refid "tests:TestIncrement3/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:TestIncrement3/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
getlocal0
pushscope
getlocal1
dup
getproperty QName(PackageNamespace(""),"length")
convert_d
decrement
setproperty QName(PackageNamespace(""),"length")
returnvoid
end ; code
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestIncrement3/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:TestIncrement3/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestIncrement3", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestIncrement3"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestIncrement3"
popscope
initproperty QName(PackageNamespace("tests"), "TestIncrement3")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestIncrement3")
#include "TestIncrement3.class.asasm"
end ; trait
end ; script

View File

@@ -0,0 +1,70 @@
class
refid "tests:TestSetSlotFindProperty"
instance QName(PackageNamespace("tests"), "TestSetSlotFindProperty")
extends QName(PackageNamespace(""), "Object")
flag SEALED
flag PROTECTEDNS
protectedns ProtectedNamespace("tests:TestSetSlotFindProperty")
iinit
refid "tests:TestSetSlotFindProperty/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:TestSetSlotFindProperty/instance/run"
returns QName(PackageNamespace(""), "void")
body
maxstack 2
localcount 4
initscopedepth 4
maxscopedepth 5
code
newactivation
pushscope
pushbyte 50
dup
findproperty QName(PackageInternalNs("myns"),"myprop")
swap
setslot 1
returnvalue
end ; code
trait const QName(PackageInternalNs("myns"),"myprop")
slotid 1
type QName(PackageNamespace(""),"int")
end ; trait
end ; body
end ; method
end ; trait
end ; instance
cinit
refid "tests:TestSetSlotFindProperty/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:TestSetSlotFindProperty/init"
body
maxstack 2
localcount 1
initscopedepth 1
maxscopedepth 3
code
getlocal0
pushscope
findpropstrict Multiname("TestSetSlotFindProperty", [PackageNamespace("tests")])
getlex QName(PackageNamespace(""), "Object")
pushscope
getlex Multiname("Object", [PrivateNamespace(null, "tests:TestSetSlotFindProperty"), PackageNamespace(""), PackageNamespace("tests"), PackageInternalNs("tests"), Namespace("http://adobe.com/AS3/2006/builtin")])
newclass "tests:TestSetSlotFindProperty"
popscope
initproperty QName(PackageNamespace("tests"), "TestSetSlotFindProperty")
returnvoid
end ; code
end ; body
end ; method
trait class QName(PackageNamespace("tests"), "TestSetSlotFindProperty")
#include "TestSetSlotFindProperty.class.asasm"
end ; trait
end ; script

Binary file not shown.