From 47a254025a185b465b483dae6723de15d7be9da5 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Fri, 8 Sep 2017 02:11:04 -0700 Subject: [PATCH] Return a unique identifier node for each use. --- .../babel-core/src/transformation/file/index.js | 2 +- packages/babel-core/src/transformation/store.js | 11 ----------- .../babel-plugin-transform-runtime/src/index.js | 17 ++++++++--------- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index e5ecd0311f..c4895f6c0f 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -220,7 +220,7 @@ export default class File extends Store { prependDeclaration(specifiers); } - return id; + return t.identifier(id.name); } addHelper(name: string): Object { diff --git a/packages/babel-core/src/transformation/store.js b/packages/babel-core/src/transformation/store.js index 7f2f4db6e2..bcf5bc7e4b 100644 --- a/packages/babel-core/src/transformation/store.js +++ b/packages/babel-core/src/transformation/store.js @@ -1,11 +1,6 @@ export default class Store { constructor() { this._map = new Map(); - this._map.dynamicData = {}; - } - - setDynamic(key, fn) { - this._map.dynamicData[key] = fn; } set(key: string, val) { @@ -15,12 +10,6 @@ export default class Store { get(key: string): any { if (this._map.has(key)) { return this._map.get(key); - } else { - if (Object.prototype.hasOwnProperty.call(this._map.dynamicData, key)) { - const val = this._map.dynamicData[key](); - this._map.set(key, val); - return val; - } } } } diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index 4a7c62fe0b..bc327ab90a 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -39,24 +39,23 @@ export default function({ types: t }) { ); } - this.setDynamic("regeneratorIdentifier", function() { - return file.addImport( - `${moduleName}/regenerator`, - "default", - "regeneratorRuntime", - ); - }); + this.moduleName = moduleName; }, visitor: { ReferencedIdentifier(path, state) { const { node, parent, scope } = path; - if ( node.name === "regeneratorRuntime" && state.opts.regenerator !== false ) { - path.replaceWith(state.get("regeneratorIdentifier")); + path.replaceWith( + this.file.addImport( + `${this.moduleName}/regenerator`, + "default", + "regeneratorRuntime", + ), + ); return; }