use acorn-globals to avoid collisions with implied globals (#1079)

pull/1090/head
Conduitry 8 years ago
parent 8d04da6839
commit 33d4e6dd4a

@ -47,6 +47,7 @@
"@types/node": "^8.0.17", "@types/node": "^8.0.17",
"acorn": "^5.1.1", "acorn": "^5.1.1",
"acorn-dynamic-import": "^2.0.2", "acorn-dynamic-import": "^2.0.2",
"acorn-globals": "^4.1.0",
"chalk": "^2.0.1", "chalk": "^2.0.1",
"codecov": "^2.2.0", "codecov": "^2.2.0",
"console-group": "^0.3.2", "console-group": "^0.3.2",

@ -1,6 +1,7 @@
import MagicString, { Bundle } from 'magic-string'; import MagicString, { Bundle } from 'magic-string';
import { walk, childKeys } from 'estree-walker'; import { walk, childKeys } from 'estree-walker';
import { getLocator } from 'locate-character'; import { getLocator } from 'locate-character';
import detectGlobals from 'acorn-globals';
import deindent from '../utils/deindent'; import deindent from '../utils/deindent';
import CodeBuilder from '../utils/CodeBuilder'; import CodeBuilder from '../utils/CodeBuilder';
import getCodeFrame from '../utils/getCodeFrame'; import getCodeFrame from '../utils/getCodeFrame';
@ -414,6 +415,9 @@ export default class Generator {
scope.declarations.forEach(name => { scope.declarations.forEach(name => {
this.userVars.add(name); this.userVars.add(name);
}); });
detectGlobals(js.content).forEach(({ name }) => {
this.userVars.add(name);
});
const body = js.content.body.slice(); // slice, because we're going to be mutating the original const body = js.content.body.slice(); // slice, because we're going to be mutating the original

@ -28,7 +28,7 @@ acorn-dynamic-import@^2.0.2:
dependencies: dependencies:
acorn "^4.0.3" acorn "^4.0.3"
acorn-globals@^4.0.0: acorn-globals@^4.0.0, acorn-globals@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538"
dependencies: dependencies:

Loading…
Cancel
Save