From bb879870ec7fc2655467463c2e8bc0863fceea2e Mon Sep 17 00:00:00 2001 From: David Wendt Date: Sat, 18 Apr 2020 17:16:51 -0400 Subject: [PATCH] Add test for the constructor property on v6 and v7 SWFs --- core/tests/regression_tests.rs | 2 + .../swfs/avm1/as1_constructor_v6/output.txt | 35 ++++++++++++++++++ .../swfs/avm1/as1_constructor_v6/test.fla | Bin 0 -> 46592 bytes .../swfs/avm1/as1_constructor_v6/test.swf | Bin 0 -> 387 bytes .../swfs/avm1/as1_constructor_v7/output.txt | 35 ++++++++++++++++++ .../swfs/avm1/as1_constructor_v7/test.fla | Bin 0 -> 45568 bytes .../swfs/avm1/as1_constructor_v7/test.swf | Bin 0 -> 387 bytes 7 files changed, 72 insertions(+) create mode 100644 core/tests/swfs/avm1/as1_constructor_v6/output.txt create mode 100644 core/tests/swfs/avm1/as1_constructor_v6/test.fla create mode 100644 core/tests/swfs/avm1/as1_constructor_v6/test.swf create mode 100644 core/tests/swfs/avm1/as1_constructor_v7/output.txt create mode 100644 core/tests/swfs/avm1/as1_constructor_v7/test.fla create mode 100644 core/tests/swfs/avm1/as1_constructor_v7/test.swf diff --git a/core/tests/regression_tests.rs b/core/tests/regression_tests.rs index e76293f6f..6112c8210 100644 --- a/core/tests/regression_tests.rs +++ b/core/tests/regression_tests.rs @@ -187,6 +187,8 @@ swf_tests! { (as2_super_and_this_v6, "avm1/as2_super_and_this_v6", 1), (as2_super_and_this_v8, "avm1/as2_super_and_this_v8", 1), (as2_super_via_manual_prototype, "avm1/as2_super_via_manual_prototype", 1), + (as1_constructor_v6, "avm1/as1_constructor_v6", 1), + (as1_constructor_v7, "avm1/as1_constructor_v7", 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/as1_constructor_v6/output.txt b/core/tests/swfs/avm1/as1_constructor_v6/output.txt new file mode 100644 index 000000000..da6dfab67 --- /dev/null +++ b/core/tests/swfs/avm1/as1_constructor_v6/output.txt @@ -0,0 +1,35 @@ +//function SuperClass() {} +//sub_prototype = new SuperClass(); +//sub_prototype.constructor === SuperClass +true +//sub_prototype.constructor === Object +false +//sub_prototype.hasOwnProperty('constructor') +true +//function SubClass() {} +//SubClass.prototype.constructor === SubClass +true +//SubClass.prototype.constructor === SuperClass +false +//SubClass.prototype.constructor === Object +false +//SubClass.prototype.hasOwnProperty('constructor') +true +//SubClass.prototype = sub_prototype +//SubClass.prototype.constructor === SubClass +false +//SubClass.prototype.constructor === SuperClass +true +//SubClass.prototype.constructor === Object +false +//SubClass.prototype.hasOwnProperty('constructor') +true +//sc_instance = new SubClass(); +//sc_instance.constructor === SubClass +true +//sc_instance.constructor === SuperClass +false +//sc_instance.constructor === Object +false +//sc_instance.hasOwnProperty('constructor') +true diff --git a/core/tests/swfs/avm1/as1_constructor_v6/test.fla b/core/tests/swfs/avm1/as1_constructor_v6/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..f6a9bc3896dfdf78e47cc8f8b8ba4825400a13fd GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/as1_constructor_v6/test.swf b/core/tests/swfs/avm1/as1_constructor_v6/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..047a54c11065ca1e00e8571f7967bdb71d422a46 GIT binary patch literal 387 zcmV-}0et>LS5pQk1pokeoXt{8Zo)7S9Rh*ShSE0uEwadp&jt?AMnz%|ReJzLqM%Y$ z2}&GMRCV7IWW%Pn>T#%TVr&x#EbGN2_IqzUGtVEOjsWUE0D1xX%4)TGES6M&?_cE( zy4^|ayJ#Bt)=NC|!v6a>idt>!^9w^!?2Kk%fC99bd6sSY-dtkcgTw%iZHqf@;72Ho zT@-|tZQDW`5TJvyq4Vas2-43s`*j=*=l)X|;M{1@Y6|LR8)Q`O+>!cb`%Yf{YYJ?B z_!y2%Ak69r{-)&}-2A?GNwAr+b$FESXo_WH-{n?2+-Q!<-2Ia|L=)di4v~8;kn%fT z*2Skt*0RQpA}diqg9eF(Mp6S!DMPxnV()>Rmnf>3B&q`vi{^x$l`}{sMYKjz#b=cQ z$+IR@pDA)e<0*|g1!@DX*Hiu39-Q4=--EOJ&&B&iT3W>g)0Z%S3mpE3qAsZc1~))o h8*oKY!^~E6ok3VFHyMOgaVu6~Fl(TPw|}<)U0PGwxHtd+ literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/as1_constructor_v7/output.txt b/core/tests/swfs/avm1/as1_constructor_v7/output.txt new file mode 100644 index 000000000..2d41da452 --- /dev/null +++ b/core/tests/swfs/avm1/as1_constructor_v7/output.txt @@ -0,0 +1,35 @@ +//function SuperClass() {} +//sub_prototype = new SuperClass(); +//sub_prototype.constructor === SuperClass +true +//sub_prototype.constructor === Object +false +//sub_prototype.hasOwnProperty('constructor') +false +//function SubClass() {} +//SubClass.prototype.constructor === SubClass +true +//SubClass.prototype.constructor === SuperClass +false +//SubClass.prototype.constructor === Object +false +//SubClass.prototype.hasOwnProperty('constructor') +true +//SubClass.prototype = sub_prototype +//SubClass.prototype.constructor === SubClass +false +//SubClass.prototype.constructor === SuperClass +true +//SubClass.prototype.constructor === Object +false +//SubClass.prototype.hasOwnProperty('constructor') +false +//sc_instance = new SubClass(); +//sc_instance.constructor === SubClass +false +//sc_instance.constructor === SuperClass +true +//sc_instance.constructor === Object +false +//sc_instance.hasOwnProperty('constructor') +false diff --git a/core/tests/swfs/avm1/as1_constructor_v7/test.fla b/core/tests/swfs/avm1/as1_constructor_v7/test.fla new file mode 100644 index 0000000000000000000000000000000000000000..df7c22c982315c87c3cdee671d0ae2d28284f646 GIT binary patch literal 45568 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 rmNR0GhS1oaJSAARv%8T<-o4l8}yk literal 0 HcmV?d00001 diff --git a/core/tests/swfs/avm1/as1_constructor_v7/test.swf b/core/tests/swfs/avm1/as1_constructor_v7/test.swf new file mode 100644 index 0000000000000000000000000000000000000000..9e7d2efc071a276b6444460c7984f20cf3b16a05 GIT binary patch literal 387 zcmV-}0et>LS5pTl1pokeoXt{8Zo)7S9Rh*ShSE0uEwadp&jt?AMnz%|ReJzLqM%Y$ z2}&GMRCV7IWW%Pn>T#%TVr&x#EbGN2_IqzUGtVEOjsWUE0D1xX%4)TGES6M&?_cE( zy4^|ayJ#Bt)=NC|!v6a>idt>!^9w^!?2Kk%fC99bd6sSY-dtkcgTw%iZHqf@;72Ho zT@-|tZQDW`5TJvyq4Vas2-43s`*j=*=l)X|;M{1@Y6|LR8)Q`O+>!cb`%Yf{YYJ?B z_!y2%Ak69r{-)&}-2A?GNwAr+b$FESXo_WH-{n?2+-Q!<-2Ia|L=)di4v~8;kn%fT z*2Skt*0RQpA}diqg9eF(Mp6S!DMPxnV()>Rmnf>3B&q`vi{^x$l`}{sMYKjz#b=cQ z$+IR@pDA)e<0*|g1!@DX*Hiu39-Q4=--EOJ&&B&iT3W>g)0Z%S3mpE3qAsZc1~))o h8*oKY!^~E6ok3VFHyMOgaVu6~Fl(TPw|}<)U0PLHxH$j- literal 0 HcmV?d00001