Add a v6 version of the super-and-this test, which is exactly the same source compiled to SWF version 6.

This commit is contained in:
David Wendt 2020-04-15 23:08:14 -04:00
parent 17d96a0fa6
commit aaa6f481ac
13 changed files with 127 additions and 1 deletions

View File

@ -184,7 +184,8 @@ swf_tests! {
(swf7_case_sensitive, "avm1/swf7_case_sensitive", 1),
(prototype_enumerate, "avm1/prototype_enumerate", 1),
(stage_object_enumerate, "avm1/stage_object_enumerate", 1),
(as2_super_and_this, "avm1/as2_super_and_this", 1),
(as2_super_and_this_v6, "avm1/as2_super_and_this_v6", 1),
(as2_super_and_this_v8, "avm1/as2_super_and_this_v8", 1),
}
// TODO: These tests have some inaccuracies currently, so we use approx_eq to test that numeric values are close enough.

View File

@ -0,0 +1,49 @@
// Base
undefined
// Base
Extended
// Extended
Extended
// Base
ExtendedFurther
// Extended
ExtendedFurther
// ExtendedFurther
ExtendedFurther
// Base.test_method
ExtendedFurther
// Extended.test_method
ExtendedFurther
// ExtendedFurther.test_method
ExtendedFurther
// Base.test_property (get)
ExtendedFurther
// Extended.test_property (get)
ExtendedFurther
// ExtendedFurther.test_property (get)
ExtendedFurther
test property
// Base.test_property (set)
ExtendedFurther
// Base.test_property (get)
ExtendedFurther
// Extended.test_property (get)
ExtendedFurther
// ExtendedFurther.test_property (get)
ExtendedFurther
// Extended.test_property (set)
ExtendedFurther
// Base.test_property (get)
ExtendedFurther
// Extended.test_property (get)
ExtendedFurther
// ExtendedFurther.test_property (get)
ExtendedFurther
// ExtendedFurther.test_property (set)
ExtendedFurther
// Base.test_property (get)
ExtendedFurther
// Extended.test_property (get)
ExtendedFurther
// ExtendedFurther.test_property (get)
ExtendedFurther

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,22 @@
class Base {
function Base() {
trace("// Base");
trace(this["test"]);
}
function test_method() {
trace("// Base.test_method");
trace(this["test"]);
}
function get test_property() {
trace("// Base.test_property (get)");
trace(this["test"]);
return "test property";
}
function set test_property(val) {
trace("// Base.test_property (set)");
trace(this["test"]);
}
}

View File

@ -0,0 +1,27 @@
class Extended extends Base {
var test = "Extended";
function Extended() {
super();
trace("// Extended");
trace(this["test"]);
}
function test_method() {
super.test_method();
trace("// Extended.test_method");
trace(this["test"]);
}
function get test_property() {
var tp = super.test_property;
trace("// Extended.test_property (get)");
trace(this["test"]);
return tp;
}
function set test_property(val) {
super.test_property = val;
trace("// Extended.test_property (set)");
trace(this["test"]);
}
}

View File

@ -0,0 +1,27 @@
class ExtendedFurther extends Extended {
var test = "ExtendedFurther";
function ExtendedFurther() {
super();
trace("// ExtendedFurther");
trace(this["test"]);
}
function test_method() {
super.test_method();
trace("// ExtendedFurther.test_method");
trace(this["test"]);
}
function get test_property() {
var tp = super.test_property;
trace("// ExtendedFurther.test_property (get)");
trace(this["test"]);
return tp;
}
function set test_property(val) {
super.test_property = val;
trace("// ExtendedFurther.test_property (set)");
trace(this["test"]);
}
}