defaults-destructuring-mixed-default-value.js (1500B)
1 function f1(a=1, 2 [b, c=(assertEq(a, 2), a=3, 42)]=[(assertEq(a, 1), a=2, 43)], 3 {d, e:e=(assertEq(a, 4), a=5, 44)}={d: (assertEq(a, 3), a=4, 45)}, 4 f=(assertEq(a, 5), a=6, 46)) { 5 assertEq(a, 6); 6 assertEq(b, 43); 7 assertEq(c, 42); 8 assertEq(d, 45); 9 assertEq(e, 44); 10 assertEq(f, 46); 11 } 12 assertEq(f1.length, 0); 13 f1(); 14 15 function f2(a=1, 16 [b, c=assertEq(false)]=[(assertEq(a, 1), a=2, 42), (assertEq(a, 2), a=3, 43)], 17 {d, e:e=assertEq(false)}={d: (assertEq(a, 3), a=4, 44), e: (assertEq(a, 4), a=5, 45)}, 18 f=(assertEq(a, 5), a=6, 46)) { 19 assertEq(a, 6); 20 assertEq(b, 42); 21 assertEq(c, 43); 22 assertEq(d, 44); 23 assertEq(e, 45); 24 assertEq(f, 46); 25 } 26 assertEq(f2.length, 0); 27 f2(); 28 29 function f3(a=1, 30 [b, c=(assertEq(a, 1), a=2, 42)]=[assertEq(false)], 31 {d, e:e=(assertEq(a, 2), a=3, 43)}={d: assertEq(false)}, 32 f=(assertEq(a, 3), a=4, 44)) { 33 assertEq(a, 4); 34 assertEq(b, 8); 35 assertEq(c, 42); 36 assertEq(d, 9); 37 assertEq(e, 43); 38 assertEq(f, 44); 39 } 40 assertEq(f3.length, 0); 41 f3(undefined, [8], {d: 9}); 42 43 function f4(a=1, 44 [b, c=assertEq(false)]=[assertEq(false), assertEq(false)], 45 {d, e:e=assertEq(false)}={d: assertEq(false), e: assertEq(false)}, 46 f=(assertEq(a, 1), a=2, 42)) { 47 assertEq(a, 2); 48 assertEq(b, 8); 49 assertEq(c, 9); 50 assertEq(d, 10); 51 assertEq(e, 11); 52 assertEq(f, 42); 53 } 54 assertEq(f4.length, 0); 55 f4(undefined, [8, 9], {d: 10, e: 11});