6.0.0
I'm extremely stupid and didn't commit as I go. To anyone reading this I'm extremely sorry. A lot of these changes are very broad and I plan on releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm afraid I couldn't wait. If you're ever in London I'll buy you a beer (or assorted beverage!) to make up for it, also I'll kiss your feet and give you a back massage, maybe.
This commit is contained in:
@@ -3,24 +3,27 @@ export default function ({ types: t }) {
|
||||
visitor: {
|
||||
ArrowFunctionExpression(path, state) {
|
||||
if (state.opts.spec) {
|
||||
if (path.node.shadow) return;
|
||||
path.node.shadow = { this: false };
|
||||
let { node } = path;
|
||||
if (node.shadow) return;
|
||||
|
||||
var boundThis = t.thisExpression();
|
||||
node.shadow = { this: false };
|
||||
node.type = "FunctionExpression";
|
||||
|
||||
let boundThis = t.thisExpression();
|
||||
boundThis._forceShadow = path;
|
||||
|
||||
// make sure that arrow function won't be instantiated
|
||||
path.ensureBlock();
|
||||
path.get("body").unshiftContainer(
|
||||
"body",
|
||||
t.expressionStatement(t.callExpression(state.addHelper("new-arrow-check"), [
|
||||
t.expressionStatement(t.callExpression(state.addHelper("newArrowCheck"), [
|
||||
t.thisExpression(),
|
||||
boundThis
|
||||
]))
|
||||
);
|
||||
|
||||
path.replaceWith(t.callExpression(
|
||||
t.memberExpression(path.node, t.identifier("bind")),
|
||||
t.memberExpression(node, t.identifier("bind")),
|
||||
[t.thisExpression()]
|
||||
));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user