From 8da0f43412330ada7352b1d9b5b5a7b6ee3eab47 Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Sun, 28 Jun 2020 01:21:44 -0700 Subject: [PATCH] tests: Add test for DefineLocal and issue #760 --- core/tests/regression_tests.rs | 1 + core/tests/swfs/avm1/define_local/output.txt | 27 +++++++++++++++++++ core/tests/swfs/avm1/define_local/test.fla | Bin 0 -> 5127 bytes core/tests/swfs/avm1/define_local/test.swf | Bin 0 -> 480 bytes 4 files changed, 28 insertions(+) create mode 100644 core/tests/swfs/avm1/define_local/output.txt create mode 100644 core/tests/swfs/avm1/define_local/test.fla create mode 100644 core/tests/swfs/avm1/define_local/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index a0aa01fca..7ff7e4d98 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -208,6 +208,7 @@ swf_tests! { #[ignore] (edittext_newlines, "avm1/edittext_newlines", 1), (edittext_html_entity, "avm1/edittext_html_entity", 1), #[ignore] (edittext_html_roundtrip, "avm1/edittext_html_roundtrip", 1), + (define_local, "avm1/define_local", 1), } // TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough. diff --git a/core/tests/swfs/avm1/define_local/output.txt b/core/tests/swfs/avm1/define_local/output.txt new file mode 100644 index 000000000..c5a9dc4a7 --- /dev/null +++ b/core/tests/swfs/avm1/define_local/output.txt @@ -0,0 +1,27 @@ +DefineLocal runs virtual setter: +set prop1 +get prop1 +prop1: prop1 + +DefineLocal overwrites prototype non-virtual property: +prop2: 10 + +DefineLocal runs prototype virtual setter: +set prop3 +get prop3 +prop3: prop3 + +DefineLocal2 already defined: +prop4: prop4 + +DefineLocal2 already defined on prototype: +prop5: prop5 + +DefineLocal2 not already defined: +prop6: undefined +hasOwnProperty('prop6'): true + +Inside function + +prop1: func1 +prop3: undefined diff --git a/core/tests/swfs/avm1/define_local/test.fla b/core/tests/swfs/avm1/define_local/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..91018e524aafca5a7d08584f46f1fb61d27d3448 GIT binary patch literal 5127 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 SQOd;yXrluFlc;+D!2bZ@46vyH literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/define_local/test.swf b/core/tests/swfs/avm1/define_local/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..32cb2dcb96ce8f0598bd0afa0cb2fdf9e095665d GIT binary patch literal 480 zcmV<60U!QDS5ptg0{{ScoP|=&Zqq;zp0%BN(-<5>Atj`APc9&FNYeID@vByfkbt1R z0J7>0wG^!_dy_U#04I*VxA8jYu5$A9%gsu`wT_L| zYW2=sngBnq34@O!i$cyOGjS%PSODl#ACfdq`bP}+q1rPp8P?!?d0Iz#9%T@O;a8RM zR4(9iJdgPCG)go<#&VHxqz+1xVQDgiD(+)EfD=B61pgGD1yh#JM8@V(DrYKDa>-LQ z%xy+I=jlZnNuIH?9TTy5b)!m(xr)mS?&z^YrTkZ~0Sl%n55fftu^1k$=l&0i#iDAk zmK+qr9M***mVa+?sQBkWHog!yul#%u>w7Q$KwtvDnkoR8FQE^)0Tg^42}a`w0n*7W zpr%Deeonwt6$2}lWsLl#4M5-$Hc;B|mks@G9LzS*!hV}KRkYO?0!n+j)I9CzZ4;B$ z7j5QHXI%HXSM$1$UM_mMYp+sXI4YMmZSUN5_NX`3*#kef^&Fc@`xd~H^ WmXelwqGHkAHywDd4!;2xnBvY^Na9)m literal 0 HcmV?d00001