js/src/jit-test/tests/basic/testDynamicLookup.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/basic/testDynamicLookup.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,73 @@
     1.4 +(function() { var x = 2; eval("assertEq(x, 2)"); })();
     1.5 +(function() { var x = 2; (function() { assertEq(x, 2) })() })();
     1.6 +(function() { var x = 2; (function() { eval("assertEq(x, 2)") })() })();
     1.7 +(function() { var x = 2; (function() { (function() { assertEq(x, 2) })()})() })();
     1.8 +(function() { var x = 2; (function() { (function() { eval("assertEq(x, 2)") })()})() })();
     1.9 +
    1.10 +(function() { var x = 2; with({}) { assertEq(x, 2) } })();
    1.11 +(function() { var x = 2; with({}) { (function() { assertEq(x, 2) })() } })();
    1.12 +(function() { var x = 3; with({x:2}) { assertEq(x, 2) } })();
    1.13 +(function() { var x = 3; with({x:2}) { (function() { assertEq(x, 2) })() } })();
    1.14 +(function() { var x = 2; (function() { with({}) { assertEq(x, 2) } })() })();
    1.15 +(function() { var x = 2; (function() { with({}) { (function() { assertEq(x, 2) })() } })() })();
    1.16 +(function() { var x = 3; (function() { with({x:2}) { assertEq(x, 2) } })() })();
    1.17 +(function() { var x = 3; (function() { with({x:2}) { (function() { assertEq(x, 2) })() } })() })();
    1.18 +
    1.19 +(function() { if (Math) function x() {}; assertEq(typeof x, "function") })();
    1.20 +(function() { if (Math) function x() {}; eval('assertEq(typeof x, "function")') })();
    1.21 +(function() { if (Math) function x() {}; (function() { assertEq(typeof x, "function") })() })();
    1.22 +(function() { if (Math) function x() {}; (function() { eval('assertEq(typeof x, "function")') })() })();
    1.23 +
    1.24 +(function() { eval("var x = 2"); assertEq(x, 2) })();
    1.25 +(function() { eval("var x = 2"); (function() { assertEq(x, 2) })() })();
    1.26 +(function() { eval("var x = 2"); (function() { (function() { assertEq(x, 2) })() })() })();
    1.27 +
    1.28 +(function() { var x = 2; (function() { eval('var y = 3'); assertEq(x, 2) })() })();
    1.29 +(function() { var x = 2; (function() { eval('var y = 3'); (function() { assertEq(x, 2) })() })() })();
    1.30 +
    1.31 +(function() { var x = 3; (function() { eval('var x = 2'); assertEq(x, 2) })() })();
    1.32 +(function() { var x = 3; (function() { eval('var x = 2'); (function() { assertEq(x, 2) })() })() })();
    1.33 +
    1.34 +(function() { var x = 2; eval("eval('assertEq(x, 2)')") })();
    1.35 +(function() { var x = 2; (function() { eval("eval('assertEq(x, 2)')") })() })();
    1.36 +(function() { var x = 2; eval("(function() { eval('assertEq(x, 2)') })()") })();
    1.37 +(function() { var x = 2; (function() { eval("(function() { eval('assertEq(x, 2)') })()") })() })();
    1.38 +(function() { var x = 2; (function() { eval("(function() { eval('(function() { assertEq(x, 2) })()') })()") })() })();
    1.39 +
    1.40 +(function() { var [x] = [2]; eval('assertEq(x, 2)') })();
    1.41 +(function() { var [x] = [2]; (function() { assertEq(x, 2) })() })();
    1.42 +(function() { var [x] = [2]; (function() { eval('assertEq(x, 2)') })() })();
    1.43 +(function() { for (var [x] = [2];;) { return (function() { return assertEq(x, 2); })() } })();
    1.44 +(function() { for (var [x] = [2];;) { return (function() { return eval('assertEq(x, 2)'); })() } })();
    1.45 +(function() { let ([x] = [2]) { eval('assertEq(x, 2)') } })();
    1.46 +(function() { let ([x] = [2]) { (function() { assertEq(x, 2) })() } })();
    1.47 +(function() { let ([x] = [2]) { (function() { eval('assertEq(x, 2)') })() } })();
    1.48 +
    1.49 +(function() { var {y:x} = {y:2}; eval('assertEq(x, 2)') })();
    1.50 +(function() { var {y:x} = {y:2}; (function() { assertEq(x, 2) })() })();
    1.51 +(function() { var {y:x} = {y:2}; (function() { eval('assertEq(x, 2)') })() })();
    1.52 +(function() { for (var {y:x} = {y:2};;) { return (function() { return assertEq(x, 2); })() } })();
    1.53 +(function() { for (var {y:x} = {y:2};;) { return (function() { return eval('assertEq(x, 2)'); })() } })();
    1.54 +(function() { let ({y:x} = {y:2}) { eval('assertEq(x, 2)') } })();
    1.55 +(function() { let ({y:x} = {y:2}) { (function() { assertEq(x, 2) })() } })();
    1.56 +(function() { let ({y:x} = {y:2}) { (function() { eval('assertEq(x, 2)') })() } })();
    1.57 +
    1.58 +(function([x]) { eval('assertEq(x, 2)') })([2]);
    1.59 +(function([x]) { (function() { assertEq(x, 2) })() })([2]);
    1.60 +(function([x]) { (function() { eval('assertEq(x, 2)') })() })([2]);
    1.61 +
    1.62 +(function f() { assertEq(f.length, 0) })();
    1.63 +(function f() { eval('assertEq(f.length, 0)') })();
    1.64 +(function f() { (function f(x) { eval('assertEq(f.length, 1)') })() })();
    1.65 +(function f() { eval("(function f(x) { eval('assertEq(f.length, 1)') })()") })();
    1.66 +
    1.67 +(function f() { arguments = 3; function arguments() {}; assertEq(arguments, 3) })();
    1.68 +(function f() { function arguments() {}; arguments = 3; assertEq(arguments, 3) })();
    1.69 +(function f() { var arguments = 3; function arguments() {}; assertEq(arguments, 3) })();
    1.70 +(function f() { function arguments() {}; var arguments = 3; assertEq(arguments, 3) })();
    1.71 +
    1.72 +function f1() { assertEq(typeof f1, "function") }; f1();
    1.73 +with({}) { (function() { assertEq(typeof f1, "function") })() }
    1.74 +if (Math)
    1.75 +    function f2(x) {}
    1.76 +assertEq(f2.length, 1);

mercurial