TypeScript/tests/baselines/reference/super2.js
2014-08-14 06:42:18 -07:00

127 lines
2.5 KiB
JavaScript

//// [super2.ts]
// Case 5
class Base5 {
public x() {
return "BaseX";
}
public y() {
return "BaseY";
}
}
class Sub5 extends Base5 {
public x() {
return "SubX";
}
}
class SubSub5 extends Sub5 {
public x() {
return super.x();
}
public y() {
return super.y();
}
}
// Case 6
class Base6 {
public x() {
return "BaseX";
}
}
class Sub6 extends Base6 {
public y() {
return "SubY";
}
}
class SubSub6 extends Sub6 {
public y() {
return super.y();
}
}
var results1 = new SubSub5();
var results2 = new SubSub6();
results1.x() + results1.y() + results2.y();
//// [super2.js]
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
// Case 5
var Base5 = (function () {
function Base5() {
}
Base5.prototype.x = function () {
return "BaseX";
};
Base5.prototype.y = function () {
return "BaseY";
};
return Base5;
})();
var Sub5 = (function (_super) {
__extends(Sub5, _super);
function Sub5() {
_super.apply(this, arguments);
}
Sub5.prototype.x = function () {
return "SubX";
};
return Sub5;
})(Base5);
var SubSub5 = (function (_super) {
__extends(SubSub5, _super);
function SubSub5() {
_super.apply(this, arguments);
}
SubSub5.prototype.x = function () {
return _super.prototype.x.call(this);
};
SubSub5.prototype.y = function () {
return _super.prototype.y.call(this);
};
return SubSub5;
})(Sub5);
// Case 6
var Base6 = (function () {
function Base6() {
}
Base6.prototype.x = function () {
return "BaseX";
};
return Base6;
})();
var Sub6 = (function (_super) {
__extends(Sub6, _super);
function Sub6() {
_super.apply(this, arguments);
}
Sub6.prototype.y = function () {
return "SubY";
};
return Sub6;
})(Base6);
var SubSub6 = (function (_super) {
__extends(SubSub6, _super);
function SubSub6() {
_super.apply(this, arguments);
}
SubSub6.prototype.y = function () {
return _super.prototype.y.call(this);
};
return SubSub6;
})(Sub6);
var results1 = new SubSub5();
var results2 = new SubSub6();
results1.x() + results1.y() + results2.y();