@babel/plugin-transform-destructuring
Advanced tools
Comparing version 7.4.0 to 7.4.3
@@ -65,2 +65,12 @@ "use strict"; | ||
function hasObjectRest(pattern) { | ||
for (const elem of pattern.properties) { | ||
if (_core().types.isRestElement(elem)) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
const STOP_TRAVERSAL = {}; | ||
@@ -97,3 +107,3 @@ | ||
if (op) { | ||
node = _core().types.expressionStatement(_core().types.assignmentExpression(op, id, _core().types.cloneNode(init))); | ||
node = _core().types.expressionStatement(_core().types.assignmentExpression(op, id, _core().types.cloneNode(init) || this.scope.buildUndefinedNode())); | ||
} else { | ||
@@ -225,2 +235,31 @@ node = _core().types.variableDeclaration(this.kind, [_core().types.variableDeclarator(id, _core().types.cloneNode(init))]); | ||
if (hasObjectRest(pattern)) { | ||
let copiedPattern; | ||
for (let i = 0; i < pattern.properties.length; i++) { | ||
const prop = pattern.properties[i]; | ||
if (_core().types.isRestElement(prop)) { | ||
break; | ||
} | ||
const key = prop.key; | ||
if (prop.computed && !this.scope.isPure(key)) { | ||
const name = this.scope.generateUidIdentifierBasedOnNode(key); | ||
this.nodes.push(this.buildVariableDeclaration(name, key)); | ||
if (!copiedPattern) { | ||
copiedPattern = pattern = Object.assign({}, pattern, { | ||
properties: pattern.properties.slice() | ||
}); | ||
} | ||
copiedPattern.properties[i] = Object.assign({}, copiedPattern.properties[i], { | ||
key: name | ||
}); | ||
} | ||
} | ||
} | ||
for (let i = 0; i < pattern.properties.length; i++) { | ||
@@ -227,0 +266,0 @@ const prop = pattern.properties[i]; |
{ | ||
"name": "@babel/plugin-transform-destructuring", | ||
"version": "7.4.0", | ||
"version": "7.4.3", | ||
"description": "Compile ES2015 destructuring to ES5", | ||
@@ -21,6 +21,6 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-destructuring", | ||
"devDependencies": { | ||
"@babel/core": "^7.4.0", | ||
"@babel/core": "^7.4.3", | ||
"@babel/helper-plugin-test-runner": "^7.0.0" | ||
}, | ||
"gitHead": "f1328fb913b5a93d54dfc6e3728b1f56c8f4a804" | ||
"gitHead": "508fde4009f31883f318b9e6546459ac1b086a91" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19706
456