1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/ecma_5/strict/eval-variable-environment.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +/* 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/licenses/publicdomain/ 1.7 + */ 1.8 + 1.9 +var code; 1.10 + 1.11 +code = 1.12 + "eval('var x = 2; typeof x');"; 1.13 +assertEq(testLenientAndStrict(code, returns("number"), returns("number")), 1.14 + true); 1.15 + 1.16 +code = 1.17 + "eval('\"use strict\"; var x = 2; typeof x');"; 1.18 +assertEq(testLenientAndStrict(code, returns("number"), returns("number")), 1.19 + true); 1.20 + 1.21 +code = 1.22 + "eval('var x = 2;'); " + 1.23 + "typeof x"; 1.24 +assertEq(testLenientAndStrict(code, returns("number"), returns("undefined")), 1.25 + true); 1.26 + 1.27 +code = 1.28 + "eval('\"use strict\"; var x = 2;'); " + 1.29 + "typeof x"; 1.30 +assertEq(testLenientAndStrict(code, returns("undefined"), returns("undefined")), 1.31 + true); 1.32 + 1.33 +code = 1.34 + "eval('\"use strict\"; var x = 2; typeof x'); " + 1.35 + "typeof x"; 1.36 +assertEq(testLenientAndStrict(code, returns("undefined"), returns("undefined")), 1.37 + true); 1.38 + 1.39 +code = 1.40 + "function test() " + 1.41 + "{ " + 1.42 + " eval('var x = 2;'); " + 1.43 + " return typeof x; " + 1.44 + "} " + 1.45 + "test();"; 1.46 +assertEq(testLenientAndStrict(code, returns("number"), returns("undefined")), 1.47 + true); 1.48 + 1.49 +code = 1.50 + "function test() " + 1.51 + "{ " + 1.52 + " 'use strict'; " + 1.53 + " eval('var x = 2;'); " + 1.54 + " return typeof x; " + 1.55 + "} " + 1.56 + "test();"; 1.57 +assertEq(testLenientAndStrict(code, returns("undefined"), returns("undefined")), 1.58 + true); 1.59 + 1.60 +code = 1.61 + "function test() " + 1.62 + "{ " + 1.63 + " eval('\"use strict\"; var x = 2;'); " + 1.64 + " return typeof x; " + 1.65 + "} " + 1.66 + "test();"; 1.67 +assertEq(testLenientAndStrict(code, returns("undefined"), returns("undefined")), 1.68 + true); 1.69 + 1.70 +reportCompare(true, true);