37 lines
529 B
JavaScript
37 lines
529 B
JavaScript
var obj = {};
|
|
obj.x ?= 2;
|
|
assert.equal(obj.x, 2);
|
|
|
|
obj = {};
|
|
assert.equal(obj.x ?= 2, 2);
|
|
|
|
obj = { x: 1 };
|
|
obj.x ?= 2;
|
|
assert.equal(obj.x, 1);
|
|
|
|
obj = { x: 1 };
|
|
assert.equal(obj.x ?= 2, 1);
|
|
|
|
obj = { x: undefined }
|
|
obj.x ?= 2;
|
|
assert.equal(obj.x, undefined);
|
|
|
|
obj = { x: undefined }
|
|
assert.equal(obj.x ?= 2, undefined);
|
|
|
|
var calls = 0;
|
|
var q = { q: 3 };
|
|
var o = {
|
|
get p() {
|
|
calls++;
|
|
return q;
|
|
}
|
|
};
|
|
|
|
o.p.q ?= 2;
|
|
assert.equal(1, calls);
|
|
o.p.f ?= 2;
|
|
assert.equal(2, calls);
|
|
assert.equal(3, o.p.q);
|
|
assert.equal(2, o.p.f);
|