From 7006b080957d6df2a5dc569c2944e4ba87e310b4 Mon Sep 17 00:00:00 2001 From: Kamil Jarosz Date: Fri, 19 Apr 2024 00:32:55 +0200 Subject: [PATCH] tests: Add avm2/tab_ordering_properties This is an AVM2 version of avm1/tab_ordering_properties --- .../swfs/avm2/tab_ordering_properties/Test.as | 240 +++++++ .../avm2/tab_ordering_properties/output.txt | 671 ++++++++++++++++++ .../avm2/tab_ordering_properties/test.swf | Bin 0 -> 2503 bytes .../avm2/tab_ordering_properties/test.toml | 1 + 4 files changed, 912 insertions(+) create mode 100644 tests/tests/swfs/avm2/tab_ordering_properties/Test.as create mode 100644 tests/tests/swfs/avm2/tab_ordering_properties/output.txt create mode 100644 tests/tests/swfs/avm2/tab_ordering_properties/test.swf create mode 100644 tests/tests/swfs/avm2/tab_ordering_properties/test.toml diff --git a/tests/tests/swfs/avm2/tab_ordering_properties/Test.as b/tests/tests/swfs/avm2/tab_ordering_properties/Test.as new file mode 100644 index 000000000000..4120b6de227a --- /dev/null +++ b/tests/tests/swfs/avm2/tab_ordering_properties/Test.as @@ -0,0 +1,240 @@ +package { +import flash.display.MovieClip; +import flash.text.TextField; +import flash.display.SimpleButton; +import flash.display.Sprite; +import flash.display.MovieClip; +public class Test extends MovieClip { + public function Test() { + super(); + + var text:TextField = new TextField(); + var text2:TextField = new TextField(); + text2.type = "input"; + var button:SimpleButton = new SimpleButton(); + var mc:MovieClip = new MovieClip(); + var mc2:MovieClip = new MovieClip(); + mc2.buttonMode = true; + var mc3:MovieClip = new MovieClip(); + var sprite:Sprite = new Sprite(); + + trace('===== stage ====='); + this.testProperties(this.stage); + trace('===== text ====='); + this.testProperties(text); + trace('===== text type input ====='); + this.testProperties(text2); + trace('===== button ====='); + this.testProperties(button); + trace('===== movie clip ====='); + this.testProperties(mc); + trace('===== movie clip button mode true ====='); + this.testProperties(mc2); + trace('===== movie clip with index ====='); + mc3.tabIndex = 4; + this.testProperties(mc3); + trace('===== sprite ====='); + this.testProperties(sprite); + } + + function logError(f:*):void { + try { + f(); + } catch (error:Error) { + trace(' Error: ' + error); + } + } + + function printProperties(obj:*):void { + this.logError(function():void { + trace(' tabEnabled = ' + obj.tabEnabled); + }); + this.logError(function():void { + trace(' tabIndex = ' + obj.tabIndex); + }); + this.logError(function():void { + trace(' tabChildren = ' + obj.tabChildren); + }); + for (var i:String in obj) { + if (i == 'tabEnabled') { + trace(' enumerated tabEnabled'); + } + } + for (i in obj) { + if (i == 'tabIndex') { + trace(' enumerated tabIndex'); + } + } + for (i in obj) { + if (i == 'tabChildren') { + trace(' enumerated tabChildren'); + } + } + } + + function testProperties(obj:*):void { + trace(' default'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = true; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 0; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = true; + }); + + trace(' after set 1'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = false; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 4; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = false; + }); + + trace(' after set 2'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = undefined; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = undefined; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = undefined; + }); + + trace(' after set 3'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = -4; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = -4; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = -4; + }); + + trace(' after set 4'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = 2147483647; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 2147483647; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = 2147483647; + }); + + trace(' after set 5'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = 2147483648; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 2147483648; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = 2147483648; + }); + + trace(' after set 6'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = 'x'; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 'x'; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = 'x'; + }); + + trace(' after set 7'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = -2147483648; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = -2147483648; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = -2147483648; + }); + + trace(' after set 8'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = new Object(); + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = new Object(); + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = new Object(); + }); + + trace(' after set 9'); + this.printProperties(obj); + + this.logError(function():void { + trace(' set tabEnabled'); + obj.tabEnabled = 1.1; + }); + this.logError(function():void { + trace(' set tabIndex'); + obj.tabIndex = 1.1; + }); + this.logError(function():void { + trace(' set tabChildren'); + obj.tabChildren = 1.1; + }); + + trace(' after set 10'); + this.printProperties(obj); + } +} +} diff --git a/tests/tests/swfs/avm2/tab_ordering_properties/output.txt b/tests/tests/swfs/avm2/tab_ordering_properties/output.txt new file mode 100644 index 000000000000..051cb9c32be1 --- /dev/null +++ b/tests/tests/swfs/avm2/tab_ordering_properties/output.txt @@ -0,0 +1,671 @@ +===== stage ===== + default + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 1 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 2 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 3 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 4 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 5 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 6 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 7 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 8 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 9 + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabIndex + Error: Error: Error #2071: The Stage class does not implement this property or method. + set tabChildren + after set 10 + tabEnabled = false + tabIndex = -1 + tabChildren = true +===== text ===== + default + tabEnabled = false + tabIndex = -1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 1 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 2 + tabEnabled = false + tabIndex = 4 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 3 + tabEnabled = false + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 4 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 5 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 6 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 7 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 8 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 9 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 10 + tabEnabled = true + tabIndex = 1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. +===== text type input ===== + default + tabEnabled = true + tabIndex = -1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 1 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 2 + tabEnabled = false + tabIndex = 4 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 3 + tabEnabled = false + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 4 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 5 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 6 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 7 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 8 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 9 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.text.TextField. + after set 10 + tabEnabled = true + tabIndex = 1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.text.TextField and there is no default value. +===== button ===== + default + tabEnabled = true + tabIndex = -1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 1 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 2 + tabEnabled = false + tabIndex = 4 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 3 + tabEnabled = false + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 4 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 5 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 6 + tabEnabled = true + tabIndex = 2147483647 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 7 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 8 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 9 + tabEnabled = true + tabIndex = 0 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. + set tabEnabled + set tabIndex + set tabChildren + Error: ReferenceError: Error #1056: Cannot create property tabChildren on flash.display.SimpleButton. + after set 10 + tabEnabled = true + tabIndex = 1 + Error: ReferenceError: Error #1069: Property tabChildren not found on flash.display.SimpleButton and there is no default value. +===== movie clip ===== + default + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 1 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 2 + tabEnabled = false + tabIndex = 4 + tabChildren = false + set tabEnabled + set tabIndex + set tabChildren + after set 3 + tabEnabled = false + tabIndex = 0 + tabChildren = false + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + after set 4 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 5 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 6 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 7 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 8 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 9 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 10 + tabEnabled = true + tabIndex = 1 + tabChildren = true +===== movie clip button mode true ===== + default + tabEnabled = true + tabIndex = -1 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 1 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 2 + tabEnabled = false + tabIndex = 4 + tabChildren = false + set tabEnabled + set tabIndex + set tabChildren + after set 3 + tabEnabled = false + tabIndex = 0 + tabChildren = false + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + after set 4 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 5 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 6 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 7 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 8 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 9 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 10 + tabEnabled = true + tabIndex = 1 + tabChildren = true +===== movie clip with index ===== + default + tabEnabled = false + tabIndex = 4 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 1 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 2 + tabEnabled = false + tabIndex = 4 + tabChildren = false + set tabEnabled + set tabIndex + set tabChildren + after set 3 + tabEnabled = false + tabIndex = 0 + tabChildren = false + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + after set 4 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 5 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 6 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 7 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 8 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 9 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 10 + tabEnabled = true + tabIndex = 1 + tabChildren = true +===== sprite ===== + default + tabEnabled = false + tabIndex = -1 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 1 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 2 + tabEnabled = false + tabIndex = 4 + tabChildren = false + set tabEnabled + set tabIndex + set tabChildren + after set 3 + tabEnabled = false + tabIndex = 0 + tabChildren = false + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -4. + set tabChildren + after set 4 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 5 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 6 + tabEnabled = true + tabIndex = 2147483647 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 7 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + Error: RangeError: Error #2027: Parameter tabIndex must be a non-negative number; got -2147483648. + set tabChildren + after set 8 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 9 + tabEnabled = true + tabIndex = 0 + tabChildren = true + set tabEnabled + set tabIndex + set tabChildren + after set 10 + tabEnabled = true + tabIndex = 1 + tabChildren = true diff --git a/tests/tests/swfs/avm2/tab_ordering_properties/test.swf b/tests/tests/swfs/avm2/tab_ordering_properties/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..6e274895536c70a3566165e6a66bd98c8750aaea GIT binary patch literal 2503 zcmV;&2{`scS5qkv6952s0lk=ca2r=0$KTVgv^p&7up`^@CEJP}JGQl!9Vd1YM`|30 zI8BqrNt1>OvyxV}Qe8+Z+hKs3K)HtdZU=@^palko`y7~Z6(|G4CZP#1FqCoy2JrS@ z2FCo}+kILoo(})9Gi&|c@Avt>@7v!#?P|P%_~#L7egdI(jOKkE2%(2sZexTFmD8Eo zv-1m~jeM?9nT65ep;bjG%|;^Y>+9p|ljFtmN@QYYW+oy=Bhly>5Mz}q1x4BzD^v!C z=I8|TawS#HmXvI<5F!&w$zoMGJTzp?noiXwEmg}oI%PT)k#llhE-01A#P|eElupfN zisihd%t@tEE}N3bbdim*%4#w7;JUOXk7aUFW%W?R1c^q;Dmi&BUXoI)a%dqZZ-nBe zoWeRm*tEIMIpZobpct2^ny!l~>N%n-Rg<}FWmPUSpQU0(S(nOSSgaP(bfr{if<%@o z%aT(3pCX14Nlq%PRHYSpPA)8;U!rr?QuGQWg$crO0vBjkAD$TCkkcLeV3!Gk0o zmnys>ZzxvsCu&Pp6{T3P z(zscH1)eDvOLAGs$`!AU5oew1tV@tZgy?$onqRN!j(RGfr}AVup%kn~PY>-#8=^d{ zGo+NO#+v$eaO+uR6+F|h*=fzLNXZjqXqfA*(`(SciV`7zoVnu4v2wXs4vRQrrIA%8 zV^;_cI-U)=Db7fKt(Z;wNEsZC6{KWNPKOSMxMK3M)6CE<0rxXJIn`%;t)z4@DUYX$ z`AB?eG7=TV=}5Ag%_-SJTf;q?t=*&6#=L%;!i~v!{l=b7UY1kJ(IPyBvIV)^+X$T~ zC^Fn!CA%i;U}s~!VUjMrCa;kP(d;quLF$qMPm{98xNzE9xNN^MKDwICrOR>wQZDEM z8~R{p73#K4ShTY~b`YgpsODj13bfGdUE9tIwF~adGasC_Eh%8N(n{~u9j8lusC+{6LVXT^c0 zfF1I;{iqp6#tE6jSBKf?|NRN>_kugD&UzLvorCi{ocBF| zmlE*#GTgyC>#YEs3(x-O5jC|Hu1AslM&t2+}B6l zl0|DyaElz;*6Iea%)7~o5$KH%(+{(?S`YI1am90hl}r;GTphj_s!f75&#L>NI!UWOy*dq5E2|!W>J+W|_38{%ZJgER z{uhR+MYir~EXp|aaNc69ei(_`gc{=(TJSJ%Q)-Mi!u@K@YJ{_4bc@#8 zlE2XdlV}GaZ5bVDbt0r4f+ZZFy_=2lobT55ww;HIJ@TUB7!~(WaU8@mRD7gfJpZEN zV^qA4iWfjUOU3i`;uFV_#X~yWiY&X3V1YKb!!@1(dXCcfl7T*WN;y7RJ2O z^m-R%#xQujn=q}6d9Ug9KF0X8_Y-CpV?JnlJ;E5j_9$TjjCsuT`Y2^0#Orawv@z!6 zrq?GJGc)H__VJQrjs#W zH@&{W7{B&S!gMj_JEqrnDKlmPukR72n=wByy`E-_Px~QZdKmL#)9V?=__d!9rk60i zus2lG>l$SeZHsLP?5-0m#IRqOcF)#fKJ6yK`WW_0)A3hzm|y!f!TQ<4o-<81wz?eUpj(=i|Px~`r!i>3X+WnO=e(i6B*=^xmZjFa4JjouK^Y~=#ad}d^8}{-s z`t?7hlBeQAJG`$>t1-cNS}v(EyAfVcV-6#H0941RDq*UY)tJ+$r_`9s2v^itlM&`X z^%APeo2sH3a~t)F8f!Mfbv5QO!dHRn1XaD-R6V4|yhiB20Z5C1ya(b|BmMxyyNvilM0%1+KU^pM2p|Ci`544)M*Jki?MD0=BE6eRKU*jL z93UMA@+F9aM*KC1JB|2TM0$!!zg;JN3Xm=X`98$mM*Jg)dyM#}M0yXE{;W>=b3l3x z