make super behaviour more spec compliant - fixes #32

This commit is contained in:
Sebastian McKenzie
2014-10-10 15:49:28 +11:00
parent 35bb0bc71d
commit fb67ab9b5d
15 changed files with 132 additions and 33 deletions

View File

@@ -5,4 +5,8 @@ class Test extends Foo {
super.test();
foob(super);
}
test() {
super();
}
}

View File

@@ -14,5 +14,8 @@ var Test = function (Foo) {
}
});
Test.__proto__ = Foo;
Test.prototype.test = function () {
Foo.prototype.test.call(this);
};
return Test;
}(Foo);

View File

@@ -1,5 +1,6 @@
class Test extends Foo {
constructor() {
super.test;
super.test.whatever;
}
}

View File

@@ -0,0 +1,18 @@
var Test = function(Foo) {
function Test() {
Foo.prototype.test;
Foo.prototype.test.whatever;
}
Test.prototype = Object.create(Foo.prototype, {
constructor: {
value: Test,
enumerable: false,
writable: true,
configurable: true
}
});
Test.__proto__ = Foo;
return Test;
}(Foo);

View File

@@ -1,5 +1,6 @@
class Test extends Foo {
constructor() {
super.test.whatever();
super.test();
}
}

View File

@@ -0,0 +1,16 @@
var Test = function(Foo) {
function Test() {
Foo.prototype.test.whatever();
Foo.prototype.test.call(this);
}
Test.prototype = Object.create(Foo.prototype, {
constructor: {
value: Test,
enumerable: false,
writable: true,
configurable: true
}
});
Test.__proto__ = Foo;
return Test;
}(Foo);

View File

@@ -1,3 +0,0 @@
{
"throws": "cannot access super properties"
}

View File

@@ -1,3 +0,0 @@
{
"throws": "cannot access super properties"
}

View File

@@ -1,5 +1,6 @@
var BaseController = function (Chaplin) {
function BaseController() {
Chaplin.Controller.call(this, arguments);
}
BaseController.prototype = Object.create(Chaplin.Controller.prototype, {
constructor: {
@@ -15,6 +16,7 @@ var BaseController = function (Chaplin) {
var BaseController2 = function (Chaplin) {
function BaseController2() {
Chaplin.Controller.Another.call(this, arguments);
}
BaseController2.prototype = Object.create(Chaplin.Controller.Another.prototype, {
constructor: {

View File

@@ -1,5 +1,7 @@
var Q = function(_ref) {
function Q() {}
function Q() {
_ref.call(this, arguments);
}
Q.prototype = Object.create(_ref.prototype, {
constructor: {

View File

@@ -1,5 +1,6 @@
var Test = function (Foo) {
function Test() {
Foo.call(this, arguments);
}
Test.prototype = Object.create(Foo.prototype, {
constructor: {