defaults-destructuring-object.js (752B)
1 function f1(a, bIs, cIs, {b}={b: 3}, {cc: c}={cc: 4}) { 2 assertEq(a, 1); 3 assertEq(b, bIs); 4 assertEq(c, cIs); 5 } 6 assertEq(f1.length, 3); 7 f1(1, 3, 4); 8 f1(1, 42, 4, {b: 42}); 9 f1(1, 42, 4, {b: 42}, undefined); 10 f1(1, 42, 43, {b: 42}, {cc: 43}); 11 f1(1, 3, 4, undefined); 12 f1(1, 3, 4, undefined, undefined); 13 f1(1, 3, 43, undefined, {cc: 43}); 14 15 function f2(a, bIs, cIs, {b}={}, {cc: c}={}) { 16 assertEq(a, 1); 17 assertEq(b, bIs); 18 assertEq(c, cIs); 19 } 20 assertEq(f2.length, 3); 21 f2(1, undefined, undefined); 22 f2(1, 42, undefined, {b: 42}); 23 f2(1, 42, undefined, {b: 42}, undefined); 24 f2(1, 42, 43, {b: 42}, {cc: 43}); 25 f2(1, undefined, undefined, undefined); 26 f2(1, undefined, undefined, undefined, undefined); 27 f2(1, undefined, 43, undefined, {cc: 43});