2015-01-04 19:40:09 +11:00

28 lines
790 B
JavaScript

// Options: --block-binding
function destructVarDecl() {
// Const; and an array inside an object literal inside an array.
const a = 0, [b, {c, x: [d]}] = [1, {c: 2, x: [3]}];
// Now an object literal inside an array inside an object literal.
var {x: [{e}, f], g} = {x: [{e:4}, 5], g: 6};
// Two patterns in one var.
var {h} = {h: 7}, {i} = {i: 8};
return { a: a, b: b, c: c, d: d, e: e, f: f, g: g, h: h, i: i };
}
// ----------------------------------------------------------------------------
var result = destructVarDecl();
assert.equal(0, result.a);
assert.equal(1, result.b);
assert.equal(2, result.c);
assert.equal(3, result.d);
assert.equal(4, result.e);
assert.equal(5, result.f);
assert.equal(6, result.g);
assert.equal(7, result.h);
assert.equal(8, result.i);