* avoid duplicating impure initializers in object rest destructuring * reuse existing VariableDeclarations in object rest destructuring, to fix two issues: 1. inserting an additional VariableDeclaration after the current one may change order of operations, which is unsafe if a future VariableDeclarator refers to a destructured variable. 2. The entire VariableDeclaration is removed when all properties are rest properties, indiscriminately removing other variables
20 lines
504 B
JavaScript
20 lines
504 B
JavaScript
try {} catch (_ref) {
|
|
let a34 = babelHelpers.objectWithoutProperties(_ref, []);
|
|
}
|
|
try {} catch (_ref2) {
|
|
let { a1 } = _ref2,
|
|
b1 = babelHelpers.objectWithoutProperties(_ref2, ["a1"]);
|
|
}
|
|
try {} catch (_ref3) {
|
|
let { a2, b2 } = _ref3,
|
|
c2 = babelHelpers.objectWithoutProperties(_ref3, ["a2", "b2"]);
|
|
}
|
|
try {} catch (_ref4) {
|
|
let { a2, b2, c2: { c3 } } = _ref4,
|
|
c4 = babelHelpers.objectWithoutProperties(_ref4.c2, ["c3"]);
|
|
}
|
|
|
|
// Unchanged
|
|
try {} catch (a) {}
|
|
try {} catch ({ b }) {}
|