js/src/tests/ecma_5/Global/eval-02.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:1dc9d9c3ae8d
1 // Any copyright is dedicated to the Public Domain.
2 // http://creativecommons.org/licenses/publicdomain/
3
4 var a = 9;
5
6 function directArg(eval, s) {
7 var a = 1;
8 return eval(s);
9 }
10
11 function directVar(f, s) {
12 var eval = f;
13 var a = 1;
14 return eval(s);
15 }
16
17 function directWith(obj, s) {
18 var f;
19 with (obj) {
20 f = function () {
21 var a = 1;
22 return eval(s);
23 };
24 }
25 return f();
26 }
27
28 // direct eval, even though 'eval' is an argument
29 assertEq(directArg(eval, 'a+1'), 2);
30
31 // direct eval, even though 'eval' is a var
32 assertEq(directVar(eval, 'a+1'), 2);
33
34 // direct eval, even though 'eval' is found via a with block
35 assertEq(directWith(this, 'a+1'), 2);
36 assertEq(directWith({eval: eval, a: -1000}, 'a+1'), 2);
37
38 reportCompare(0, 0);

mercurial