Object-setProperty-02.js (759B)
1 // tests calling script functions via Debugger.Object.prototype.setProperty 2 // to see if they trigger debugger traps 3 "use strict"; 4 5 var global = newGlobal({newCompartment: true}); 6 var dbg = new Debugger(global); 7 dbg.onDebuggerStatement = onDebuggerStatement; 8 9 let obj; 10 global.eval(` 11 const obj = { 12 set prop(val) { 13 debugger; 14 this._prop = val; 15 } 16 }; 17 18 debugger; 19 `); 20 21 22 function onDebuggerStatement(frame) { 23 dbg.onDebuggerStatement = onDebuggerStatementGetter; 24 25 obj = frame.environment.getVariable("obj"); 26 } 27 28 let debuggerRan = false; 29 30 assertEq(obj.setProperty("prop", 42).return, true); 31 assertEq(obj.getProperty("_prop").return, 42); 32 assertEq(debuggerRan, true); 33 34 function onDebuggerStatementGetter(frame) { 35 debuggerRan = true; 36 }