michael@0: // env.find() finds noneumerable properties in with statements. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = Debugger(g); michael@0: var hits = 0; michael@0: g.h = function () { michael@0: var frame = dbg.getNewestFrame(); michael@0: var target = frame.eval("obj").return; michael@0: var env = frame.environment.find("PI"); michael@0: assertEq(env.object, target); michael@0: hits++; michael@0: }; michael@0: michael@0: g.obj = g.Math; michael@0: g.eval("with (obj) h();"); michael@0: g.eval("with (Math) { let x = 12; h(); }"); michael@0: g.eval("obj = {};\n" + michael@0: "Object.defineProperty(obj, 'PI', {enumerable: false, value: 'Marlowe'});\n" + michael@0: "with (obj) h();\n"); michael@0: assertEq(hits, 3);