* 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
11 lines
166 B
JavaScript
11 lines
166 B
JavaScript
const { x, ...y } = a,
|
|
z = foo(y);
|
|
|
|
const { ...s } = r,
|
|
t = foo(s);
|
|
|
|
// ordering is preserved
|
|
var l = foo(),
|
|
{ m: { n, ...o }, ...p } = bar(),
|
|
q = baz();
|