diff options
Diffstat (limited to 'node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js')
-rw-r--r-- | node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js b/node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js new file mode 100644 index 0000000..8cef2fd --- /dev/null +++ b/node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js @@ -0,0 +1,34 @@ +"use strict"; + +exports.__esModule = true; + +exports.default = function (_ref) { + var t = _ref.types; + + return { + visitor: { + ArrowFunctionExpression: function ArrowFunctionExpression(path, state) { + if (state.opts.spec) { + var node = path.node; + + if (node.shadow) return; + + node.shadow = { this: false }; + node.type = "FunctionExpression"; + + var boundThis = t.thisExpression(); + boundThis._forceShadow = path; + + path.ensureBlock(); + path.get("body").unshiftContainer("body", t.expressionStatement(t.callExpression(state.addHelper("newArrowCheck"), [t.thisExpression(), boundThis]))); + + path.replaceWith(t.callExpression(t.memberExpression(node, t.identifier("bind")), [t.thisExpression()])); + } else { + path.arrowFunctionToShadowed(); + } + } + } + }; +}; + +module.exports = exports["default"];
\ No newline at end of file |