@babel/plugin-transform-destructuring
Advanced tools
Comparing version 7.18.13 to 7.19.4
@@ -8,2 +8,6 @@ 'use strict'; | ||
function isPureVoid(node) { | ||
return core.types.isUnaryExpression(node) && node.operator === "void" && core.types.isPureish(node.argument); | ||
} | ||
function unshiftForXStatementBody(statementPath, newStatements) { | ||
@@ -131,3 +135,3 @@ statementPath.ensureBlock(); | ||
}, valueRef) { | ||
if (valueRef === null) { | ||
if (isPureVoid(valueRef)) { | ||
this.push(left, right); | ||
@@ -178,4 +182,4 @@ return; | ||
pushObjectPattern(pattern, objRef) { | ||
if (!pattern.properties.length || objRef === null) { | ||
this.nodes.push(core.types.expressionStatement(core.types.callExpression(this.addHelper("objectDestructuringEmpty"), objRef !== null ? [objRef] : []))); | ||
if (!pattern.properties.length) { | ||
this.nodes.push(core.types.expressionStatement(core.types.callExpression(this.addHelper("objectDestructuringEmpty"), isPureVoid(objRef) ? [] : [objRef]))); | ||
return; | ||
@@ -265,2 +269,4 @@ } | ||
pushUnpackedArrayPattern(pattern, arr) { | ||
const holeToUndefined = el => el != null ? el : this.scope.buildUndefinedNode(); | ||
for (let i = 0; i < pattern.elements.length; i++) { | ||
@@ -270,5 +276,5 @@ const elem = pattern.elements[i]; | ||
if (core.types.isRestElement(elem)) { | ||
this.push(elem.argument, core.types.arrayExpression(arr.elements.slice(i))); | ||
this.push(elem.argument, core.types.arrayExpression(arr.elements.slice(i).map(holeToUndefined))); | ||
} else { | ||
this.push(elem, arr.elements[i]); | ||
this.push(elem, holeToUndefined(arr.elements[i])); | ||
} | ||
@@ -358,3 +364,3 @@ } | ||
const extendsHelper = useBuiltIns ? core.types.memberExpression(core.types.identifier("Object"), core.types.identifier("assign")) : addHelper("extends"); | ||
value = core.types.callExpression(extendsHelper, [core.types.objectExpression([]), core.types.cloneNode(objRef)]); | ||
value = core.types.callExpression(extendsHelper, [core.types.objectExpression([]), core.types.sequenceExpression([core.types.callExpression(addHelper("objectDestructuringEmpty"), [core.types.cloneNode(objRef)]), core.types.cloneNode(objRef)])]); | ||
} else { | ||
@@ -361,0 +367,0 @@ let keyExpression = core.types.arrayExpression(keys); |
{ | ||
"name": "@babel/plugin-transform-destructuring", | ||
"version": "7.18.13", | ||
"version": "7.19.4", | ||
"description": "Compile ES2015 destructuring to ES5", | ||
@@ -20,3 +20,3 @@ "repository": { | ||
"dependencies": { | ||
"@babel/helper-plugin-utils": "^7.18.9" | ||
"@babel/helper-plugin-utils": "^7.19.0" | ||
}, | ||
@@ -27,5 +27,5 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@babel/core": "^7.18.13", | ||
"@babel/core": "^7.19.3", | ||
"@babel/helper-plugin-test-runner": "^7.18.6", | ||
"@babel/traverse": "^7.18.13" | ||
"@babel/traverse": "^7.19.4" | ||
}, | ||
@@ -32,0 +32,0 @@ "engines": { |
Sorry, the diff of this file is not supported yet
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
79508
526