22 lines
464 B
JavaScript
22 lines
464 B
JavaScript
var key, x, y, z;
|
|
// impure
|
|
key = 1;
|
|
var { [key++]: y, ...x } = { 1: 1, a: 1 };
|
|
assert.deepEqual({ a: 1 }, x);
|
|
assert.equal(key, 2);
|
|
assert.equal(1, y);
|
|
|
|
// takes care of the order
|
|
|
|
key = 1;
|
|
var { [++key]: y, [++key]: z, ...rest} = {2: 2, 3: 3};
|
|
assert.equal(y, 2);
|
|
assert.equal(z, 3);
|
|
|
|
// pure, computed property should remain as-is
|
|
key = 2;
|
|
({ [key]: y, z, ...x } = {2: "two", z: "zee"});
|
|
assert.equal(y, "two");
|
|
assert.deepEqual(x, {});
|
|
assert.equal(z, "zee");
|