diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 6a63378083..823806fc41 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -214,6 +214,7 @@ describe("api", function() { function execTest(passPerPreset) { return babel.transform("type Foo = number; let x = (y): Foo => y;", { + sourceType: "script", passPerPreset: passPerPreset, presets: [ // First preset with our plugin, "before" diff --git a/packages/babel-helper-module-imports/src/import-injector.js b/packages/babel-helper-module-imports/src/import-injector.js index 33b46a12cb..bd1214c54b 100644 --- a/packages/babel-helper-module-imports/src/import-injector.js +++ b/packages/babel-helper-module-imports/src/import-injector.js @@ -209,7 +209,7 @@ export default class ImportInjector { // to a variable. let name = nameHint || importName; - const isMod = isModule(this._programPath, true); + const isMod = isModule(this._programPath); const isModuleForNode = isMod && importingInterop === "node"; const isModuleForBabel = isMod && importingInterop === "babel"; diff --git a/packages/babel-helper-module-imports/src/is-module.js b/packages/babel-helper-module-imports/src/is-module.js index 8e20fb2472..39cff11148 100644 --- a/packages/babel-helper-module-imports/src/is-module.js +++ b/packages/babel-helper-module-imports/src/is-module.js @@ -1,11 +1,7 @@ /** - * A small utility to check if a file qualifies as a module, based on a few - * possible conditions. + * A small utility to check if a file qualifies as a module. */ -export default function isModule( - path: NodePath, - requireUnambiguous: boolean = false, -) { +export default function isModule(path: NodePath) { const { sourceType } = path.node; if (sourceType !== "module" && sourceType !== "script") { throw path.buildCodeFrameError( @@ -13,19 +9,5 @@ export default function isModule( ); } - const filename = path.hub.file.opts.filename; - if (/\.mjs$/.test(filename)) { - requireUnambiguous = false; - } - - return ( - path.node.sourceType === "module" && - (!requireUnambiguous || isUnambiguousModule(path)) - ); -} - -// This approach is not ideal. It is here to preserve compatibility for now, -// but really this should just return true or be deleted. -function isUnambiguousModule(path) { - return path.get("body").some(p => p.isModuleDeclaration()); + return path.node.sourceType === "module"; } diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.js b/packages/babel-helper-transform-fixture-test-runner/src/index.js index 40652a0f8c..179277ad30 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.js +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.js @@ -330,6 +330,7 @@ function run(task) { const newOpts = merge( { filename: self.loc, + sourceType: "unambiguous", }, opts, ); diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json index 6d0cdb5a6f..ef11b00e2b 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/get-module-name-option/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json index be49a87d0b..5b0398abbe 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/amd/module-name/options.json @@ -1,3 +1,4 @@ { + "sourceType": "module", "moduleIds": true } diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json index 0b446c5334..be939b1999 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/get-module-name-option/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name", "plugins": [ diff --git a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json index 7f54a2b7f9..c72a7c5942 100644 --- a/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-amd/test/fixtures/loose/module-name/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "plugins": [ "external-helpers", diff --git a/packages/babel-plugin-transform-modules-commonjs/src/index.js b/packages/babel-plugin-transform-modules-commonjs/src/index.js index 30adf43142..6ed08a8abc 100644 --- a/packages/babel-plugin-transform-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-modules-commonjs/src/index.js @@ -98,9 +98,7 @@ export default function(api, options) { visitor: { Program: { exit(path) { - // For now this requires unambiguous rather that just sourceType - // because Babel currently parses all files as sourceType:module. - if (!isModule(path, true /* requireUnambiguous */)) return; + if (!isModule(path)) return; // Rename the bindings auto-injected into the scope so there is no // risk of conflict between the bindings. diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json index fd01b12b80..b053905b03 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/get-module-name-option/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name", "plugins": [ diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json index bf41ea5a3f..895e18b863 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-id/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleId": "MyLib", "plugins": [ "external-helpers", diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json index 050e3555fd..ab68188b07 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/loose/module-name/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "plugins": [ "external-helpers", diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json index 6d0cdb5a6f..ef11b00e2b 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/get-module-name-option/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "moduleIds": true, "moduleId": "my custom module name" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id/options.json index 921ceb9660..48a14ad305 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-id/options.json @@ -1,3 +1,4 @@ { + "sourceType": "module", "moduleId": "MyLib" } diff --git a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json index be49a87d0b..5b0398abbe 100644 --- a/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json +++ b/packages/babel-plugin-transform-modules-umd/test/fixtures/umd/module-name/options.json @@ -1,3 +1,4 @@ { + "sourceType": "module", "moduleIds": true } diff --git a/packages/babel-preset-env-standalone/test/babel-preset-env.js b/packages/babel-preset-env-standalone/test/babel-preset-env.js index c61a67a93a..64129917b0 100644 --- a/packages/babel-preset-env-standalone/test/babel-preset-env.js +++ b/packages/babel-preset-env-standalone/test/babel-preset-env.js @@ -7,6 +7,7 @@ require("../babel-preset-env"); describe("babel-preset-env-standalone", () => { it("works w/o targets", () => { const output = Babel.transform("const a = 1;", { + sourceType: "script", presets: ["env"], }).code; assert.equal(output, "var a = 1;"); @@ -14,6 +15,7 @@ describe("babel-preset-env-standalone", () => { it("doesn't transpile `const` with chrome 60", () => { const output = Babel.transform("const a = 1;", { + sourceType: "script", presets: [ [ "env", @@ -30,6 +32,7 @@ describe("babel-preset-env-standalone", () => { it("transpiles `const` with chrome 60 and preset-es2015", () => { const output = Babel.transform("const a = 1;", { + sourceType: "script", presets: [ [ "env", @@ -47,6 +50,7 @@ describe("babel-preset-env-standalone", () => { it("uses transform-new-targets plugin", () => { const output = Babel.transform("function Foo() {new.target}", { + sourceType: "script", presets: ["env"], }).code; assert.equal( diff --git a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-tranform/options.json b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-tranform/options.json index 18d3b5de7f..6edc64b604 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-tranform/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options-add-used-built-ins/test-modules-tranform/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "presets": [ ["../../../../lib", { "useBuiltIns": "usage" diff --git a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json index d1b9e87480..c67678705d 100644 --- a/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json +++ b/packages/babel-preset-env/test/fixtures/preset-options/shippedProposals-use-builtins-usage/options.json @@ -1,4 +1,5 @@ { + "sourceType": "module", "presets": [ ["../../../../lib", { "shippedProposals": true, diff --git a/packages/babel-standalone/test/babel.js b/packages/babel-standalone/test/babel.js index 388adb7f0a..c7396a4226 100644 --- a/packages/babel-standalone/test/babel.js +++ b/packages/babel-standalone/test/babel.js @@ -16,6 +16,7 @@ describe("@babel/standalone", () => { }); it("handles the es2015-loose preset", () => { const output = Babel.transform("class A {}", { + sourceType: "script", presets: ["es2015-loose"], }).code; assert.equal(output, "var A = function A() {};"); @@ -52,7 +53,7 @@ describe("@babel/standalone", () => { }, }, ], - sourceType: "module", + sourceType: "script", }; const output = Babel.transformFromAst(ast, "42", { presets: ["es2015"] }) .code;