2015-01-17 22:56:49 +11:00

107 lines
1.4 KiB
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, 2);
obj = { x: undefined }
assert.equal(obj.x ||= 2, 2);
obj = { x: null }
obj.x ||= 2;
assert.equal(obj.x, 2);
obj = { x: null }
assert.equal(obj.x ||= 2, 2);
obj = { x: false }
obj.x ||= 2;
assert.equal(obj.x, 2);
obj = { x: false }
assert.equal(obj.x ||= 2, 2);
obj = { x: '' }
obj.x ||= 2;
assert.equal(obj.x, 2);
obj = { x: '' }
assert.equal(obj.x ||= 2, 2);
obj = { x: 0 }
obj.x ||= 2;
assert.equal(obj.x, 2);
obj = { x: 0 }
assert.equal(obj.x ||= 2, 2);
obj = undefined;
obj ||= 2;
assert.equal(obj, 2);
obj = undefined;
assert.equal(obj ||= 2 , 2);
obj = 1;
obj ||= 2;
assert.equal(obj, 1);
obj = 1;
assert.equal(obj ||= 2 , 1);
obj = null;
obj ||= 2;
assert.equal(obj, 2);
obj = null;
assert.equal(obj ||= 2 , 2);
obj = false;
obj ||= 2;
assert.equal(obj, 2);
obj = false;
assert.equal(obj ||= 2 , 2);
obj = '';
obj ||= 2;
assert.equal(obj, 2);
obj = '';
assert.equal(obj ||= 2 , 2);
obj = 0;
obj ||= 2;
assert.equal(obj, 2);
obj = 0;
assert.equal(obj ||= 2 , 2);
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);