From a60fadf0bb2255813bad0abadb687e01eb616cfe Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Mon, 6 Jan 2020 19:08:30 -0800 Subject: [PATCH] tests: Add test for correct scope in SetVariable --- core/tests/regression_tests.rs | 1 + .../swfs/avm1/set_variable_scope/output.txt | 59 ++++++++++++++++++ .../swfs/avm1/set_variable_scope/test.fla | Bin 0 -> 5707 bytes .../swfs/avm1/set_variable_scope/test.swf | Bin 0 -> 461 bytes 4 files changed, 60 insertions(+) create mode 100644 core/tests/swfs/avm1/set_variable_scope/output.txt create mode 100644 core/tests/swfs/avm1/set_variable_scope/test.fla create mode 100644 core/tests/swfs/avm1/set_variable_scope/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index 3424b709e..cf5ceafb0 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -101,6 +101,7 @@ swf_tests! { (equals2_swf5, "avm1/equals2_swf5", 1), (equals2_swf6, "avm1/equals2_swf6", 1), (equals2_swf7, "avm1/equals2_swf7", 1), + (set_variable_scope, "avm1/set_variable_scope", 1), (slash_syntax, "avm1/slash_syntax", 2), (strictequals_swf6, "avm1/strictequals_swf6", 1), (global_is_bare, "avm1/global_is_bare", 1), diff --git a/core/tests/swfs/avm1/set_variable_scope/output.txt b/core/tests/swfs/avm1/set_variable_scope/output.txt new file mode 100644 index 000000000..10c237337 --- /dev/null +++ b/core/tests/swfs/avm1/set_variable_scope/output.txt @@ -0,0 +1,59 @@ +// foo: +undefined + +// _global.foo = 'global'; +// foo: +global + +// foo = 'root'; +// foo: +root +// _global.foo: +global + +// f() { +// foo = 'f'; +// bar = 'f bar'; +// foo: +f +// bar: +f bar +// } + +// foo: +f +// bar: +f bar + +// tellTarget(mc) { +// foo: +global +// foo = 'mc foo'; +// blah = 'mc blah'; +// } + +// foo: +f +// mc.foo: +mc foo +// blah: +undefined +// mc.blah: +mc blah + +// with(mc) { +// foo: +mc foo +// foo = 'mc foo2'; +// baz = 'mc baz'; +// } + +// foo: +f +// mc.foo: +mc foo2 +// baz: +mc baz +// mc.baz: +undefined + diff --git a/core/tests/swfs/avm1/set_variable_scope/test.fla b/core/tests/swfs/avm1/set_variable_scope/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..1fcf52368ac4613d0e0f2924c65efc46af8101c5 GIT binary patch literal 5707 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 PF6xO!@f$N&*97oCFBYB& literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/set_variable_scope/test.swf b/core/tests/swfs/avm1/set_variable_scope/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..1257ff6edf81b193999abc226e2498c9573c60a3 GIT binary patch literal 461 zcmV;;0W$tWS5prU1ONbdoPASEF9T5&{${FU>RHbg9d12}jf!QZNLX00v1c@jWSU8u zCZr;fNJL^`BM2M+#9#0;`Y-C-bMK5{FqxdkcOKt4C%NZH?gRaAK-R$40O;E^+wJyx z;w1sx-Wzi$7DaVoQCvtvh^p_4vY4;VuYyce6?*8_8I=Y_NP_LKrWEF}bqQ{(@%>}Z zKXkn%-CKFoM&r;*RmhCG?>8te)sK4a7qB#rJa5mfA0IUqY8AObt@3S&T18saNEv!W z&ppvWY07O#LAx@iR{3HgsHCybK09rkXu>$#N=Ua7oTM4hxlO)Z6UtGmG{gSVe6{H0 zz&0LD*eFP86dpTZn|8vHUI%+g+hVViGt3+-n`KftDVALS5WNQ?2`U|48fC z+-WD4Fc5T*&`wa(4Ga3S6Xi^-YA`yZ;uvB%oD;EyMl|~