Erik Desjardins bca170ad79 Avoid duplicating impure expressions in object rest destructuring (#5151)
* 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
2017-01-18 21:32:44 -05:00

8 lines
186 B
JavaScript

// ExportNamedDeclaration
var { b } = asdf2,
c = babelHelpers.objectWithoutProperties(asdf2, ["b"]);
// Skip
export { b, c };
export var { bb, cc } = ads;
export var [dd, ee] = ads;