75 lines
1.1 KiB
JavaScript
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);
|