|
1 // Any copyright is dedicated to the Public Domain. |
|
2 // http://creativecommons.org/licenses/publicdomain/ |
|
3 |
|
4 //----------------------------------------------------------------------------- |
|
5 var BUGNUMBER = 604504; |
|
6 var summary = "eval called from a native function is indirect"; |
|
7 |
|
8 print(BUGNUMBER + ": " + summary); |
|
9 |
|
10 /************** |
|
11 * BEGIN TEST * |
|
12 **************/ |
|
13 |
|
14 var originalEval = eval; |
|
15 |
|
16 var global = this; |
|
17 var directCheckCode = "this === global"; |
|
18 |
|
19 function testArrayGeneric() |
|
20 { |
|
21 var global = "psych!"; |
|
22 var eval = Array.map; |
|
23 |
|
24 var mapped = eval([directCheckCode], originalEval); |
|
25 assertEq(mapped[0], true); |
|
26 } |
|
27 |
|
28 function testStringGeneric() |
|
29 { |
|
30 var global = "psych!"; |
|
31 var eval = String.replace; |
|
32 |
|
33 var newString = eval(directCheckCode, directCheckCode, originalEval); |
|
34 assertEq(newString, "true"); |
|
35 } |
|
36 testStringGeneric(); |
|
37 |
|
38 /******************************************************************************/ |
|
39 |
|
40 if (typeof reportCompare === "function") |
|
41 reportCompare(true, true); |
|
42 |
|
43 print("All tests passed!"); |