| Index: test/debugger/test-api.js
|
| diff --git a/test/debugger/test-api.js b/test/debugger/test-api.js
|
| index c81c08e93ac9515cdc2e16399fb60f574fa7b73f..5bd987db8f648b87932fa6006a1022680d8ca868 100644
|
| --- a/test/debugger/test-api.js
|
| +++ b/test/debugger/test-api.js
|
| @@ -70,6 +70,11 @@ class DebugWrapper {
|
| BreakPosition: 1
|
| };
|
|
|
| + // The different script break point types.
|
| + this.ScriptBreakPointType = { ScriptId: 0,
|
| + ScriptName: 1,
|
| + ScriptRegExp: 2 };
|
| +
|
| // Store the current script id so we can skip corresponding break events.
|
| this.thisScriptId = %FunctionGetScriptId(receive);
|
|
|
| @@ -141,8 +146,37 @@ class DebugWrapper {
|
| params.condition = opt_condition;
|
| }
|
|
|
| - const {msgid, msg} = this.createMessage(
|
| - "Debugger.setBreakpoint", params);
|
| + const {msgid, msg} = this.createMessage("Debugger.setBreakpoint", params);
|
| + this.sendMessage(msg);
|
| +
|
| + const reply = this.takeReplyChecked(msgid);
|
| + assertTrue(reply.result !== undefined);
|
| + const breakid = reply.result.breakpointId;
|
| + assertTrue(breakid !== undefined);
|
| +
|
| + return breakid;
|
| + }
|
| +
|
| + setScriptBreakPoint(type, scriptid, opt_line, opt_column, opt_condition) {
|
| + // Only sets by script id are supported for now.
|
| + assertEquals(this.ScriptBreakPointType.ScriptId, type);
|
| + return this.setScriptBreakPointById(scriptid, opt_line, opt_column,
|
| + opt_condition);
|
| + }
|
| +
|
| + setScriptBreakPointById(scriptid, opt_line, opt_column, opt_condition) {
|
| + const loc = %ScriptLocationFromLine2(scriptid, opt_line, opt_column, 0);
|
| +
|
| + const params = { location :
|
| + { scriptId : scriptid.toString(),
|
| + lineNumber : loc.line,
|
| + columnNumber : loc.column,
|
| + }};
|
| + if (!!opt_condition) {
|
| + params.condition = opt_condition;
|
| + }
|
| +
|
| + const {msgid, msg} = this.createMessage("Debugger.setBreakpoint", params);
|
| this.sendMessage(msg);
|
|
|
| const reply = this.takeReplyChecked(msgid);
|
| @@ -247,6 +281,11 @@ class DebugWrapper {
|
| this.takeReplyChecked(msgid);
|
| }
|
|
|
| + get LiveEdit() {
|
| + const debugContext = %GetDebugContext();
|
| + return debugContext.Debug.LiveEdit;
|
| + }
|
| +
|
| // --- Internal methods. -----------------------------------------------------
|
|
|
| getNextMessageId() {
|
| @@ -463,7 +502,6 @@ class DebugWrapper {
|
| return { value : () => value,
|
| isUndefined : () => obj.type == "undefined"
|
| };
|
| -
|
| }
|
|
|
| evaluateOnCallFrame(frame, expr) {
|
| @@ -480,6 +518,14 @@ class DebugWrapper {
|
| return this.reconstructRemoteObject(result);
|
| }
|
|
|
| + execStateFrameRestart(frame) {
|
| + const frameid = frame.callFrameId;
|
| + const {msgid, msg} = this.createMessage(
|
| + "Debugger.restartFrame", { callFrameId : frameid });
|
| + this.sendMessage(msg);
|
| + this.takeReplyChecked(msgid);
|
| + }
|
| +
|
| execStateFrame(frame) {
|
| const scriptid = parseInt(frame.location.scriptId);
|
| const line = frame.location.lineNumber;
|
| @@ -504,6 +550,7 @@ class DebugWrapper {
|
| localCount : () => this.execStateFrameLocalCount(frame),
|
| localName : (ix) => this.execStateFrameLocalName(frame, ix),
|
| localValue: (ix) => this.execStateFrameLocalValue(frame, ix),
|
| + restart : () => this.execStateFrameRestart(frame),
|
| scopeCount : () => frame.scopeChain.length,
|
| scope : (index) => this.execStateScope(frame, index),
|
| allScopes : allScopes.bind(this)
|
|
|