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]);