Environment-find-03.js (585B)
1 // env.find() finds nonenumerable properties in with statements. 2 3 var g = newGlobal({newCompartment: true}); 4 var dbg = Debugger(g); 5 var hits = 0; 6 g.h = function () { 7 var frame = dbg.getNewestFrame(); 8 var target = frame.eval("obj").return; 9 var env = frame.environment.find("PI"); 10 assertEq(env.object, target); 11 hits++; 12 }; 13 14 g.obj = g.Math; 15 g.eval("with (obj) h();"); 16 g.eval("with (Math) { let x = 12; h(); }"); 17 g.eval("obj = {};\n" + 18 "Object.defineProperty(obj, 'PI', {enumerable: false, value: 'Marlowe'});\n" + 19 "with (obj) h();\n"); 20 assertEq(hits, 3);