js/src/jit-test/tests/arguments/defaults-evaluation-order.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/arguments/defaults-evaluation-order.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,27 @@
     1.4 +function f1(a, bIs, cIs, dIs, b=a, c=d, d=5) {
     1.5 +    assertEq(a, 1);
     1.6 +    assertEq(b, bIs);
     1.7 +    assertEq(c, cIs);
     1.8 +    assertEq(d, dIs);
     1.9 +}
    1.10 +f1(1, 1, undefined, 5);
    1.11 +f1(1, 42, undefined, 5, 42);
    1.12 +f1(1, 42, 43, 5, 42, 43);
    1.13 +f1(1, 42, 43, 44, 42, 43, 44);
    1.14 +function f2(a=[]) { return a; }
    1.15 +assertEq(f2() !== f2(), true);
    1.16 +function f3(a=function () {}) { return a; }
    1.17 +assertEq(f3() !== f3(), true);
    1.18 +function f4(a=Date) { return a; }
    1.19 +assertEq(f4(), Date);
    1.20 +Date = 0;
    1.21 +assertEq(f4(), 0);
    1.22 +function f5(x=FAIL()) {};  // don't throw
    1.23 +var n = 0;
    1.24 +function f6(a=n++) {}
    1.25 +assertEq(n, 0);
    1.26 +function f7([a, b], A=a, B=b) {
    1.27 +    assertEq(A, a);
    1.28 +    assertEq(B, b);
    1.29 +}
    1.30 +f7([0, 1]);

mercurial