Daniel Tschinder 10cd6519d8 Fix class inheritance in IE <=10 (T3041) (#3527)
* Fix class inheritance in IE9 & IE10 (T3041)

Internet Explorer 9&10 do not support __proto__ at all, don't have
Object.setPrototypeOf(), but have Object.getPrototypeOf().

Because of this setting the prototype is not possible, which makes the
babelHelpers.inherits() function to set __proto__ although not supported.

Afterwards Object.getPrototypeOf() is used, but this one is not
respecting the "custom" property __proto__ that we set.

The solution is to check for __proto__ first and afterwards fallback to
Object.getPrototypeOf().

* Do the same logic in babel-helper-replace-supers

* Fix tests

* Extract creation of prototype nodes to small helper
2016-08-23 15:08:44 -04:00

46 lines
852 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var b = function b() {
babelHelpers.classCallCheck(this, b);
};
var a1 = function (_b) {
babelHelpers.inherits(a1, _b);
function a1() {
babelHelpers.classCallCheck(this, a1);
var _this = babelHelpers.possibleConstructorReturn(this, (a1.__proto__ || Object.getPrototypeOf(a1)).call(this));
_this.x = function () {
return _this;
};
return _this;
}
return a1;
}(b);
var a2 = function (_b2) {
babelHelpers.inherits(a2, _b2);
function a2() {
babelHelpers.classCallCheck(this, a2);
var _this2 = babelHelpers.possibleConstructorReturn(this, (a2.__proto__ || Object.getPrototypeOf(a2)).call(this));
_this2.x = function () {
return _this2;
};
return _this2;
}
return a2;
}(b);
exports.default = a2;