46 lines
775 B
JavaScript
46 lines
775 B
JavaScript
function f(a = 1, b = 2) {
|
|
return a + b;
|
|
}
|
|
|
|
assert.equal(0, f.length);
|
|
assert.equal(3, f());
|
|
assert.equal(6, f(4));
|
|
assert.equal(24, f(8, 16));
|
|
|
|
assert.equal(3, f(undefined, undefined));
|
|
assert.equal(33, f(undefined, 32));
|
|
|
|
function g(a, b = a) {
|
|
return a + b;
|
|
}
|
|
|
|
assert.equal(1, g.length);
|
|
assert.equal(4, g(2));
|
|
assert.equal(4, g(2, undefined));
|
|
assert.equal(5, g(2, 3));
|
|
|
|
function C(obj = this) {
|
|
this.obj = obj;
|
|
}
|
|
|
|
assert.equal(0, C.length);
|
|
|
|
var c = new C;
|
|
assert.equal(c, c.obj);
|
|
|
|
var c2 = new C(undefined);
|
|
assert.equal(c2, c2.obj);
|
|
|
|
var c3 = new C(42);
|
|
assert.equal(42, c3.obj);
|
|
|
|
function h(a = 1, b) {
|
|
return {a: a, b: b};
|
|
}
|
|
|
|
assert.equal(1, h().a);
|
|
assert.equal(2, h(2).a);
|
|
assert.isUndefined(h().b);
|
|
assert.isUndefined(h(2).b);
|
|
assert.equal(4, h(3, 4).b);
|