Merge pull request #6244 from loganfsmyth/remove-strict-toggling-wildcard-interop
Remove strict toggling wildcard interop
This commit is contained in:
@@ -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) {
|
||||
const hasStrict = path.node.directives.some(directive => {
|
||||
return directive.value.value === "use strict";
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var foo = require("foo");
|
||||
|
||||
var foo = babelHelpers.interopRequireWildcard(require("foo"));
|
||||
foo.bar();
|
||||
foo.baz();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
var foo4 = babelHelpers.interopRequireDefault(require("foo"));
|
||||
var foo4 = babelHelpers.interopRequireWildcard(require("foo"));
|
||||
foo4.default;
|
||||
foo4.default;
|
||||
foo4.foo3;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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<Object>)) {
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"plugins": [
|
||||
["transform-strict-mode", { "strictMode": false }]
|
||||
]
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
foo();
|
||||
@@ -1 +0,0 @@
|
||||
foo();
|
||||
Reference in New Issue
Block a user