michael@0: // Any copyright is dedicated to the Public Domain. michael@0: // http://creativecommons.org/licenses/publicdomain/ michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: var BUGNUMBER = 604504; michael@0: var summary = "eval called from a native function is indirect"; michael@0: michael@0: print(BUGNUMBER + ": " + summary); michael@0: michael@0: /************** michael@0: * BEGIN TEST * michael@0: **************/ michael@0: michael@0: var originalEval = eval; michael@0: michael@0: var global = this; michael@0: var directCheckCode = "this === global"; michael@0: michael@0: function testArrayGeneric() michael@0: { michael@0: var global = "psych!"; michael@0: var eval = Array.map; michael@0: michael@0: var mapped = eval([directCheckCode], originalEval); michael@0: assertEq(mapped[0], true); michael@0: } michael@0: michael@0: function testStringGeneric() michael@0: { michael@0: var global = "psych!"; michael@0: var eval = String.replace; michael@0: michael@0: var newString = eval(directCheckCode, directCheckCode, originalEval); michael@0: assertEq(newString, "true"); michael@0: } michael@0: testStringGeneric(); michael@0: michael@0: /******************************************************************************/ michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("All tests passed!");