Created
May 1, 2016 00:11
-
-
Save angus-c/feea4e4cd0b853dc04c71fa4e7d2f83f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/////////////////////////// | |
// ES6 original | |
//////////////////////////// | |
class A extends B { | |
constructor(x) { | |
this.x = x; | |
} | |
b() {return this.x}; | |
} | |
//////////////////////////// | |
// Bublé transpilation | |
//////////////////////////// | |
var A = (function (B) { | |
function A(x) { | |
B.call(this, x); | |
this.x = x; | |
} | |
A.prototype = Object.create( B && B.prototype ); | |
A.prototype.constructor = A; | |
A.prototype.b = function b() {return this.x}; | |
return A; | |
}(B)); | |
//////////////////////////// | |
// Babel transpilation | |
//////////////////////////// | |
"use strict"; | |
var _createClass = function() { | |
function defineProperties(target, props) { | |
for (var i = 0; i < props.length; i++) { | |
var descriptor = props[i]; | |
descriptor.enumerable = descriptor.enumerable || false; | |
descriptor.configurable = true; | |
if ("value" in descriptor) descriptor.writable = true; | |
Object.defineProperty(target, descriptor.key, descriptor); | |
} | |
} | |
return function(Constructor, protoProps, staticProps) { | |
if (protoProps) defineProperties(Constructor.prototype, protoProps); | |
if (staticProps) defineProperties(Constructor, staticProps); | |
return Constructor; | |
}; | |
}(); | |
function _classCallCheck(instance, Constructor) { | |
if (!(instance instanceof Constructor)) { | |
throw new TypeError("Cannot call a class as a function"); | |
} | |
} | |
function _possibleConstructorReturn(self, call) { | |
if (!self) { | |
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | |
} | |
return call && (typeof call === "object" || typeof call === "function") ? call : self; | |
} | |
function _inherits(subClass, superClass) { | |
if (typeof superClass !== "function" && superClass !== null) { | |
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); | |
} | |
subClass.prototype = Object.create(superClass && superClass.prototype, { | |
constructor: { | |
value: subClass, | |
enumerable: false, | |
writable: true, | |
configurable: true | |
} | |
}); | |
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; | |
} | |
var A = function(_B) { | |
_inherits(A, _B); | |
function A(x) { | |
_classCallCheck(this, A); | |
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(A).call(this, x)); | |
_this.x = x; | |
return _this; | |
} | |
_createClass(A, [{ | |
key: "b", | |
value: function b() { | |
return this.x; | |
} | |
}]); | |
return A; | |
}(B); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment