Closed
Description
Well that's a difficult bug to summarize.
In a method on a superclass, this
should look at the current object top-down when resolving properties, and not just from the current point in the prototype chain.
Test case:
class Base {
function Base() {
trace("// Base");
trace(this["test"]);
}
}
class Extended extends Base {
var test = "Extended";
function Extended() {
super();
trace("// Extended");
trace(this["test"]);
}
}
class ExtendedFurther extends Extended {
var test = "ExtendedFurther";
function ExtendedFurther() {
super();
trace("// ExtendedFurther");
trace(this["test"]);
}
}
new ExtendedFurther();
Expected output:
// Base
ExtendedFurther
// Extended
ExtendedFurther
// ExtendedFurther
ExtendedFurther
In ruffle:
// Base
undefined
// Extended
Extended
// ExtendedFurther
ExtendedFurther