From bd39ea261139aad4297c66adbe4a616e8267a5bd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 9 Nov 2015 02:50:39 -0800 Subject: [PATCH] add polyfill and regenerator options to babel-plugin-transform-runtime --- .../babel-plugin-transform-runtime/src/index.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index 99ef7196d1..70438425c7 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -24,6 +24,8 @@ export default function ({ types: t }) { visitor: { ReferencedIdentifier(path, state) { + if (state.opts.regenerator === false) return; + let { node, parent, scope } = path; if (node.name === "regeneratorRuntime") { @@ -43,8 +45,9 @@ export default function ({ types: t }) { )); }, + // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) CallExpression(path, state) { - // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) + if (state.opts.polyfill === false) return; // we can't compile this if (path.node.arguments.length) return; @@ -64,8 +67,9 @@ export default function ({ types: t }) { )); }, + // Symbol.iterator in arr -> core.$for.isIterable(arr) BinaryExpression(path, state) { - // Symbol.iterator in arr -> core.$for.isIterable(arr) + if (state.opts.polyfill === false) return; if (path.node.operator !== "in") return; if (!path.get("left").matchesPattern("Symbol.iterator")) return; @@ -80,12 +84,12 @@ export default function ({ types: t }) { )); }, + // Array.from -> _core.Array.from MemberExpression: { enter(path, state) { + if (state.opts.polyfill === false) return; if (!path.isReferenced()) return; - // Array.from -> _core.Array.from - let { node } = path; let obj = node.object; let prop = node.property; @@ -114,6 +118,7 @@ export default function ({ types: t }) { }, exit(path, state) { + if (state.opts.polyfill === false) return; if (!path.isReferenced()) return; let { node } = path;