Index: src/debug/debug.js |
diff --git a/src/debug/debug.js b/src/debug/debug.js |
index 991af118a2c0582af1a8f6598acad6fa39959f84..011e73080548ff3ea0012042f692e7210503d4f3 100644 |
--- a/src/debug/debug.js |
+++ b/src/debug/debug.js |
@@ -1,8 +1,34 @@ |
// Copyright 2012 the V8 project authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+ |
+(function (global, utils) { |
"use strict"; |
+// ---------------------------------------------------------------------------- |
+// Imports |
+ |
+var FrameMirror = global.FrameMirror; |
+var GlobalArray = global.Array; |
+var GlobalRegExp = global.RegExp; |
+var IsNaN = global.isNaN; |
+var JSONParse = global.JSON.parse; |
+var JSONStringify = global.JSON.stringify; |
+var LookupMirror = global.LookupMirror; |
+var MakeMirror = global.MakeMirror; |
+var MakeMirrorSerializer = global.MakeMirrorSerializer; |
+var MathMin = global.Math.min; |
+var Mirror = global.Mirror; |
+var MirrorType; |
+var ParseInt = global.parseInt; |
+var ValueMirror = global.ValueMirror; |
+ |
+utils.Import(function(from) { |
+ MirrorType = from.MirrorType; |
+}); |
+ |
+//---------------------------------------------------------------------------- |
+ |
// Default number of frames to include in the response to backtrace request. |
var kDefaultBacktraceLength = 10; |
@@ -202,8 +228,7 @@ BreakPoint.prototype.isTriggered = function(exec_state) { |
try { |
var mirror = exec_state.frame(0).evaluate(this.condition()); |
// If no sensible mirror or non true value break point not triggered. |
- if (!(mirror instanceof ValueMirror) || |
- !builtins.$toBoolean(mirror.value_)) { |
+ if (!(mirror instanceof ValueMirror) || !$toBoolean(mirror.value_)) { |
return false; |
} |
} catch (e) { |
@@ -247,9 +272,9 @@ function ScriptBreakPoint(type, script_id_or_name, opt_line, opt_column, |
} else if (type == Debug.ScriptBreakPointType.ScriptName) { |
this.script_name_ = script_id_or_name; |
} else if (type == Debug.ScriptBreakPointType.ScriptRegExp) { |
- this.script_regexp_object_ = new RegExp(script_id_or_name); |
+ this.script_regexp_object_ = new GlobalRegExp(script_id_or_name); |
} else { |
- throw new Error("Unexpected breakpoint type " + type); |
+ throw MakeError(kDebugger, "Unexpected breakpoint type " + type); |
} |
this.line_ = opt_line || 0; |
this.column_ = opt_column; |
@@ -396,7 +421,7 @@ ScriptBreakPoint.prototype.matchesScript = function(script) { |
} else if (this.type_ == Debug.ScriptBreakPointType.ScriptRegExp) { |
return this.script_regexp_object_.test(script.nameOrSourceURL()); |
} else { |
- throw new Error("Unexpected breakpoint type " + this.type_); |
+ throw MakeError(kDebugger, "Unexpected breakpoint type " + this.type_); |
} |
} |
}; |
@@ -414,7 +439,7 @@ ScriptBreakPoint.prototype.set = function (script) { |
// Allocate array for caching the columns where the actual source starts. |
if (!script.sourceColumnStart_) { |
- script.sourceColumnStart_ = new Array(script.lineCount()); |
+ script.sourceColumnStart_ = new GlobalArray(script.lineCount()); |
} |
// Fill cache if needed and get column where the actual source starts. |
@@ -493,14 +518,14 @@ function GetScriptBreakPoints(script) { |
Debug.setListener = function(listener, opt_data) { |
if (!IS_FUNCTION(listener) && !IS_UNDEFINED(listener) && !IS_NULL(listener)) { |
- throw new Error('Parameters have wrong types.'); |
+ throw MakeTypeError(kDebuggerType); |
} |
%SetDebugEventListener(listener, opt_data); |
}; |
Debug.breakLocations = function(f, opt_position_aligment) { |
- if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.'); |
+ if (!IS_FUNCTION(f)) throw MakeTypeError(kDebuggerType); |
var position_aligment = IS_UNDEFINED(opt_position_aligment) |
? Debug.BreakPositionAlignment.Statement : opt_position_aligment; |
return %GetBreakLocations(f, position_aligment); |
@@ -533,7 +558,7 @@ Debug.findScript = function(func_or_script_name) { |
if (result_count == 1) { |
return last_result; |
} else { |
- return undefined; |
+ return UNDEFINED; |
} |
} else { |
return %GetScript(func_or_script_name); |
@@ -550,13 +575,13 @@ Debug.scriptSource = function(func_or_script_name) { |
Debug.source = function(f) { |
- if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.'); |
+ if (!IS_FUNCTION(f)) throw MakeTypeError(kDebuggerType); |
return %FunctionGetSourceCode(f); |
}; |
Debug.sourcePosition = function(f) { |
- if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.'); |
+ if (!IS_FUNCTION(f)) throw MakeTypeError(kDebuggerType); |
return %FunctionGetScriptSourcePosition(f); |
}; |
@@ -610,10 +635,10 @@ Debug.findBreakPointActualLocations = function(break_point_number) { |
}; |
Debug.setBreakPoint = function(func, opt_line, opt_column, opt_condition) { |
- if (!IS_FUNCTION(func)) throw new Error('Parameters have wrong types.'); |
+ if (!IS_FUNCTION(func)) throw MakeTypeError(kDebuggerType); |
// Break points in API functions are not supported. |
if (%FunctionIsAPIFunction(func)) { |
- throw new Error('Cannot set break point in native code.'); |
+ throw MakeError(kDebugger, 'Cannot set break point in native code.'); |
} |
// Find source position relative to start of the function |
var break_position = |
@@ -623,7 +648,7 @@ Debug.setBreakPoint = function(func, opt_line, opt_column, opt_condition) { |
var script = %FunctionGetScript(func); |
// Break in builtin JavaScript code is not supported. |
if (script.type == Debug.ScriptType.Native) { |
- throw new Error('Cannot set break point in native code.'); |
+ throw MakeError(kDebugger, 'Cannot set break point in native code.'); |
} |
// If the script for the function has a name convert this to a script break |
// point. |
@@ -700,9 +725,7 @@ Debug.changeBreakPointCondition = function(break_point_number, condition) { |
Debug.changeBreakPointIgnoreCount = function(break_point_number, ignoreCount) { |
- if (ignoreCount < 0) { |
- throw new Error('Invalid argument'); |
- } |
+ if (ignoreCount < 0) throw MakeError(kDebugger, 'Invalid argument'); |
var break_point = this.findBreakPoint(break_point_number, false); |
break_point.setIgnoreCount(ignoreCount); |
}; |
@@ -714,9 +737,7 @@ Debug.clearBreakPoint = function(break_point_number) { |
return %ClearBreakPoint(break_point); |
} else { |
break_point = this.findScriptBreakPoint(break_point_number, true); |
- if (!break_point) { |
- throw new Error('Invalid breakpoint'); |
- } |
+ if (!break_point) throw MakeError(kDebugger, 'Invalid breakpoint'); |
} |
}; |
@@ -836,9 +857,7 @@ Debug.changeScriptBreakPointCondition = function( |
Debug.changeScriptBreakPointIgnoreCount = function( |
break_point_number, ignoreCount) { |
- if (ignoreCount < 0) { |
- throw new Error('Invalid argument'); |
- } |
+ if (ignoreCount < 0) throw MakeError(kDebugger, 'Invalid argument'); |
var script_break_point = this.findScriptBreakPoint(break_point_number, false); |
script_break_point.setIgnoreCount(ignoreCount); |
}; |
@@ -878,7 +897,7 @@ Debug.isBreakOnUncaughtException = function() { |
}; |
Debug.showBreakPoints = function(f, full, opt_position_alignment) { |
- if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.'); |
+ if (!IS_FUNCTION(f)) throw MakeError(kDebuggerType); |
var source = full ? this.scriptSource(f) : this.source(f); |
var offset = full ? this.sourcePosition(f) : 0; |
var locations = this.breakLocations(f, opt_position_alignment); |
@@ -925,8 +944,8 @@ function ExecutionState(break_id) { |
ExecutionState.prototype.prepareStep = function(opt_action, opt_count, |
opt_callframe) { |
var action = Debug.StepAction.StepIn; |
- if (!IS_UNDEFINED(opt_action)) action = builtins.$toNumber(opt_action); |
- var count = opt_count ? builtins.$toNumber(opt_count) : 1; |
+ if (!IS_UNDEFINED(opt_action)) action = $toNumber(opt_action); |
+ var count = opt_count ? $toNumber(opt_count) : 1; |
var callFrameId = 0; |
if (!IS_UNDEFINED(opt_callframe)) { |
callFrameId = opt_callframe.details_.frameId(); |
@@ -938,7 +957,7 @@ ExecutionState.prototype.prepareStep = function(opt_action, opt_count, |
ExecutionState.prototype.evaluateGlobal = function(source, disable_break, |
opt_additional_context) { |
return MakeMirror(%DebugEvaluateGlobal(this.break_id, source, |
- Boolean(disable_break), |
+ $toBoolean(disable_break), |
opt_additional_context)); |
}; |
@@ -954,14 +973,16 @@ ExecutionState.prototype.frame = function(opt_index) { |
// If no index supplied return the selected frame. |
if (opt_index == null) opt_index = this.selected_frame; |
if (opt_index < 0 || opt_index >= this.frameCount()) { |
- throw new Error('Illegal frame index.'); |
+ throw MakeTypeError(kDebuggerFrame); |
} |
return new FrameMirror(this.break_id, opt_index); |
}; |
ExecutionState.prototype.setSelectedFrame = function(index) { |
- var i = builtins.$toNumber(index); |
- if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.'); |
+ var i = $toNumber(index); |
+ if (i < 0 || i >= this.frameCount()) { |
+ throw MakeTypeError(kDebuggerFrame); |
+ } |
this.selected_frame = i; |
}; |
@@ -1048,7 +1069,7 @@ BreakEvent.prototype.toJSONProtocol = function() { |
o.body.breakpoints.push(number); |
} |
} |
- return JSON.stringify(ObjectToProtocolObject_(o)); |
+ return JSONStringify(ObjectToProtocolObject_(o)); |
}; |
@@ -1277,7 +1298,7 @@ function ProtocolMessage(request) { |
} |
this.success = true; |
// Handler may set this field to control debugger state. |
- this.running = undefined; |
+ this.running = UNDEFINED; |
} |
@@ -1323,7 +1344,7 @@ ProtocolMessage.prototype.toJSONProtocol = function() { |
var serializer = MakeMirrorSerializer(true, this.options_); |
if (this.body instanceof Mirror) { |
bodyJson = serializer.serializeValue(this.body); |
- } else if (this.body instanceof Array) { |
+ } else if (this.body instanceof GlobalArray) { |
bodyJson = []; |
for (var i = 0; i < this.body.length; i++) { |
if (this.body[i] instanceof Mirror) { |
@@ -1345,7 +1366,7 @@ ProtocolMessage.prototype.toJSONProtocol = function() { |
json.error_details = this.error_details; |
} |
json.running = this.running; |
- return JSON.stringify(json); |
+ return JSONStringify(json); |
}; |
@@ -1361,21 +1382,22 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
try { |
try { |
// Convert the JSON string to an object. |
- request = JSON.parse(json_request); |
+ request = JSONParse(json_request); |
// Create an initial response. |
response = this.createResponse(request); |
if (!request.type) { |
- throw new Error('Type not specified'); |
+ throw MakeError(kDebugger, 'Type not specified'); |
} |
if (request.type != 'request') { |
- throw new Error("Illegal type '" + request.type + "' in request"); |
+ throw MakeError(kDebugger, |
+ "Illegal type '" + request.type + "' in request"); |
} |
if (!request.command) { |
- throw new Error('Command not specified'); |
+ throw MakeError(kDebugger, 'Command not specified'); |
} |
if (request.arguments) { |
@@ -1395,7 +1417,8 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
if (IS_FUNCTION(handler)) { |
%_CallFunction(this, request, response, handler); |
} else { |
- throw new Error('Unknown command "' + request.command + '" in request'); |
+ throw MakeError(kDebugger, |
+ 'Unknown command "' + request.command + '" in request'); |
} |
} catch (e) { |
// If there is no response object created one (without command). |
@@ -1403,7 +1426,7 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
response = this.createResponse(); |
} |
response.success = false; |
- response.message = builtins.$toString(e); |
+ response.message = $toString(e); |
} |
// Return the response as a JSON encoded string. |
@@ -1420,7 +1443,7 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
'"request_seq":' + request.seq + ',' + |
'"type":"response",' + |
'"success":false,' + |
- '"message":"Internal error: ' + builtins.$toString(e) + '"}'; |
+ '"message":"Internal error: ' + $toString(e) + '"}'; |
} |
} catch (e) { |
// Failed in one of the catch blocks above - most generic error. |
@@ -1441,9 +1464,10 @@ DebugCommandProcessor.prototype.continueRequest_ = function(request, response) { |
// Get the stepcount argument if any. |
if (stepcount) { |
- count = builtins.$toNumber(stepcount); |
+ count = $toNumber(stepcount); |
if (count < 0) { |
- throw new Error('Invalid stepcount argument "' + stepcount + '".'); |
+ throw MakeError(kDebugger, |
+ 'Invalid stepcount argument "' + stepcount + '".'); |
} |
} |
@@ -1458,7 +1482,8 @@ DebugCommandProcessor.prototype.continueRequest_ = function(request, response) { |
} else if (stepaction == 'out') { |
action = Debug.StepAction.StepOut; |
} else { |
- throw new Error('Invalid stepaction argument "' + stepaction + '".'); |
+ throw MakeError(kDebugger, |
+ 'Invalid stepaction argument "' + stepaction + '".'); |
} |
} |
@@ -1514,7 +1539,7 @@ DebugCommandProcessor.prototype.setBreakPointRequest_ = |
// Find the function through a global evaluate. |
f = this.exec_state_.evaluateGlobal(target).value(); |
} catch (e) { |
- response.failed('Error: "' + builtins.$toString(e) + |
+ response.failed('Error: "' + $toString(e) + |
'" evaluating "' + target + '"'); |
return; |
} |
@@ -1527,7 +1552,7 @@ DebugCommandProcessor.prototype.setBreakPointRequest_ = |
break_point_number = Debug.setBreakPoint(f, line, column, condition); |
} else if (type == 'handle') { |
// Find the object pointed by the specified handle. |
- var handle = parseInt(target, 10); |
+ var handle = ParseInt(target, 10); |
var mirror = LookupMirror(handle); |
if (!mirror) { |
return response.failed('Object #' + handle + '# not found'); |
@@ -1581,8 +1606,8 @@ DebugCommandProcessor.prototype.setBreakPointRequest_ = |
response.body.type = 'scriptRegExp'; |
response.body.script_regexp = break_point.script_regexp_object().source; |
} else { |
- throw new Error("Internal error: Unexpected breakpoint type: " + |
- break_point.type()); |
+ throw MakeError(kDebugger, |
+ "Unexpected breakpoint type: " + break_point.type()); |
} |
response.body.line = break_point.line(); |
response.body.column = break_point.column(); |
@@ -1603,7 +1628,7 @@ DebugCommandProcessor.prototype.changeBreakPointRequest_ = function( |
} |
// Pull out arguments. |
- var break_point = builtins.$toNumber(request.arguments.breakpoint); |
+ var break_point = $toNumber(request.arguments.breakpoint); |
var enabled = request.arguments.enabled; |
var condition = request.arguments.condition; |
var ignoreCount = request.arguments.ignoreCount; |
@@ -1679,7 +1704,7 @@ DebugCommandProcessor.prototype.clearBreakPointRequest_ = function( |
} |
// Pull out arguments. |
- var break_point = builtins.$toNumber(request.arguments.breakpoint); |
+ var break_point = $toNumber(request.arguments.breakpoint); |
// Check for legal arguments. |
if (!break_point) { |
@@ -1723,8 +1748,8 @@ DebugCommandProcessor.prototype.listBreakpointsRequest_ = function( |
description.type = 'scriptRegExp'; |
description.script_regexp = break_point.script_regexp_object().source; |
} else { |
- throw new Error("Internal error: Unexpected breakpoint type: " + |
- break_point.type()); |
+ throw MakeError(kDebugger, |
+ "Unexpected breakpoint type: " + break_point.type()); |
} |
array.push(description); |
} |
@@ -1825,7 +1850,7 @@ DebugCommandProcessor.prototype.backtraceRequest_ = function( |
} |
// Adjust the index. |
- to_index = Math.min(total_frames, to_index); |
+ to_index = MathMin(total_frames, to_index); |
if (to_index <= from_index) { |
var error = 'Invalid frame range'; |
@@ -1872,7 +1897,7 @@ DebugCommandProcessor.prototype.resolveFrameFromScopeDescription_ = |
if (scope_description && !IS_UNDEFINED(scope_description.frameNumber)) { |
var frame_index = scope_description.frameNumber; |
if (frame_index < 0 || this.exec_state_.frameCount() <= frame_index) { |
- throw new Error('Invalid frame number'); |
+ throw MakeTypeError(kDebuggerFrame); |
} |
return this.exec_state_.frame(frame_index); |
} else { |
@@ -1888,20 +1913,21 @@ DebugCommandProcessor.prototype.resolveScopeHolder_ = |
function(scope_description) { |
if (scope_description && "functionHandle" in scope_description) { |
if (!IS_NUMBER(scope_description.functionHandle)) { |
- throw new Error('Function handle must be a number'); |
+ throw MakeError(kDebugger, 'Function handle must be a number'); |
} |
var function_mirror = LookupMirror(scope_description.functionHandle); |
if (!function_mirror) { |
- throw new Error('Failed to find function object by handle'); |
+ throw MakeError(kDebugger, 'Failed to find function object by handle'); |
} |
if (!function_mirror.isFunction()) { |
- throw new Error('Value of non-function type is found by handle'); |
+ throw MakeError(kDebugger, |
+ 'Value of non-function type is found by handle'); |
} |
return function_mirror; |
} else { |
// No frames no scopes. |
if (this.exec_state_.frameCount() == 0) { |
- throw new Error('No scopes'); |
+ throw MakeError(kDebugger, 'No scopes'); |
} |
// Get the frame for which the scopes are requested. |
@@ -1936,7 +1962,7 @@ DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) { |
// With no scope argument just return top scope. |
var scope_index = 0; |
if (request.arguments && !IS_UNDEFINED(request.arguments.number)) { |
- scope_index = builtins.$toNumber(request.arguments.number); |
+ scope_index = $toNumber(request.arguments.number); |
if (scope_index < 0 || scope_holder.scopeCount() <= scope_index) { |
return response.failed('Invalid scope number'); |
} |
@@ -1954,28 +1980,28 @@ DebugCommandProcessor.resolveValue_ = function(value_description) { |
if ("handle" in value_description) { |
var value_mirror = LookupMirror(value_description.handle); |
if (!value_mirror) { |
- throw new Error("Failed to resolve value by handle, ' #" + |
- value_description.handle + "# not found"); |
+ throw MakeError(kDebugger, "Failed to resolve value by handle, ' #" + |
+ value_description.handle + "# not found"); |
} |
return value_mirror.value(); |
} else if ("stringDescription" in value_description) { |
- if (value_description.type == BOOLEAN_TYPE) { |
- return Boolean(value_description.stringDescription); |
- } else if (value_description.type == NUMBER_TYPE) { |
- return Number(value_description.stringDescription); |
- } if (value_description.type == STRING_TYPE) { |
- return String(value_description.stringDescription); |
+ if (value_description.type == MirrorType.BOOLEAN_TYPE) { |
+ return $toBoolean(value_description.stringDescription); |
+ } else if (value_description.type == MirrorType.NUMBER_TYPE) { |
+ return $toNumber(value_description.stringDescription); |
+ } if (value_description.type == MirrorType.STRING_TYPE) { |
+ return $toString(value_description.stringDescription); |
} else { |
- throw new Error("Unknown type"); |
+ throw MakeError(kDebugger, "Unknown type"); |
} |
} else if ("value" in value_description) { |
return value_description.value; |
- } else if (value_description.type == UNDEFINED_TYPE) { |
+ } else if (value_description.type == MirrorType.UNDEFINED_TYPE) { |
return UNDEFINED; |
- } else if (value_description.type == NULL_TYPE) { |
+ } else if (value_description.type == MirrorType.NULL_TYPE) { |
return null; |
} else { |
- throw new Error("Failed to parse value description"); |
+ throw MakeError(kDebugger, "Failed to parse value description"); |
} |
}; |
@@ -2000,7 +2026,7 @@ DebugCommandProcessor.prototype.setVariableValueRequest_ = |
if (IS_UNDEFINED(scope_description.number)) { |
response.failed('Missing scope number'); |
} |
- var scope_index = builtins.$toNumber(scope_description.number); |
+ var scope_index = $toNumber(scope_description.number); |
var scope = scope_holder.scope(scope_index); |
@@ -2032,7 +2058,7 @@ DebugCommandProcessor.prototype.evaluateRequest_ = function(request, response) { |
// The expression argument could be an integer so we convert it to a |
// string. |
try { |
- expression = String(expression); |
+ expression = $toString(expression); |
} catch(e) { |
return response.failed('Failed to convert expression argument to string'); |
} |
@@ -2062,7 +2088,7 @@ DebugCommandProcessor.prototype.evaluateRequest_ = function(request, response) { |
if (global) { |
// Evaluate in the native context. |
response.body = this.exec_state_.evaluateGlobal( |
- expression, Boolean(disable_break), additional_context_object); |
+ expression, $toBoolean(disable_break), additional_context_object); |
return; |
} |
@@ -2078,18 +2104,18 @@ DebugCommandProcessor.prototype.evaluateRequest_ = function(request, response) { |
// Check whether a frame was specified. |
if (!IS_UNDEFINED(frame)) { |
- var frame_number = builtins.$toNumber(frame); |
+ var frame_number = $toNumber(frame); |
if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { |
return response.failed('Invalid frame "' + frame + '"'); |
} |
// Evaluate in the specified frame. |
response.body = this.exec_state_.frame(frame_number).evaluate( |
- expression, Boolean(disable_break), additional_context_object); |
+ expression, $toBoolean(disable_break), additional_context_object); |
return; |
} else { |
// Evaluate in the selected frame. |
response.body = this.exec_state_.frame().evaluate( |
- expression, Boolean(disable_break), additional_context_object); |
+ expression, $toBoolean(disable_break), additional_context_object); |
return; |
} |
}; |
@@ -2110,7 +2136,7 @@ DebugCommandProcessor.prototype.lookupRequest_ = function(request, response) { |
// Set 'includeSource' option for script lookup. |
if (!IS_UNDEFINED(request.arguments.includeSource)) { |
- var includeSource = builtins.$toBoolean(request.arguments.includeSource); |
+ var includeSource = $toBoolean(request.arguments.includeSource); |
response.setOption('includeSource', includeSource); |
} |
@@ -2178,7 +2204,7 @@ DebugCommandProcessor.prototype.sourceRequest_ = function(request, response) { |
to_line = request.arguments.toLine; |
if (!IS_UNDEFINED(request.arguments.frame)) { |
- var frame_number = builtins.$toNumber(request.arguments.frame); |
+ var frame_number = $toNumber(request.arguments.frame); |
if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { |
return response.failed('Invalid frame "' + frame + '"'); |
} |
@@ -2214,15 +2240,15 @@ DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) { |
if (request.arguments) { |
// Pull out arguments. |
if (!IS_UNDEFINED(request.arguments.types)) { |
- types = builtins.$toNumber(request.arguments.types); |
- if (isNaN(types) || types < 0) { |
+ types = $toNumber(request.arguments.types); |
+ if (IsNaN(types) || types < 0) { |
return response.failed('Invalid types "' + |
request.arguments.types + '"'); |
} |
} |
if (!IS_UNDEFINED(request.arguments.includeSource)) { |
- includeSource = builtins.$toBoolean(request.arguments.includeSource); |
+ includeSource = $toBoolean(request.arguments.includeSource); |
response.setOption('includeSource', includeSource); |
} |
@@ -2237,8 +2263,8 @@ DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) { |
var filterStr = null; |
var filterNum = null; |
if (!IS_UNDEFINED(request.arguments.filter)) { |
- var num = builtins.$toNumber(request.arguments.filter); |
- if (!isNaN(num)) { |
+ var num = $toNumber(request.arguments.filter); |
+ if (!IsNaN(num)) { |
filterNum = num; |
} |
filterStr = request.arguments.filter; |
@@ -2331,7 +2357,7 @@ DebugCommandProcessor.prototype.changeLiveRequest_ = function( |
return; |
} |
- var change_log = new Array(); |
+ var change_log = new GlobalArray(); |
if (!IS_STRING(request.arguments.new_source)) { |
throw "new_source argument expected"; |
@@ -2373,7 +2399,7 @@ DebugCommandProcessor.prototype.restartFrameRequest_ = function( |
var frame_mirror; |
// Check whether a frame was specified. |
if (!IS_UNDEFINED(frame)) { |
- var frame_number = builtins.$toNumber(frame); |
+ var frame_number = $toNumber(frame); |
if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { |
return response.failed('Invalid frame "' + frame + '"'); |
} |
@@ -2567,3 +2593,31 @@ function ValueToProtocolValue_(value, mirror_serializer) { |
} |
return json; |
} |
+ |
+ |
+// ------------------------------------------------------------------- |
+// Exports |
+ |
+utils.InstallConstants(global, [ |
+ "Debug", Debug, |
+ "DebugCommandProcessor", DebugCommandProcessor, |
+]); |
+ |
+// Functions needed by the debugger runtime. |
+utils.InstallFunctions(utils, DONT_ENUM, [ |
+ "MakeExecutionState", MakeExecutionState, |
+ "MakeExceptionEvent", MakeExceptionEvent, |
+ "MakeBreakEvent", MakeBreakEvent, |
+ "MakeCompileEvent", MakeCompileEvent, |
+ "MakePromiseEvent", MakePromiseEvent, |
+ "MakeAsyncTaskEvent", MakeAsyncTaskEvent, |
+ "IsBreakPointTriggered", IsBreakPointTriggered, |
+ "UpdateScriptBreakPoints", UpdateScriptBreakPoints, |
+]); |
+ |
+// Export to liveedit.js |
+utils.Export(function(to) { |
+ to.GetScriptBreakPoints = GetScriptBreakPoints; |
+}); |
+ |
+}) |