From 637bba542a27c106bab4413674b601f6b3e50a87 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Wed, 13 Sep 2017 23:21:12 -0700 Subject: [PATCH 1/4] Remove interop toggling behavior of 'strict'. --- packages/babel-helper-modules/src/index.js | 3 +-- .../src/normalize-and-load-metadata.js | 8 ++++---- .../test/fixtures/strict/import-wildcard/expected.js | 3 +-- .../test/fixtures/strict/import/expected.js | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/babel-helper-modules/src/index.js b/packages/babel-helper-modules/src/index.js index 9b86d04e10..82cd2c0ed2 100644 --- a/packages/babel-helper-modules/src/index.js +++ b/packages/babel-helper-modules/src/index.js @@ -22,7 +22,6 @@ export function rewriteModuleStatementsAndPrepareHeader( { exportName, strict, allowTopLevelThis, strictMode, loose, noInterop }, ) { const meta = normalizeAndLoadModuleMetadata(path, exportName, { - strict, noInterop, }); @@ -32,7 +31,7 @@ export function rewriteModuleStatementsAndPrepareHeader( rewriteLiveReferences(path, meta); - if (strictMode !== false && strict !== false) { + if (strictMode !== false || strict !== false) { const hasStrict = path.node.directives.some(directive => { return directive.value.value === "use strict"; }); diff --git a/packages/babel-helper-modules/src/normalize-and-load-metadata.js b/packages/babel-helper-modules/src/normalize-and-load-metadata.js index be901fb12e..09190cd72d 100644 --- a/packages/babel-helper-modules/src/normalize-and-load-metadata.js +++ b/packages/babel-helper-modules/src/normalize-and-load-metadata.js @@ -86,7 +86,7 @@ export function isSideEffectImport(source: SourceModuleMetadata) { export default function normalizeModuleAndLoadMetadata( programPath: NodePath, exportName?: string, - { strict = false, noInterop = false } = {}, + { noInterop = false } = {}, ): ModuleMetadata { if (!exportName) { exportName = programPath.scope.generateUidIdentifier("exports").name; @@ -94,7 +94,7 @@ export default function normalizeModuleAndLoadMetadata( nameAnonymousExports(programPath); - const { local, source } = getModuleMetadata(programPath, strict); + const { local, source } = getModuleMetadata(programPath); removeModuleDeclarations(programPath); @@ -120,7 +120,7 @@ export default function normalizeModuleAndLoadMetadata( /** * Get metadata about the imports and exports present in this module. */ -function getModuleMetadata(programPath: NodePath, strict: boolean = false) { +function getModuleMetadata(programPath: NodePath) { const localData = getLocalExportMetadata(programPath); const sourceData = new Map(); @@ -175,7 +175,7 @@ function getModuleMetadata(programPath: NodePath, strict: boolean = false) { } else if (spec.isImportNamespaceSpecifier()) { const localName = spec.get("local").node.name; - if (!strict) data.interop = "namespace"; + data.interop = "namespace"; data.importsNamespace.add(localName); const reexport = localData.get(localName); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import-wildcard/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import-wildcard/expected.js index d50fc39abc..4bc935cc56 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import-wildcard/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import-wildcard/expected.js @@ -1,6 +1,5 @@ "use strict"; -var foo = require("foo"); - +var foo = babelHelpers.interopRequireWildcard(require("foo")); foo.bar(); foo.baz(); diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import/expected.js b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import/expected.js index b4eb261837..1c2bc5f8e0 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import/expected.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/import/expected.js @@ -1,6 +1,6 @@ "use strict"; -var foo4 = babelHelpers.interopRequireDefault(require("foo")); +var foo4 = babelHelpers.interopRequireWildcard(require("foo")); foo4.default; foo4.default; foo4.foo3; From 2801bfe35c55e430f5348b9cab3bf860aef8b4e7 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Wed, 13 Sep 2017 23:30:21 -0700 Subject: [PATCH 2/4] Remove 'strict:false' directive behavior. Use 'strictMode:false'. --- packages/babel-helper-modules/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-helper-modules/src/index.js b/packages/babel-helper-modules/src/index.js index 82cd2c0ed2..6d40af3f96 100644 --- a/packages/babel-helper-modules/src/index.js +++ b/packages/babel-helper-modules/src/index.js @@ -31,7 +31,7 @@ export function rewriteModuleStatementsAndPrepareHeader( rewriteLiveReferences(path, meta); - if (strictMode !== false || strict !== false) { + if (strictMode !== false) { const hasStrict = path.node.directives.some(directive => { return directive.value.value === "use strict"; }); From b6ae55153caebfd1578c75ee5d368fd40460bf08 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Wed, 13 Sep 2017 23:26:44 -0700 Subject: [PATCH 3/4] Misc documentation fix. --- .../babel-plugin-transform-es2015-modules-commonjs/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/README.md b/packages/babel-plugin-transform-es2015-modules-commonjs/README.md index bdad889670..61b55f5701 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/README.md +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/README.md @@ -120,9 +120,7 @@ export or if it _contains_ the default export. ```javascript "use strict"; -var _foo = require("foo"); - -var _foo2 = _interopRequireDefault(_foo); +var _foo = _interopRequireDefault(require("foo")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; From 3c93189fce257d8d7067160e310468369ea65efd Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Wed, 13 Sep 2017 23:28:41 -0700 Subject: [PATCH 4/4] Remove useless stict toggle from strict transform. --- .../babel-plugin-transform-strict-mode/README.md | 12 ------------ .../babel-plugin-transform-strict-mode/src/index.js | 6 +----- .../test/fixtures/disable-strict-mode/options.json | 5 ----- .../disable-strict-mode/strictMode-false/actual.js | 1 - .../disable-strict-mode/strictMode-false/expected.js | 1 - 5 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/options.json delete mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/actual.js delete mode 100644 packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/expected.js diff --git a/packages/babel-plugin-transform-strict-mode/README.md b/packages/babel-plugin-transform-strict-mode/README.md index 08c5afe405..da12aa03cb 100644 --- a/packages/babel-plugin-transform-strict-mode/README.md +++ b/packages/babel-plugin-transform-strict-mode/README.md @@ -34,7 +34,6 @@ npm install --save-dev babel-plugin-transform-strict-mode **.babelrc** -Without options: ```json { @@ -42,17 +41,6 @@ Without options: } ``` -With options: - -```json -{ - "plugins": [ - ["transform-strict-mode", { - "strict": true - }] - ] -} -``` ### Via CLI diff --git a/packages/babel-plugin-transform-strict-mode/src/index.js b/packages/babel-plugin-transform-strict-mode/src/index.js index 756979d79e..ac94b5d92f 100644 --- a/packages/babel-plugin-transform-strict-mode/src/index.js +++ b/packages/babel-plugin-transform-strict-mode/src/index.js @@ -3,11 +3,7 @@ import * as t from "babel-types"; export default function() { return { visitor: { - Program(path, state) { - if (state.opts.strict === false || state.opts.strictMode === false) { - return; - } - + Program(path) { const { node } = path; for (const directive of (node.directives: Array)) { diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/options.json b/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/options.json deleted file mode 100644 index aaa785cb96..0000000000 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "plugins": [ - ["transform-strict-mode", { "strictMode": false }] - ] -} diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/actual.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/actual.js deleted file mode 100644 index a280f9a5cc..0000000000 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/actual.js +++ /dev/null @@ -1 +0,0 @@ -foo(); diff --git a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/expected.js b/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/expected.js deleted file mode 100644 index a280f9a5cc..0000000000 --- a/packages/babel-plugin-transform-strict-mode/test/fixtures/disable-strict-mode/strictMode-false/expected.js +++ /dev/null @@ -1 +0,0 @@ -foo();