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

75 lines
1.1 KiB
JavaScript

var [a = 0] = [];
assert.equal(0, a);
var {b = 1} = {};
assert.equal(1, b);
var {c = 2} = {c: 3};
assert.equal(3, c);
var {d = 4} = Object.create({d: 5});
assert.equal(5, d);
var {e: f = 6} = {};
assert.equal(6, f);
var {g: h = 7} = {h: 8};
assert.equal(7, h);
var [, , , i = 9] = [10, 11, 12];
assert.equal(9, i);
function j({x = 42}, expected) {
assert.equal(expected, x);
}
j({}, 42);
j({x: 43}, 43);
var count = 0;
var [k = 42] = (count++, [21]);
assert.equal(21, k);
assert.equal(1, count);
var {x = 1} = {x: undefined};
assert.equal(x, 1);
var {'x': x = 2} = {x: undefined};
assert.equal(x, 2);
var {['x']: x = 3} = {x: undefined};
assert.equal(x, 3);
var [y = 4] = [undefined];
assert.equal(y, 4);
var xCount = 0;
var yCount = 0;
var zCount = 0;
var object = {
get x() {
xCount++;
return {
get y() {
yCount++;
return {
get z() {
zCount++;
return undefined;
}
};
}
};
}
};
var {y: {z = 5, w = 6}, v = 7} = object.x;
assert.equal(z, 5);
assert.equal(w, 6);
assert.equal(v, 7);
assert.equal(xCount, 1);
assert.equal(yCount, 1);
assert.equal(zCount, 1);