summaryrefslogtreecommitdiffstats
path: root/node_modules/babel-plugin-transform-es2015-arrow-functions/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-plugin-transform-es2015-arrow-functions/lib')
-rw-r--r--node_modules/babel-plugin-transform-es2015-arrow-functions/lib/index.js34
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