From 15ddead685c948c35700d2e220b9be308914d06b Mon Sep 17 00:00:00 2001 From: Alan Orozco Date: Thu, 27 May 2021 15:23:13 -0700 Subject: [PATCH 1/4] Hoist omitted keys from object spread operator --- .../src/index.js | 13 +++++++++ .../output.js | 6 ++-- .../object-rest/catch-clause/output.js | 10 +++++-- .../object-rest/for-x-array-pattern/output.js | 10 +++++-- .../for-x-completion-record/output.js | 4 ++- .../test/fixtures/object-rest/for-x/output.js | 10 +++++-- .../output.js | 4 ++- .../fixtures/object-rest/parameters/output.js | 28 +++++++++++++------ .../output.js | 6 ++-- .../fixtures/regression/gh-4904/output.js | 4 ++- .../fixtures/regression/gh-7388/output.js | 4 ++- .../fixtures/regression/gh-8323/output.js | 4 ++- 12 files changed, 76 insertions(+), 27 deletions(-) diff --git a/packages/babel-plugin-proposal-object-rest-spread/src/index.js b/packages/babel-plugin-proposal-object-rest-spread/src/index.js index 86e5290b8467..370b3be7d831 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/src/index.js +++ b/packages/babel-plugin-proposal-object-rest-spread/src/index.js @@ -180,6 +180,19 @@ export default declare((api, opts) => { keyExpression = t.arrayExpression(keys); } + // Hoist definition of excluded keys, so that it's not created each time. + if (!t.isProgram(path.scope.block)) { + const id = path.scope.generateUidIdentifier(); + + file.path.scope.push({ + id, + init: keyExpression, + kind: "const", + }); + + keyExpression = t.cloneNode(id); + } + return [ impureComputedPropertyDeclarators, restElement.argument, diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js index cf80c637a3ef..86f25e7895ee 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js @@ -1,3 +1,5 @@ +const _temp = ["excluded", "excluded2", "used", "used2"], + _temp2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -12,12 +14,12 @@ function render() { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutProperties(_this$props, ["excluded", "excluded2", "used", "used2"]); + props = babelHelpers.objectWithoutProperties(_this$props, _temp); console.log(used, usedRenamed); return React.createElement("input", props); } function smth(_ref) { - let rest = babelHelpers.objectWithoutProperties(_ref, ["unused"]); + let rest = babelHelpers.objectWithoutProperties(_ref, _temp2); call(rest); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js index 3d2528632ed1..fb0f81816830 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js @@ -1,3 +1,7 @@ +const _temp = ["a1"], + _temp2 = ["a2", "b2"], + _temp3 = ["c3"]; + try {} catch (_ref) { let a34 = babelHelpers.extends({}, _ref); } @@ -6,7 +10,7 @@ try {} catch (_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, ["a1"]); + b1 = babelHelpers.objectWithoutProperties(_ref2, _temp); } try {} catch (_ref3) { @@ -14,7 +18,7 @@ try {} catch (_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, ["a2", "b2"]); + c2 = babelHelpers.objectWithoutProperties(_ref3, _temp2); } try {} catch (_ref4) { @@ -25,7 +29,7 @@ try {} catch (_ref4) { c3 } } = _ref4, - c4 = babelHelpers.objectWithoutProperties(_ref4.c2, ["c3"]); + c4 = babelHelpers.objectWithoutProperties(_ref4.c2, _temp3); } // Unchanged diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js index d4b3f61d7efd..a50a7ac267c5 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js @@ -1,10 +1,14 @@ +const _temp = ["a"], + _temp2 = ["a"], + _temp3 = ["a"]; + // ForXStatement for (const _ref of []) { const [_ref2] = _ref; const { a } = _ref2, - b = babelHelpers.objectWithoutProperties(_ref2, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref2, _temp); } for (var _ref3 of []) { @@ -12,7 +16,7 @@ for (var _ref3 of []) { var { a } = _ref4, - b = babelHelpers.objectWithoutProperties(_ref4, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref4, _temp2); } async function a() { @@ -21,7 +25,7 @@ async function a() { var { a } = _ref6, - b = babelHelpers.objectWithoutProperties(_ref6, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref6, _temp3); } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js index 01e54fb98a4b..228e25be6875 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js @@ -1,9 +1,11 @@ +const _temp = ["a"]; + for (var _ref of []) { var _ref2 = _ref; ({ a } = _ref2); - b = babelHelpers.objectWithoutProperties(_ref2, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref2, _temp); _ref2; void 0; } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js index ba843ac52af0..b2104600f397 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js @@ -1,9 +1,13 @@ +const _temp = ["a"], + _temp2 = ["a"], + _temp3 = ["a"]; + // ForXStatement for (var _ref of []) { var { a } = _ref, - b = babelHelpers.objectWithoutProperties(_ref, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref, _temp); } for (var _ref2 of []) { @@ -11,7 +15,7 @@ for (var _ref2 of []) { ({ a } = _ref3); - b = babelHelpers.objectWithoutProperties(_ref3, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref3, _temp2); _ref3; } @@ -21,7 +25,7 @@ async function a() { ({ a } = _ref5); - b = babelHelpers.objectWithoutProperties(_ref5, ["a"]); + b = babelHelpers.objectWithoutProperties(_ref5, _temp3); _ref5; } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js index 0d4466933614..04fd6cc8526f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js @@ -1,3 +1,5 @@ +const _temp = ["X"]; + _ref => { let R = babelHelpers.extends({}, _ref); let a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : R; @@ -7,7 +9,7 @@ _ref => { let { X: Y } = _ref2, - R = babelHelpers.objectWithoutProperties(_ref2, ["X"]); + R = babelHelpers.objectWithoutProperties(_ref2, _temp); let { a = { Y diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js index ba6a49ecdba1..8d73f3046fdb 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js @@ -1,3 +1,13 @@ +const _temp = ["a1"], + _temp2 = ["a2", "b2"], + _temp3 = ["a5"], + _temp4 = ["a3"], + _temp5 = ["ba1"], + _temp6 = ["a3", "b2"], + _temp7 = ["ba1"], + _temp8 = ["a1"], + _temp9 = ["a1"]; + function a(_ref) { let a34 = babelHelpers.extends({}, _ref); } @@ -6,7 +16,7 @@ function a2(_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, ["a1"]); + b1 = babelHelpers.objectWithoutProperties(_ref2, _temp); } function a3(_ref3) { @@ -14,18 +24,18 @@ function a3(_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, ["a2", "b2"]); + c2 = babelHelpers.objectWithoutProperties(_ref3, _temp2); } function a4(_ref4, _ref5) { let { a5 } = _ref5, - c5 = babelHelpers.objectWithoutProperties(_ref5, ["a5"]); + c5 = babelHelpers.objectWithoutProperties(_ref5, _temp3); let { a3 } = _ref4, - c3 = babelHelpers.objectWithoutProperties(_ref4, ["a3"]); + c3 = babelHelpers.objectWithoutProperties(_ref4, _temp4); } function a5(_ref6) { @@ -35,8 +45,8 @@ function a5(_ref6) { ba1 } } = _ref6, - ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, ["ba1"]), - c3 = babelHelpers.objectWithoutProperties(_ref6, ["a3", "b2"]); + ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, _temp5), + c3 = babelHelpers.objectWithoutProperties(_ref6, _temp6); } function a6(_ref7) { @@ -46,14 +56,14 @@ function a6(_ref7) { ba1 } } = _ref7, - ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, ["ba1"]); + ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, _temp7); } function a7(_ref8 = {}) { let { a1 = 1 } = _ref8, - b1 = babelHelpers.objectWithoutProperties(_ref8, ["a1"]); + b1 = babelHelpers.objectWithoutProperties(_ref8, _temp8); } function a8([_ref9]) { @@ -64,7 +74,7 @@ function a9([_ref10]) { let { a1 } = _ref10, - a2 = babelHelpers.objectWithoutProperties(_ref10, ["a1"]); + a2 = babelHelpers.objectWithoutProperties(_ref10, _temp9); } function a10([a1, _ref11]) { diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js index 28c7e152b8d1..aabb6c1bfd2a 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js @@ -1,3 +1,5 @@ +const _temp = ["excluded", "excluded2", "used", "used2"], + _temp2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -13,7 +15,7 @@ class Comp extends React.Component { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutPropertiesLoose(_this$props, ["excluded", "excluded2", "used", "used2"]); + props = babelHelpers.objectWithoutPropertiesLoose(_this$props, _temp); console.log(used, usedRenamed); return React.createElement("input", props); } @@ -21,6 +23,6 @@ class Comp extends React.Component { } function smth(_ref) { - let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, ["unused"]); + let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, _temp2); call(rest); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js index 4f44bbb1ef68..f8645b870b8f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js @@ -1,3 +1,5 @@ +const _temp = ["b"]; + const _foo = foo(), { s @@ -19,6 +21,6 @@ const { let { b } = _ref, - c = babelHelpers.objectWithoutProperties(_ref, ["b"]); + c = babelHelpers.objectWithoutProperties(_ref, _temp); console.log(b, c); }); diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js index 97254741cbea..f8030af6ebaa 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js @@ -1,3 +1,5 @@ +const _temp = ["a"]; + function fn0(obj0) { const { fn1 = (obj1 = {}) => { @@ -6,7 +8,7 @@ function fn0(obj0) { const { a } = obj2, - rest = babelHelpers.objectWithoutProperties(obj2, ["a"]); + rest = babelHelpers.objectWithoutProperties(obj2, _temp); console.log(rest); } } = obj1; diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js index cc84cec34a16..360a3b425bf5 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js @@ -1,3 +1,5 @@ +const _temp = ["a", "b", "c"]; + const get = () => { fireTheMissiles(); return 3; @@ -8,6 +10,6 @@ const f = _ref => { a = get(), b } = _ref, - z = babelHelpers.objectWithoutPropertiesLoose(_ref, ["a", "b", "c"]); + z = babelHelpers.objectWithoutPropertiesLoose(_ref, _temp); const v = b + 3; }; From d5163fcdfaa1698fa10cc7119ccbc6f4ccde5ce9 Mon Sep 17 00:00:00 2001 From: Alan Orozco Date: Thu, 27 May 2021 17:17:27 -0700 Subject: [PATCH 2/4] address review --- .../src/index.js | 21 +++++------ .../output.js | 8 ++--- .../object-rest/catch-clause/output.js | 12 +++---- .../object-rest/for-x-array-pattern/output.js | 12 +++---- .../for-x-completion-record/output.js | 4 +-- .../test/fixtures/object-rest/for-x/output.js | 12 +++---- .../output.js | 4 +-- .../fixtures/object-rest/parameters/output.js | 36 +++++++++---------- .../output.js | 8 ++--- .../fixtures/regression/gh-4904/output.js | 4 +-- .../fixtures/regression/gh-7388/output.js | 4 +-- .../fixtures/regression/gh-8323/output.js | 4 +-- .../fixtures/general/issue-10339/output.js | 4 ++- .../src/index.js | 12 +++++++ .../es7-object-rest-builtins/output.js | 3 +- .../es7-object-rest-loose/output.js | 3 +- .../destructuring/es7-object-rest/output.js | 3 +- .../parameter-destructure-rest/output.js | 4 ++- .../output.js | 4 ++- .../integration/issue-12303/output.mjs | 4 ++- .../plugins-integration/issue-11278/output.js | 4 ++- 21 files changed, 98 insertions(+), 72 deletions(-) diff --git a/packages/babel-plugin-proposal-object-rest-spread/src/index.js b/packages/babel-plugin-proposal-object-rest-spread/src/index.js index 370b3be7d831..0662509a1fb2 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/src/index.js +++ b/packages/babel-plugin-proposal-object-rest-spread/src/index.js @@ -178,19 +178,20 @@ export default declare((api, opts) => { ); } else { keyExpression = t.arrayExpression(keys); - } - // Hoist definition of excluded keys, so that it's not created each time. - if (!t.isProgram(path.scope.block)) { - const id = path.scope.generateUidIdentifier(); + if (!t.isProgram(path.scope.block)) { + // Hoist definition of excluded keys, so that it's not created each time. + const program = path.findParent(path => path.isProgram()); + const id = path.scope.generateUidIdentifier("exclude"); - file.path.scope.push({ - id, - init: keyExpression, - kind: "const", - }); + program.scope.push({ + id, + init: keyExpression, + kind: "const", + }); - keyExpression = t.cloneNode(id); + keyExpression = t.cloneNode(id); + } } return [ diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js index 86f25e7895ee..7c8881eb21e4 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js @@ -1,5 +1,5 @@ -const _temp = ["excluded", "excluded2", "used", "used2"], - _temp2 = ["unused"]; +const _exclude = ["excluded", "excluded2", "used", "used2"], + _exclude2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -14,12 +14,12 @@ function render() { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutProperties(_this$props, _temp); + props = babelHelpers.objectWithoutProperties(_this$props, _exclude); console.log(used, usedRenamed); return React.createElement("input", props); } function smth(_ref) { - let rest = babelHelpers.objectWithoutProperties(_ref, _temp2); + let rest = babelHelpers.objectWithoutProperties(_ref, _exclude2); call(rest); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js index fb0f81816830..da43d4aa19aa 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js @@ -1,6 +1,6 @@ -const _temp = ["a1"], - _temp2 = ["a2", "b2"], - _temp3 = ["c3"]; +const _exclude = ["a1"], + _exclude2 = ["a2", "b2"], + _exclude3 = ["c3"]; try {} catch (_ref) { let a34 = babelHelpers.extends({}, _ref); @@ -10,7 +10,7 @@ try {} catch (_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, _temp); + b1 = babelHelpers.objectWithoutProperties(_ref2, _exclude); } try {} catch (_ref3) { @@ -18,7 +18,7 @@ try {} catch (_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, _temp2); + c2 = babelHelpers.objectWithoutProperties(_ref3, _exclude2); } try {} catch (_ref4) { @@ -29,7 +29,7 @@ try {} catch (_ref4) { c3 } } = _ref4, - c4 = babelHelpers.objectWithoutProperties(_ref4.c2, _temp3); + c4 = babelHelpers.objectWithoutProperties(_ref4.c2, _exclude3); } // Unchanged diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js index a50a7ac267c5..11fbe16e432b 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js @@ -1,6 +1,6 @@ -const _temp = ["a"], - _temp2 = ["a"], - _temp3 = ["a"]; +const _exclude = ["a"], + _exclude2 = ["a"], + _exclude3 = ["a"]; // ForXStatement for (const _ref of []) { @@ -8,7 +8,7 @@ for (const _ref of []) { const { a } = _ref2, - b = babelHelpers.objectWithoutProperties(_ref2, _temp); + b = babelHelpers.objectWithoutProperties(_ref2, _exclude); } for (var _ref3 of []) { @@ -16,7 +16,7 @@ for (var _ref3 of []) { var { a } = _ref4, - b = babelHelpers.objectWithoutProperties(_ref4, _temp2); + b = babelHelpers.objectWithoutProperties(_ref4, _exclude2); } async function a() { @@ -25,7 +25,7 @@ async function a() { var { a } = _ref6, - b = babelHelpers.objectWithoutProperties(_ref6, _temp3); + b = babelHelpers.objectWithoutProperties(_ref6, _exclude3); } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js index 228e25be6875..4fef90af8876 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js @@ -1,11 +1,11 @@ -const _temp = ["a"]; +const _exclude = ["a"]; for (var _ref of []) { var _ref2 = _ref; ({ a } = _ref2); - b = babelHelpers.objectWithoutProperties(_ref2, _temp); + b = babelHelpers.objectWithoutProperties(_ref2, _exclude); _ref2; void 0; } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js index b2104600f397..b019bccbb354 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js @@ -1,13 +1,13 @@ -const _temp = ["a"], - _temp2 = ["a"], - _temp3 = ["a"]; +const _exclude = ["a"], + _exclude2 = ["a"], + _exclude3 = ["a"]; // ForXStatement for (var _ref of []) { var { a } = _ref, - b = babelHelpers.objectWithoutProperties(_ref, _temp); + b = babelHelpers.objectWithoutProperties(_ref, _exclude); } for (var _ref2 of []) { @@ -15,7 +15,7 @@ for (var _ref2 of []) { ({ a } = _ref3); - b = babelHelpers.objectWithoutProperties(_ref3, _temp2); + b = babelHelpers.objectWithoutProperties(_ref3, _exclude2); _ref3; } @@ -25,7 +25,7 @@ async function a() { ({ a } = _ref5); - b = babelHelpers.objectWithoutProperties(_ref5, _temp3); + b = babelHelpers.objectWithoutProperties(_ref5, _exclude3); _ref5; } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js index 04fd6cc8526f..1f3b6061e488 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js @@ -1,4 +1,4 @@ -const _temp = ["X"]; +const _exclude = ["X"]; _ref => { let R = babelHelpers.extends({}, _ref); @@ -9,7 +9,7 @@ _ref => { let { X: Y } = _ref2, - R = babelHelpers.objectWithoutProperties(_ref2, _temp); + R = babelHelpers.objectWithoutProperties(_ref2, _exclude); let { a = { Y diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js index 8d73f3046fdb..bd765cea6a5f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js @@ -1,12 +1,12 @@ -const _temp = ["a1"], - _temp2 = ["a2", "b2"], - _temp3 = ["a5"], - _temp4 = ["a3"], - _temp5 = ["ba1"], - _temp6 = ["a3", "b2"], - _temp7 = ["ba1"], - _temp8 = ["a1"], - _temp9 = ["a1"]; +const _exclude = ["a1"], + _exclude2 = ["a2", "b2"], + _exclude3 = ["a5"], + _exclude4 = ["a3"], + _exclude5 = ["ba1"], + _exclude6 = ["a3", "b2"], + _exclude7 = ["ba1"], + _exclude8 = ["a1"], + _exclude9 = ["a1"]; function a(_ref) { let a34 = babelHelpers.extends({}, _ref); @@ -16,7 +16,7 @@ function a2(_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, _temp); + b1 = babelHelpers.objectWithoutProperties(_ref2, _exclude); } function a3(_ref3) { @@ -24,18 +24,18 @@ function a3(_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, _temp2); + c2 = babelHelpers.objectWithoutProperties(_ref3, _exclude2); } function a4(_ref4, _ref5) { let { a5 } = _ref5, - c5 = babelHelpers.objectWithoutProperties(_ref5, _temp3); + c5 = babelHelpers.objectWithoutProperties(_ref5, _exclude3); let { a3 } = _ref4, - c3 = babelHelpers.objectWithoutProperties(_ref4, _temp4); + c3 = babelHelpers.objectWithoutProperties(_ref4, _exclude4); } function a5(_ref6) { @@ -45,8 +45,8 @@ function a5(_ref6) { ba1 } } = _ref6, - ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, _temp5), - c3 = babelHelpers.objectWithoutProperties(_ref6, _temp6); + ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, _exclude5), + c3 = babelHelpers.objectWithoutProperties(_ref6, _exclude6); } function a6(_ref7) { @@ -56,14 +56,14 @@ function a6(_ref7) { ba1 } } = _ref7, - ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, _temp7); + ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, _exclude7); } function a7(_ref8 = {}) { let { a1 = 1 } = _ref8, - b1 = babelHelpers.objectWithoutProperties(_ref8, _temp8); + b1 = babelHelpers.objectWithoutProperties(_ref8, _exclude8); } function a8([_ref9]) { @@ -74,7 +74,7 @@ function a9([_ref10]) { let { a1 } = _ref10, - a2 = babelHelpers.objectWithoutProperties(_ref10, _temp9); + a2 = babelHelpers.objectWithoutProperties(_ref10, _exclude9); } function a10([a1, _ref11]) { diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js index aabb6c1bfd2a..592e2ccb2c7f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js @@ -1,5 +1,5 @@ -const _temp = ["excluded", "excluded2", "used", "used2"], - _temp2 = ["unused"]; +const _exclude = ["excluded", "excluded2", "used", "used2"], + _exclude2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -15,7 +15,7 @@ class Comp extends React.Component { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutPropertiesLoose(_this$props, _temp); + props = babelHelpers.objectWithoutPropertiesLoose(_this$props, _exclude); console.log(used, usedRenamed); return React.createElement("input", props); } @@ -23,6 +23,6 @@ class Comp extends React.Component { } function smth(_ref) { - let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, _temp2); + let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude2); call(rest); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js index f8645b870b8f..d778a59cd57e 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js @@ -1,4 +1,4 @@ -const _temp = ["b"]; +const _exclude = ["b"]; const _foo = foo(), { @@ -21,6 +21,6 @@ const { let { b } = _ref, - c = babelHelpers.objectWithoutProperties(_ref, _temp); + c = babelHelpers.objectWithoutProperties(_ref, _exclude); console.log(b, c); }); diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js index f8030af6ebaa..d0d289f0ab63 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js @@ -1,4 +1,4 @@ -const _temp = ["a"]; +const _exclude = ["a"]; function fn0(obj0) { const { @@ -8,7 +8,7 @@ function fn0(obj0) { const { a } = obj2, - rest = babelHelpers.objectWithoutProperties(obj2, _temp); + rest = babelHelpers.objectWithoutProperties(obj2, _exclude); console.log(rest); } } = obj1; diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js index 360a3b425bf5..3b74a47033f8 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js @@ -1,4 +1,4 @@ -const _temp = ["a", "b", "c"]; +const _exclude = ["a", "b", "c"]; const get = () => { fireTheMissiles(); @@ -10,6 +10,6 @@ const f = _ref => { a = get(), b } = _ref, - z = babelHelpers.objectWithoutPropertiesLoose(_ref, _temp); + z = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude); const v = b + 3; }; diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js index c3e4c75b51fc..26d0be0c3821 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js @@ -1,3 +1,5 @@ +var _exclude = ["foo"]; + var _loop = function (foo, bar) { () => foo; @@ -12,7 +14,7 @@ for (var _ref of {}) { var { foo } = _ref, - bar = babelHelpers.objectWithoutPropertiesLoose(_ref, ["foo"]); + bar = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude); _loop(foo, bar); } diff --git a/packages/babel-plugin-transform-destructuring/src/index.js b/packages/babel-plugin-transform-destructuring/src/index.js index 50e0f405bcf8..814ff169ee92 100644 --- a/packages/babel-plugin-transform-destructuring/src/index.js +++ b/packages/babel-plugin-transform-destructuring/src/index.js @@ -228,6 +228,18 @@ export default declare((api, options) => { t.memberExpression(keyExpression, t.identifier("map")), [this.addHelper("toPropertyKey")], ); + } else if (!t.isProgram(this.scope.block)) { + // Hoist definition of excluded keys, so that it's not created each time. + const program = this.scope.path.findParent(path => path.isProgram()); + const id = this.scope.generateUidIdentifier("excluded"); + + program.scope.push({ + id, + init: keyExpression, + kind: "const", + }); + + keyExpression = t.cloneNode(id); } value = t.callExpression( diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js index 8dcd578573fa..db952d04e321 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-builtins/output.js @@ -1,3 +1,4 @@ +var _excluded = ["x"]; var z = {}; var _z = z, x = Object.assign({}, _z); @@ -10,7 +11,7 @@ var _z3 = z, (function (_ref) { var x = _ref.x, - y = babelHelpers.objectWithoutProperties(_ref, ["x"]); + y = babelHelpers.objectWithoutProperties(_ref, _excluded); }); var _o = o; diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js index e202791b6fd4..9a7d04c58d0b 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest-loose/output.js @@ -1,3 +1,4 @@ +const _excluded = ["x"]; var z = {}; var _z = z, x = babelHelpers.extends({}, _z); @@ -10,7 +11,7 @@ var _z3 = z, (function (_ref) { let x = _ref.x, - y = babelHelpers.objectWithoutPropertiesLoose(_ref, ["x"]); + y = babelHelpers.objectWithoutPropertiesLoose(_ref, _excluded); }); var _o = o; diff --git a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js index c4af22047ad0..ffe905ba66c2 100644 --- a/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js +++ b/packages/babel-plugin-transform-destructuring/test/fixtures/destructuring/es7-object-rest/output.js @@ -1,3 +1,4 @@ +var _excluded = ["x"]; var z = {}; var _z = z, x = babelHelpers.extends({}, _z); @@ -10,7 +11,7 @@ var _z3 = z, (function (_ref) { var x = _ref.x, - y = babelHelpers.objectWithoutProperties(_ref, ["x"]); + y = babelHelpers.objectWithoutProperties(_ref, _excluded); }); var _o = o; diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/output.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/output.js index 1d844d9eea6d..c320638b28d5 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/output.js +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-rest/output.js @@ -1,10 +1,12 @@ +const _excluded = ["text", "className", "id"]; + function render(_ref) { var _Component; let text = _ref.text, className = _ref.className, id = _ref.id, - props = babelHelpers.objectWithoutProperties(_ref, ["text", "className", "id"]); + props = babelHelpers.objectWithoutProperties(_ref, _excluded); // intentionally ignoring props return () => _Component || (_Component = ); } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/output.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/output.js index db3d5e81def0..7cb4583feff5 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/output.js +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/parameter-destructure-spread-deopt/output.js @@ -1,7 +1,9 @@ +const _excluded = ["text", "className", "id"]; + function render(_ref) { let text = _ref.text, className = _ref.className, id = _ref.id, - props = babelHelpers.objectWithoutProperties(_ref, ["text", "className", "id"]); + props = babelHelpers.objectWithoutProperties(_ref, _excluded); return () => ; } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs index ea732bb287f4..3f7a183e5aa7 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs @@ -1,9 +1,11 @@ +const _exclude = ["outsetArrows"]; + function Foo(_ref) { var _div; let { outsetArrows } = _ref, - rest = babelHelpers.objectWithoutProperties(_ref, ["outsetArrows"]); + rest = babelHelpers.objectWithoutProperties(_ref, _exclude); return useMemo(() => _div || (_div =
), [outsetArrows]); } diff --git a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-11278/output.js b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-11278/output.js index f9c870793882..9b6d41696090 100644 --- a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-11278/output.js +++ b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-11278/output.js @@ -1,7 +1,9 @@ "use strict"; +var _excluded = ["a"]; + function F(_ref) { var a = _ref.a, - O = babelHelpers.objectWithoutProperties(_ref, ["a"]); + O = babelHelpers.objectWithoutProperties(_ref, _excluded); var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : O; } From 0e8ca89fb5f5a3b5a2a01c2553f1a1b4ff938b74 Mon Sep 17 00:00:00 2001 From: Alan Orozco Date: Thu, 27 May 2021 17:54:01 -0700 Subject: [PATCH 3/4] consistent name --- .../src/index.js | 2 +- .../object-rest/catch-clause/output.js | 12 +++---- .../object-rest/for-x-array-pattern/output.js | 12 +++---- .../test/fixtures/object-rest/for-x/output.js | 12 +++---- .../fixtures/object-rest/parameters/output.js | 36 +++++++++---------- .../fixtures/regression/gh-4904/output.js | 4 +-- .../fixtures/regression/gh-7388/output.js | 4 +-- .../fixtures/regression/gh-8323/output.js | 4 +-- .../fixtures/general/issue-10339/output.js | 4 +-- .../integration/issue-12303/output.mjs | 4 +-- 10 files changed, 47 insertions(+), 47 deletions(-) diff --git a/packages/babel-plugin-proposal-object-rest-spread/src/index.js b/packages/babel-plugin-proposal-object-rest-spread/src/index.js index 0662509a1fb2..396ae6cfd3c5 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/src/index.js +++ b/packages/babel-plugin-proposal-object-rest-spread/src/index.js @@ -182,7 +182,7 @@ export default declare((api, opts) => { if (!t.isProgram(path.scope.block)) { // Hoist definition of excluded keys, so that it's not created each time. const program = path.findParent(path => path.isProgram()); - const id = path.scope.generateUidIdentifier("exclude"); + const id = path.scope.generateUidIdentifier("excluded"); program.scope.push({ id, diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js index da43d4aa19aa..f05d6aa4ec5f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/catch-clause/output.js @@ -1,6 +1,6 @@ -const _exclude = ["a1"], - _exclude2 = ["a2", "b2"], - _exclude3 = ["c3"]; +const _excluded = ["a1"], + _excluded2 = ["a2", "b2"], + _excluded3 = ["c3"]; try {} catch (_ref) { let a34 = babelHelpers.extends({}, _ref); @@ -10,7 +10,7 @@ try {} catch (_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, _exclude); + b1 = babelHelpers.objectWithoutProperties(_ref2, _excluded); } try {} catch (_ref3) { @@ -18,7 +18,7 @@ try {} catch (_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, _exclude2); + c2 = babelHelpers.objectWithoutProperties(_ref3, _excluded2); } try {} catch (_ref4) { @@ -29,7 +29,7 @@ try {} catch (_ref4) { c3 } } = _ref4, - c4 = babelHelpers.objectWithoutProperties(_ref4.c2, _exclude3); + c4 = babelHelpers.objectWithoutProperties(_ref4.c2, _excluded3); } // Unchanged diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js index 11fbe16e432b..5be28644e2bd 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-array-pattern/output.js @@ -1,6 +1,6 @@ -const _exclude = ["a"], - _exclude2 = ["a"], - _exclude3 = ["a"]; +const _excluded = ["a"], + _excluded2 = ["a"], + _excluded3 = ["a"]; // ForXStatement for (const _ref of []) { @@ -8,7 +8,7 @@ for (const _ref of []) { const { a } = _ref2, - b = babelHelpers.objectWithoutProperties(_ref2, _exclude); + b = babelHelpers.objectWithoutProperties(_ref2, _excluded); } for (var _ref3 of []) { @@ -16,7 +16,7 @@ for (var _ref3 of []) { var { a } = _ref4, - b = babelHelpers.objectWithoutProperties(_ref4, _exclude2); + b = babelHelpers.objectWithoutProperties(_ref4, _excluded2); } async function a() { @@ -25,7 +25,7 @@ async function a() { var { a } = _ref6, - b = babelHelpers.objectWithoutProperties(_ref6, _exclude3); + b = babelHelpers.objectWithoutProperties(_ref6, _excluded3); } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js index b019bccbb354..63002e70ea97 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x/output.js @@ -1,13 +1,13 @@ -const _exclude = ["a"], - _exclude2 = ["a"], - _exclude3 = ["a"]; +const _excluded = ["a"], + _excluded2 = ["a"], + _excluded3 = ["a"]; // ForXStatement for (var _ref of []) { var { a } = _ref, - b = babelHelpers.objectWithoutProperties(_ref, _exclude); + b = babelHelpers.objectWithoutProperties(_ref, _excluded); } for (var _ref2 of []) { @@ -15,7 +15,7 @@ for (var _ref2 of []) { ({ a } = _ref3); - b = babelHelpers.objectWithoutProperties(_ref3, _exclude2); + b = babelHelpers.objectWithoutProperties(_ref3, _excluded2); _ref3; } @@ -25,7 +25,7 @@ async function a() { ({ a } = _ref5); - b = babelHelpers.objectWithoutProperties(_ref5, _exclude3); + b = babelHelpers.objectWithoutProperties(_ref5, _excluded3); _ref5; } } // skip diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js index bd765cea6a5f..dcc89b2d4849 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters/output.js @@ -1,12 +1,12 @@ -const _exclude = ["a1"], - _exclude2 = ["a2", "b2"], - _exclude3 = ["a5"], - _exclude4 = ["a3"], - _exclude5 = ["ba1"], - _exclude6 = ["a3", "b2"], - _exclude7 = ["ba1"], - _exclude8 = ["a1"], - _exclude9 = ["a1"]; +const _excluded = ["a1"], + _excluded2 = ["a2", "b2"], + _excluded3 = ["a5"], + _excluded4 = ["a3"], + _excluded5 = ["ba1"], + _excluded6 = ["a3", "b2"], + _excluded7 = ["ba1"], + _excluded8 = ["a1"], + _excluded9 = ["a1"]; function a(_ref) { let a34 = babelHelpers.extends({}, _ref); @@ -16,7 +16,7 @@ function a2(_ref2) { let { a1 } = _ref2, - b1 = babelHelpers.objectWithoutProperties(_ref2, _exclude); + b1 = babelHelpers.objectWithoutProperties(_ref2, _excluded); } function a3(_ref3) { @@ -24,18 +24,18 @@ function a3(_ref3) { a2, b2 } = _ref3, - c2 = babelHelpers.objectWithoutProperties(_ref3, _exclude2); + c2 = babelHelpers.objectWithoutProperties(_ref3, _excluded2); } function a4(_ref4, _ref5) { let { a5 } = _ref5, - c5 = babelHelpers.objectWithoutProperties(_ref5, _exclude3); + c5 = babelHelpers.objectWithoutProperties(_ref5, _excluded3); let { a3 } = _ref4, - c3 = babelHelpers.objectWithoutProperties(_ref4, _exclude4); + c3 = babelHelpers.objectWithoutProperties(_ref4, _excluded4); } function a5(_ref6) { @@ -45,8 +45,8 @@ function a5(_ref6) { ba1 } } = _ref6, - ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, _exclude5), - c3 = babelHelpers.objectWithoutProperties(_ref6, _exclude6); + ba2 = babelHelpers.objectWithoutProperties(_ref6.b2, _excluded5), + c3 = babelHelpers.objectWithoutProperties(_ref6, _excluded6); } function a6(_ref7) { @@ -56,14 +56,14 @@ function a6(_ref7) { ba1 } } = _ref7, - ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, _exclude7); + ba2 = babelHelpers.objectWithoutProperties(_ref7.b2, _excluded7); } function a7(_ref8 = {}) { let { a1 = 1 } = _ref8, - b1 = babelHelpers.objectWithoutProperties(_ref8, _exclude8); + b1 = babelHelpers.objectWithoutProperties(_ref8, _excluded8); } function a8([_ref9]) { @@ -74,7 +74,7 @@ function a9([_ref10]) { let { a1 } = _ref10, - a2 = babelHelpers.objectWithoutProperties(_ref10, _exclude9); + a2 = babelHelpers.objectWithoutProperties(_ref10, _excluded9); } function a10([a1, _ref11]) { diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js index d778a59cd57e..2e1c2daa50d8 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-4904/output.js @@ -1,4 +1,4 @@ -const _exclude = ["b"]; +const _excluded = ["b"]; const _foo = foo(), { @@ -21,6 +21,6 @@ const { let { b } = _ref, - c = babelHelpers.objectWithoutProperties(_ref, _exclude); + c = babelHelpers.objectWithoutProperties(_ref, _excluded); console.log(b, c); }); diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js index d0d289f0ab63..66d25873df98 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-7388/output.js @@ -1,4 +1,4 @@ -const _exclude = ["a"]; +const _excluded = ["a"]; function fn0(obj0) { const { @@ -8,7 +8,7 @@ function fn0(obj0) { const { a } = obj2, - rest = babelHelpers.objectWithoutProperties(obj2, _exclude); + rest = babelHelpers.objectWithoutProperties(obj2, _excluded); console.log(rest); } } = obj1; diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js index 3b74a47033f8..9bfeb84052a3 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/regression/gh-8323/output.js @@ -1,4 +1,4 @@ -const _exclude = ["a", "b", "c"]; +const _excluded = ["a", "b", "c"]; const get = () => { fireTheMissiles(); @@ -10,6 +10,6 @@ const f = _ref => { a = get(), b } = _ref, - z = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude); + z = babelHelpers.objectWithoutPropertiesLoose(_ref, _excluded); const v = b + 3; }; diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js index 26d0be0c3821..3a849712583f 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/general/issue-10339/output.js @@ -1,4 +1,4 @@ -var _exclude = ["foo"]; +var _excluded = ["foo"]; var _loop = function (foo, bar) { () => foo; @@ -14,7 +14,7 @@ for (var _ref of {}) { var { foo } = _ref, - bar = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude); + bar = babelHelpers.objectWithoutPropertiesLoose(_ref, _excluded); _loop(foo, bar); } diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs index 3f7a183e5aa7..27cf74ba34a6 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/integration/issue-12303/output.mjs @@ -1,4 +1,4 @@ -const _exclude = ["outsetArrows"]; +const _excluded = ["outsetArrows"]; function Foo(_ref) { var _div; @@ -6,6 +6,6 @@ function Foo(_ref) { let { outsetArrows } = _ref, - rest = babelHelpers.objectWithoutProperties(_ref, _exclude); + rest = babelHelpers.objectWithoutProperties(_ref, _excluded); return useMemo(() => _div || (_div =
), [outsetArrows]); } From c01a0e0992c258b502c648e538fa20f59c9650d8 Mon Sep 17 00:00:00 2001 From: Alan Orozco Date: Fri, 28 May 2021 07:28:01 -0700 Subject: [PATCH 4/4] rerun tests --- .../rest-remove-unused-excluded-keys/output.js | 8 ++++---- .../object-rest/for-x-completion-record/output.js | 4 ++-- .../parameters-object-rest-used-in-default/output.js | 4 ++-- .../remove-unused-excluded-keys-loose/output.js | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js index 7c8881eb21e4..5f1e206cebbd 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/assumption-pureGetters/rest-remove-unused-excluded-keys/output.js @@ -1,5 +1,5 @@ -const _exclude = ["excluded", "excluded2", "used", "used2"], - _exclude2 = ["unused"]; +const _excluded = ["excluded", "excluded2", "used", "used2"], + _excluded2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -14,12 +14,12 @@ function render() { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutProperties(_this$props, _exclude); + props = babelHelpers.objectWithoutProperties(_this$props, _excluded); console.log(used, usedRenamed); return React.createElement("input", props); } function smth(_ref) { - let rest = babelHelpers.objectWithoutProperties(_ref, _exclude2); + let rest = babelHelpers.objectWithoutProperties(_ref, _excluded2); call(rest); } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js index 4fef90af8876..0ab2da7d8d85 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/for-x-completion-record/output.js @@ -1,11 +1,11 @@ -const _exclude = ["a"]; +const _excluded = ["a"]; for (var _ref of []) { var _ref2 = _ref; ({ a } = _ref2); - b = babelHelpers.objectWithoutProperties(_ref2, _exclude); + b = babelHelpers.objectWithoutProperties(_ref2, _excluded); _ref2; void 0; } diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js index 1f3b6061e488..ed8f957d811f 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/parameters-object-rest-used-in-default/output.js @@ -1,4 +1,4 @@ -const _exclude = ["X"]; +const _excluded = ["X"]; _ref => { let R = babelHelpers.extends({}, _ref); @@ -9,7 +9,7 @@ _ref => { let { X: Y } = _ref2, - R = babelHelpers.objectWithoutProperties(_ref2, _exclude); + R = babelHelpers.objectWithoutProperties(_ref2, _excluded); let { a = { Y diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js index 592e2ccb2c7f..50e819aecdd1 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/fixtures/object-rest/remove-unused-excluded-keys-loose/output.js @@ -1,5 +1,5 @@ -const _exclude = ["excluded", "excluded2", "used", "used2"], - _exclude2 = ["unused"]; +const _excluded = ["excluded", "excluded2", "used", "used2"], + _excluded2 = ["unused"]; // should not remove when destructuring into existing bindings var _c = c2; ({ @@ -15,7 +15,7 @@ class Comp extends React.Component { used, used2: usedRenamed } = _this$props, - props = babelHelpers.objectWithoutPropertiesLoose(_this$props, _exclude); + props = babelHelpers.objectWithoutPropertiesLoose(_this$props, _excluded); console.log(used, usedRenamed); return React.createElement("input", props); } @@ -23,6 +23,6 @@ class Comp extends React.Component { } function smth(_ref) { - let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, _exclude2); + let rest = babelHelpers.objectWithoutPropertiesLoose(_ref, _excluded2); call(rest); }