forced closure on super classes - fixes #339
This commit is contained in:
@@ -13,29 +13,34 @@ var _inherits = function (child, parent) {
|
||||
if (parent) child.__proto__ = parent;
|
||||
};
|
||||
|
||||
var Test = function Test() {
|
||||
woops["super"].test();
|
||||
Foo.call(this);
|
||||
Foo.prototype.test.call(this);
|
||||
foob(Foo);
|
||||
var Test = (function () {
|
||||
var _TestSuper = Foo;
|
||||
var Test = function Test() {
|
||||
woops["super"].test();
|
||||
_TestSuper.call(this);
|
||||
_TestSuper.prototype.test.call(this);
|
||||
foob(_TestSuper);
|
||||
|
||||
Foo.call.apply(Foo, [this].concat(_slice.call(arguments)));
|
||||
Foo.call.apply(Foo, [this, "test"].concat(_slice.call(arguments)));
|
||||
_TestSuper.call.apply(_TestSuper, [this].concat(_slice.call(arguments)));
|
||||
_TestSuper.call.apply(_TestSuper, [this, "test"].concat(_slice.call(arguments)));
|
||||
|
||||
Foo.prototype.test.call.apply(Foo.prototype, [this].concat(_slice.call(arguments)));
|
||||
Foo.prototype.test.call.apply(Foo.prototype, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
_TestSuper.prototype.test.call.apply(_TestSuper.prototype, [this].concat(_slice.call(arguments)));
|
||||
_TestSuper.prototype.test.call.apply(_TestSuper.prototype, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
|
||||
_inherits(Test, Foo);
|
||||
_inherits(Test, _TestSuper);
|
||||
|
||||
Test.prototype.test = function () {
|
||||
Foo.prototype.test.call(this);
|
||||
Foo.prototype.test.call.apply(Foo.prototype.test, [this].concat(_slice.call(arguments)));
|
||||
Foo.prototype.test.call.apply(Foo.prototype.test, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
Test.prototype.test = function () {
|
||||
_TestSuper.prototype.test.call(this);
|
||||
_TestSuper.prototype.test.call.apply(_TestSuper.prototype.test, [this].concat(_slice.call(arguments)));
|
||||
_TestSuper.prototype.test.call.apply(_TestSuper.prototype.test, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
|
||||
Test.foo = function () {
|
||||
Foo.foo.call(this);
|
||||
Foo.foo.call.apply(Foo.foo, [this].concat(_slice.call(arguments)));
|
||||
Foo.foo.call.apply(Foo.foo, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
Test.foo = function () {
|
||||
_TestSuper.foo.call(this);
|
||||
_TestSuper.foo.call.apply(_TestSuper.foo, [this].concat(_slice.call(arguments)));
|
||||
_TestSuper.foo.call.apply(_TestSuper.foo, [this, "test"].concat(_slice.call(arguments)));
|
||||
};
|
||||
|
||||
return Test;
|
||||
})();
|
||||
|
||||
@@ -12,9 +12,14 @@ var _inherits = function (child, parent) {
|
||||
if (parent) child.__proto__ = parent;
|
||||
};
|
||||
|
||||
var Test = function Test() {
|
||||
Foo.prototype.test;
|
||||
Foo.prototype.test.whatever;
|
||||
};
|
||||
var Test = (function () {
|
||||
var _TestSuper = Foo;
|
||||
var Test = function Test() {
|
||||
_TestSuper.prototype.test;
|
||||
_TestSuper.prototype.test.whatever;
|
||||
};
|
||||
|
||||
_inherits(Test, Foo);
|
||||
_inherits(Test, _TestSuper);
|
||||
|
||||
return Test;
|
||||
})();
|
||||
|
||||
@@ -12,13 +12,18 @@ var _inherits = function (child, parent) {
|
||||
if (parent) child.__proto__ = parent;
|
||||
};
|
||||
|
||||
var Test = function Test() {
|
||||
Foo.prototype.test.whatever();
|
||||
Foo.prototype.test.call(this);
|
||||
};
|
||||
var Test = (function () {
|
||||
var _TestSuper = Foo;
|
||||
var Test = function Test() {
|
||||
_TestSuper.prototype.test.whatever();
|
||||
_TestSuper.prototype.test.call(this);
|
||||
};
|
||||
|
||||
_inherits(Test, Foo);
|
||||
_inherits(Test, _TestSuper);
|
||||
|
||||
Test.test = function () {
|
||||
return Foo.wow.call(this);
|
||||
};
|
||||
Test.test = function () {
|
||||
return _TestSuper.wow.call(this);
|
||||
};
|
||||
|
||||
return Test;
|
||||
})();
|
||||
|
||||
@@ -16,8 +16,13 @@ var Test = function Test() {
|
||||
this.state = "test";
|
||||
};
|
||||
|
||||
var Foo = function Foo() {
|
||||
this.state = "test";
|
||||
};
|
||||
var Foo = (function () {
|
||||
var _FooSuper = Bar;
|
||||
var Foo = function Foo() {
|
||||
this.state = "test";
|
||||
};
|
||||
|
||||
_inherits(Foo, Bar);
|
||||
_inherits(Foo, _FooSuper);
|
||||
|
||||
return Foo;
|
||||
})();
|
||||
|
||||
@@ -12,18 +12,28 @@ var _inherits = function (child, parent) {
|
||||
if (parent) child.__proto__ = parent;
|
||||
};
|
||||
|
||||
var BaseController = function BaseController() {
|
||||
if (Chaplin.Controller) {
|
||||
Chaplin.Controller.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
var BaseController = (function () {
|
||||
var _BaseControllerSuper = Chaplin.Controller;
|
||||
var BaseController = function BaseController() {
|
||||
if (_BaseControllerSuper) {
|
||||
_BaseControllerSuper.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
_inherits(BaseController, Chaplin.Controller);
|
||||
_inherits(BaseController, _BaseControllerSuper);
|
||||
|
||||
var BaseController2 = function BaseController2() {
|
||||
if (Chaplin.Controller.Another) {
|
||||
Chaplin.Controller.Another.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
return BaseController;
|
||||
})();
|
||||
|
||||
_inherits(BaseController2, Chaplin.Controller.Another);
|
||||
var BaseController2 = (function () {
|
||||
var _BaseController2Super = Chaplin.Controller.Another;
|
||||
var BaseController2 = function BaseController2() {
|
||||
if (_BaseController2Super) {
|
||||
_BaseController2Super.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
_inherits(BaseController2, _BaseController2Super);
|
||||
|
||||
return BaseController2;
|
||||
})();
|
||||
|
||||
@@ -12,10 +12,15 @@ var _inherits = function (child, parent) {
|
||||
if (parent) child.__proto__ = parent;
|
||||
};
|
||||
|
||||
var Test = function Test() {
|
||||
if (Foo) {
|
||||
Foo.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
var Test = (function () {
|
||||
var _TestSuper = Foo;
|
||||
var Test = function Test() {
|
||||
if (_TestSuper) {
|
||||
_TestSuper.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
_inherits(Test, Foo);
|
||||
_inherits(Test, _TestSuper);
|
||||
|
||||
return Test;
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user