| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 "use strict"; | 4 "use strict"; | 
| 5 | 5 | 
| 6 // Default number of frames to include in the response to backtrace request. | 6 // Default number of frames to include in the response to backtrace request. | 
| 7 var kDefaultBacktraceLength = 10; | 7 var kDefaultBacktraceLength = 10; | 
| 8 | 8 | 
| 9 var Debug = {}; | 9 var Debug = {}; | 
| 10 | 10 | 
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 195 BreakPoint.prototype.isTriggered = function(exec_state) { | 195 BreakPoint.prototype.isTriggered = function(exec_state) { | 
| 196   // Break point not active - not triggered. | 196   // Break point not active - not triggered. | 
| 197   if (!this.active()) return false; | 197   if (!this.active()) return false; | 
| 198 | 198 | 
| 199   // Check for conditional break point. | 199   // Check for conditional break point. | 
| 200   if (this.condition()) { | 200   if (this.condition()) { | 
| 201     // If break point has condition try to evaluate it in the top frame. | 201     // If break point has condition try to evaluate it in the top frame. | 
| 202     try { | 202     try { | 
| 203       var mirror = exec_state.frame(0).evaluate(this.condition()); | 203       var mirror = exec_state.frame(0).evaluate(this.condition()); | 
| 204       // If no sensible mirror or non true value break point not triggered. | 204       // If no sensible mirror or non true value break point not triggered. | 
| 205       if (!(mirror instanceof ValueMirror) || | 205       if (!(mirror instanceof ValueMirror) || !%ToBoolean(mirror.value_)) { | 
| 206           !builtins.$toBoolean(mirror.value_)) { |  | 
| 207         return false; | 206         return false; | 
| 208       } | 207       } | 
| 209     } catch (e) { | 208     } catch (e) { | 
| 210       // Exception evaluating condition counts as not triggered. | 209       // Exception evaluating condition counts as not triggered. | 
| 211       return false; | 210       return false; | 
| 212     } | 211     } | 
| 213   } | 212   } | 
| 214 | 213 | 
| 215   // Update the hit count. | 214   // Update the hit count. | 
| 216   this.hit_count_++; | 215   this.hit_count_++; | 
| (...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 918 } | 917 } | 
| 919 | 918 | 
| 920 function ExecutionState(break_id) { | 919 function ExecutionState(break_id) { | 
| 921   this.break_id = break_id; | 920   this.break_id = break_id; | 
| 922   this.selected_frame = 0; | 921   this.selected_frame = 0; | 
| 923 } | 922 } | 
| 924 | 923 | 
| 925 ExecutionState.prototype.prepareStep = function(opt_action, opt_count, | 924 ExecutionState.prototype.prepareStep = function(opt_action, opt_count, | 
| 926     opt_callframe) { | 925     opt_callframe) { | 
| 927   var action = Debug.StepAction.StepIn; | 926   var action = Debug.StepAction.StepIn; | 
| 928   if (!IS_UNDEFINED(opt_action)) action = builtins.$toNumber(opt_action); | 927   if (!IS_UNDEFINED(opt_action)) action = %ToNumber(opt_action); | 
| 929   var count = opt_count ? builtins.$toNumber(opt_count) : 1; | 928   var count = opt_count ? %ToNumber(opt_count) : 1; | 
| 930   var callFrameId = 0; | 929   var callFrameId = 0; | 
| 931   if (!IS_UNDEFINED(opt_callframe)) { | 930   if (!IS_UNDEFINED(opt_callframe)) { | 
| 932     callFrameId = opt_callframe.details_.frameId(); | 931     callFrameId = opt_callframe.details_.frameId(); | 
| 933   } | 932   } | 
| 934 | 933 | 
| 935   return %PrepareStep(this.break_id, action, count, callFrameId); | 934   return %PrepareStep(this.break_id, action, count, callFrameId); | 
| 936 }; | 935 }; | 
| 937 | 936 | 
| 938 ExecutionState.prototype.evaluateGlobal = function(source, disable_break, | 937 ExecutionState.prototype.evaluateGlobal = function(source, disable_break, | 
| 939     opt_additional_context) { | 938     opt_additional_context) { | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 953 ExecutionState.prototype.frame = function(opt_index) { | 952 ExecutionState.prototype.frame = function(opt_index) { | 
| 954   // If no index supplied return the selected frame. | 953   // If no index supplied return the selected frame. | 
| 955   if (opt_index == null) opt_index = this.selected_frame; | 954   if (opt_index == null) opt_index = this.selected_frame; | 
| 956   if (opt_index < 0 || opt_index >= this.frameCount()) { | 955   if (opt_index < 0 || opt_index >= this.frameCount()) { | 
| 957     throw new Error('Illegal frame index.'); | 956     throw new Error('Illegal frame index.'); | 
| 958   } | 957   } | 
| 959   return new FrameMirror(this.break_id, opt_index); | 958   return new FrameMirror(this.break_id, opt_index); | 
| 960 }; | 959 }; | 
| 961 | 960 | 
| 962 ExecutionState.prototype.setSelectedFrame = function(index) { | 961 ExecutionState.prototype.setSelectedFrame = function(index) { | 
| 963   var i = builtins.$toNumber(index); | 962   var i = %ToNumber(index); | 
| 964   if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.'); | 963   if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.'); | 
| 965   this.selected_frame = i; | 964   this.selected_frame = i; | 
| 966 }; | 965 }; | 
| 967 | 966 | 
| 968 ExecutionState.prototype.selectedFrame = function() { | 967 ExecutionState.prototype.selectedFrame = function() { | 
| 969   return this.selected_frame; | 968   return this.selected_frame; | 
| 970 }; | 969 }; | 
| 971 | 970 | 
| 972 ExecutionState.prototype.debugCommandProcessor = function(opt_is_running) { | 971 ExecutionState.prototype.debugCommandProcessor = function(opt_is_running) { | 
| 973   return new DebugCommandProcessor(this, opt_is_running); | 972   return new DebugCommandProcessor(this, opt_is_running); | 
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1396         %_CallFunction(this, request, response, handler); | 1395         %_CallFunction(this, request, response, handler); | 
| 1397       } else { | 1396       } else { | 
| 1398         throw new Error('Unknown command "' + request.command + '" in request'); | 1397         throw new Error('Unknown command "' + request.command + '" in request'); | 
| 1399       } | 1398       } | 
| 1400     } catch (e) { | 1399     } catch (e) { | 
| 1401       // If there is no response object created one (without command). | 1400       // If there is no response object created one (without command). | 
| 1402       if (!response) { | 1401       if (!response) { | 
| 1403         response = this.createResponse(); | 1402         response = this.createResponse(); | 
| 1404       } | 1403       } | 
| 1405       response.success = false; | 1404       response.success = false; | 
| 1406       response.message = builtins.$toString(e); | 1405       response.message = %ToString(e); | 
| 1407     } | 1406     } | 
| 1408 | 1407 | 
| 1409     // Return the response as a JSON encoded string. | 1408     // Return the response as a JSON encoded string. | 
| 1410     try { | 1409     try { | 
| 1411       if (!IS_UNDEFINED(response.running)) { | 1410       if (!IS_UNDEFINED(response.running)) { | 
| 1412         // Response controls running state. | 1411         // Response controls running state. | 
| 1413         this.running_ = response.running; | 1412         this.running_ = response.running; | 
| 1414       } | 1413       } | 
| 1415       response.running = this.running_; | 1414       response.running = this.running_; | 
| 1416       return response.toJSONProtocol(); | 1415       return response.toJSONProtocol(); | 
| 1417     } catch (e) { | 1416     } catch (e) { | 
| 1418       // Failed to generate response - return generic error. | 1417       // Failed to generate response - return generic error. | 
| 1419       return '{"seq":' + response.seq + ',' + | 1418       return '{"seq":' + response.seq + ',' + | 
| 1420               '"request_seq":' + request.seq + ',' + | 1419               '"request_seq":' + request.seq + ',' + | 
| 1421               '"type":"response",' + | 1420               '"type":"response",' + | 
| 1422               '"success":false,' + | 1421               '"success":false,' + | 
| 1423               '"message":"Internal error: ' + builtins.$toString(e) + '"}'; | 1422               '"message":"Internal error: ' + %ToString(e) + '"}'; | 
| 1424     } | 1423     } | 
| 1425   } catch (e) { | 1424   } catch (e) { | 
| 1426     // Failed in one of the catch blocks above - most generic error. | 1425     // Failed in one of the catch blocks above - most generic error. | 
| 1427     return '{"seq":0,"type":"response","success":false,"message":"Internal error
      "}'; | 1426     return '{"seq":0,"type":"response","success":false,"message":"Internal error
      "}'; | 
| 1428   } | 1427   } | 
| 1429 }; | 1428 }; | 
| 1430 | 1429 | 
| 1431 | 1430 | 
| 1432 DebugCommandProcessor.prototype.continueRequest_ = function(request, response) { | 1431 DebugCommandProcessor.prototype.continueRequest_ = function(request, response) { | 
| 1433   // Check for arguments for continue. | 1432   // Check for arguments for continue. | 
| 1434   if (request.arguments) { | 1433   if (request.arguments) { | 
| 1435     var count = 1; | 1434     var count = 1; | 
| 1436     var action = Debug.StepAction.StepIn; | 1435     var action = Debug.StepAction.StepIn; | 
| 1437 | 1436 | 
| 1438     // Pull out arguments. | 1437     // Pull out arguments. | 
| 1439     var stepaction = request.arguments.stepaction; | 1438     var stepaction = request.arguments.stepaction; | 
| 1440     var stepcount = request.arguments.stepcount; | 1439     var stepcount = request.arguments.stepcount; | 
| 1441 | 1440 | 
| 1442     // Get the stepcount argument if any. | 1441     // Get the stepcount argument if any. | 
| 1443     if (stepcount) { | 1442     if (stepcount) { | 
| 1444       count = builtins.$toNumber(stepcount); | 1443       count = %ToNumber(stepcount); | 
| 1445       if (count < 0) { | 1444       if (count < 0) { | 
| 1446         throw new Error('Invalid stepcount argument "' + stepcount + '".'); | 1445         throw new Error('Invalid stepcount argument "' + stepcount + '".'); | 
| 1447       } | 1446       } | 
| 1448     } | 1447     } | 
| 1449 | 1448 | 
| 1450     // Get the stepaction argument. | 1449     // Get the stepaction argument. | 
| 1451     if (stepaction) { | 1450     if (stepaction) { | 
| 1452       if (stepaction == 'in') { | 1451       if (stepaction == 'in') { | 
| 1453         action = Debug.StepAction.StepIn; | 1452         action = Debug.StepAction.StepIn; | 
| 1454       } else if (stepaction == 'min') { | 1453       } else if (stepaction == 'min') { | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1507     // Handle function break point. | 1506     // Handle function break point. | 
| 1508     if (!IS_STRING(target)) { | 1507     if (!IS_STRING(target)) { | 
| 1509       response.failed('Argument "target" is not a string value'); | 1508       response.failed('Argument "target" is not a string value'); | 
| 1510       return; | 1509       return; | 
| 1511     } | 1510     } | 
| 1512     var f; | 1511     var f; | 
| 1513     try { | 1512     try { | 
| 1514       // Find the function through a global evaluate. | 1513       // Find the function through a global evaluate. | 
| 1515       f = this.exec_state_.evaluateGlobal(target).value(); | 1514       f = this.exec_state_.evaluateGlobal(target).value(); | 
| 1516     } catch (e) { | 1515     } catch (e) { | 
| 1517       response.failed('Error: "' + builtins.$toString(e) + | 1516       response.failed('Error: "' + %ToString(e) + | 
| 1518                       '" evaluating "' + target + '"'); | 1517                       '" evaluating "' + target + '"'); | 
| 1519       return; | 1518       return; | 
| 1520     } | 1519     } | 
| 1521     if (!IS_FUNCTION(f)) { | 1520     if (!IS_FUNCTION(f)) { | 
| 1522       response.failed('"' + target + '" does not evaluate to a function'); | 1521       response.failed('"' + target + '" does not evaluate to a function'); | 
| 1523       return; | 1522       return; | 
| 1524     } | 1523     } | 
| 1525 | 1524 | 
| 1526     // Set function break point. | 1525     // Set function break point. | 
| 1527     break_point_number = Debug.setBreakPoint(f, line, column, condition); | 1526     break_point_number = Debug.setBreakPoint(f, line, column, condition); | 
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1596 | 1595 | 
| 1597 DebugCommandProcessor.prototype.changeBreakPointRequest_ = function( | 1596 DebugCommandProcessor.prototype.changeBreakPointRequest_ = function( | 
| 1598     request, response) { | 1597     request, response) { | 
| 1599   // Check for legal request. | 1598   // Check for legal request. | 
| 1600   if (!request.arguments) { | 1599   if (!request.arguments) { | 
| 1601     response.failed('Missing arguments'); | 1600     response.failed('Missing arguments'); | 
| 1602     return; | 1601     return; | 
| 1603   } | 1602   } | 
| 1604 | 1603 | 
| 1605   // Pull out arguments. | 1604   // Pull out arguments. | 
| 1606   var break_point = builtins.$toNumber(request.arguments.breakpoint); | 1605   var break_point = %ToNumber(request.arguments.breakpoint); | 
| 1607   var enabled = request.arguments.enabled; | 1606   var enabled = request.arguments.enabled; | 
| 1608   var condition = request.arguments.condition; | 1607   var condition = request.arguments.condition; | 
| 1609   var ignoreCount = request.arguments.ignoreCount; | 1608   var ignoreCount = request.arguments.ignoreCount; | 
| 1610 | 1609 | 
| 1611   // Check for legal arguments. | 1610   // Check for legal arguments. | 
| 1612   if (!break_point) { | 1611   if (!break_point) { | 
| 1613     response.failed('Missing argument "breakpoint"'); | 1612     response.failed('Missing argument "breakpoint"'); | 
| 1614     return; | 1613     return; | 
| 1615   } | 1614   } | 
| 1616 | 1615 | 
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1672 | 1671 | 
| 1673 DebugCommandProcessor.prototype.clearBreakPointRequest_ = function( | 1672 DebugCommandProcessor.prototype.clearBreakPointRequest_ = function( | 
| 1674     request, response) { | 1673     request, response) { | 
| 1675   // Check for legal request. | 1674   // Check for legal request. | 
| 1676   if (!request.arguments) { | 1675   if (!request.arguments) { | 
| 1677     response.failed('Missing arguments'); | 1676     response.failed('Missing arguments'); | 
| 1678     return; | 1677     return; | 
| 1679   } | 1678   } | 
| 1680 | 1679 | 
| 1681   // Pull out arguments. | 1680   // Pull out arguments. | 
| 1682   var break_point = builtins.$toNumber(request.arguments.breakpoint); | 1681   var break_point = %ToNumber(request.arguments.breakpoint); | 
| 1683 | 1682 | 
| 1684   // Check for legal arguments. | 1683   // Check for legal arguments. | 
| 1685   if (!break_point) { | 1684   if (!break_point) { | 
| 1686     response.failed('Missing argument "breakpoint"'); | 1685     response.failed('Missing argument "breakpoint"'); | 
| 1687     return; | 1686     return; | 
| 1688   } | 1687   } | 
| 1689 | 1688 | 
| 1690   // Clear break point. | 1689   // Clear break point. | 
| 1691   Debug.clearBreakPoint(break_point); | 1690   Debug.clearBreakPoint(break_point); | 
| 1692 | 1691 | 
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1929 }; | 1928 }; | 
| 1930 | 1929 | 
| 1931 | 1930 | 
| 1932 DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) { | 1931 DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) { | 
| 1933   // Get the frame or function for which the scope is requested. | 1932   // Get the frame or function for which the scope is requested. | 
| 1934   var scope_holder = this.resolveScopeHolder_(request.arguments); | 1933   var scope_holder = this.resolveScopeHolder_(request.arguments); | 
| 1935 | 1934 | 
| 1936   // With no scope argument just return top scope. | 1935   // With no scope argument just return top scope. | 
| 1937   var scope_index = 0; | 1936   var scope_index = 0; | 
| 1938   if (request.arguments && !IS_UNDEFINED(request.arguments.number)) { | 1937   if (request.arguments && !IS_UNDEFINED(request.arguments.number)) { | 
| 1939     scope_index = builtins.$toNumber(request.arguments.number); | 1938     scope_index = %ToNumber(request.arguments.number); | 
| 1940     if (scope_index < 0 || scope_holder.scopeCount() <= scope_index) { | 1939     if (scope_index < 0 || scope_holder.scopeCount() <= scope_index) { | 
| 1941       return response.failed('Invalid scope number'); | 1940       return response.failed('Invalid scope number'); | 
| 1942     } | 1941     } | 
| 1943   } | 1942   } | 
| 1944 | 1943 | 
| 1945   response.body = scope_holder.scope(scope_index); | 1944   response.body = scope_holder.scope(scope_index); | 
| 1946 }; | 1945 }; | 
| 1947 | 1946 | 
| 1948 | 1947 | 
| 1949 // Reads value from protocol description. Description may be in form of type | 1948 // Reads value from protocol description. Description may be in form of type | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1993   var variable_name = request.arguments.name; | 1992   var variable_name = request.arguments.name; | 
| 1994 | 1993 | 
| 1995   var scope_description = request.arguments.scope; | 1994   var scope_description = request.arguments.scope; | 
| 1996 | 1995 | 
| 1997   // Get the frame or function for which the scope is requested. | 1996   // Get the frame or function for which the scope is requested. | 
| 1998   var scope_holder = this.resolveScopeHolder_(scope_description); | 1997   var scope_holder = this.resolveScopeHolder_(scope_description); | 
| 1999 | 1998 | 
| 2000   if (IS_UNDEFINED(scope_description.number)) { | 1999   if (IS_UNDEFINED(scope_description.number)) { | 
| 2001     response.failed('Missing scope number'); | 2000     response.failed('Missing scope number'); | 
| 2002   } | 2001   } | 
| 2003   var scope_index = builtins.$toNumber(scope_description.number); | 2002   var scope_index = %ToNumber(scope_description.number); | 
| 2004 | 2003 | 
| 2005   var scope = scope_holder.scope(scope_index); | 2004   var scope = scope_holder.scope(scope_index); | 
| 2006 | 2005 | 
| 2007   var new_value = | 2006   var new_value = | 
| 2008       DebugCommandProcessor.resolveValue_(request.arguments.newValue); | 2007       DebugCommandProcessor.resolveValue_(request.arguments.newValue); | 
| 2009 | 2008 | 
| 2010   scope.setVariableValue(variable_name, new_value); | 2009   scope.setVariableValue(variable_name, new_value); | 
| 2011 | 2010 | 
| 2012   var new_value_mirror = MakeMirror(new_value); | 2011   var new_value_mirror = MakeMirror(new_value); | 
| 2013 | 2012 | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2071     disable_break = true; | 2070     disable_break = true; | 
| 2072   } | 2071   } | 
| 2073 | 2072 | 
| 2074   // No frames no evaluate in frame. | 2073   // No frames no evaluate in frame. | 
| 2075   if (this.exec_state_.frameCount() == 0) { | 2074   if (this.exec_state_.frameCount() == 0) { | 
| 2076     return response.failed('No frames'); | 2075     return response.failed('No frames'); | 
| 2077   } | 2076   } | 
| 2078 | 2077 | 
| 2079   // Check whether a frame was specified. | 2078   // Check whether a frame was specified. | 
| 2080   if (!IS_UNDEFINED(frame)) { | 2079   if (!IS_UNDEFINED(frame)) { | 
| 2081     var frame_number = builtins.$toNumber(frame); | 2080     var frame_number = %ToNumber(frame); | 
| 2082     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 2081     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 
| 2083       return response.failed('Invalid frame "' + frame + '"'); | 2082       return response.failed('Invalid frame "' + frame + '"'); | 
| 2084     } | 2083     } | 
| 2085     // Evaluate in the specified frame. | 2084     // Evaluate in the specified frame. | 
| 2086     response.body = this.exec_state_.frame(frame_number).evaluate( | 2085     response.body = this.exec_state_.frame(frame_number).evaluate( | 
| 2087         expression, Boolean(disable_break), additional_context_object); | 2086         expression, Boolean(disable_break), additional_context_object); | 
| 2088     return; | 2087     return; | 
| 2089   } else { | 2088   } else { | 
| 2090     // Evaluate in the selected frame. | 2089     // Evaluate in the selected frame. | 
| 2091     response.body = this.exec_state_.frame().evaluate( | 2090     response.body = this.exec_state_.frame().evaluate( | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 2103   // Pull out arguments. | 2102   // Pull out arguments. | 
| 2104   var handles = request.arguments.handles; | 2103   var handles = request.arguments.handles; | 
| 2105 | 2104 | 
| 2106   // Check for legal arguments. | 2105   // Check for legal arguments. | 
| 2107   if (IS_UNDEFINED(handles)) { | 2106   if (IS_UNDEFINED(handles)) { | 
| 2108     return response.failed('Argument "handles" missing'); | 2107     return response.failed('Argument "handles" missing'); | 
| 2109   } | 2108   } | 
| 2110 | 2109 | 
| 2111   // Set 'includeSource' option for script lookup. | 2110   // Set 'includeSource' option for script lookup. | 
| 2112   if (!IS_UNDEFINED(request.arguments.includeSource)) { | 2111   if (!IS_UNDEFINED(request.arguments.includeSource)) { | 
| 2113     var includeSource = builtins.$toBoolean(request.arguments.includeSource); | 2112     var includeSource = %ToBoolean(request.arguments.includeSource); | 
| 2114     response.setOption('includeSource', includeSource); | 2113     response.setOption('includeSource', includeSource); | 
| 2115   } | 2114   } | 
| 2116 | 2115 | 
| 2117   // Lookup handles. | 2116   // Lookup handles. | 
| 2118   var mirrors = {}; | 2117   var mirrors = {}; | 
| 2119   for (var i = 0; i < handles.length; i++) { | 2118   for (var i = 0; i < handles.length; i++) { | 
| 2120     var handle = handles[i]; | 2119     var handle = handles[i]; | 
| 2121     var mirror = LookupMirror(handle); | 2120     var mirror = LookupMirror(handle); | 
| 2122     if (!mirror) { | 2121     if (!mirror) { | 
| 2123       return response.failed('Object #' + handle + '# not found'); | 2122       return response.failed('Object #' + handle + '# not found'); | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2171 | 2170 | 
| 2172   var from_line; | 2171   var from_line; | 
| 2173   var to_line; | 2172   var to_line; | 
| 2174   var frame = this.exec_state_.frame(); | 2173   var frame = this.exec_state_.frame(); | 
| 2175   if (request.arguments) { | 2174   if (request.arguments) { | 
| 2176     // Pull out arguments. | 2175     // Pull out arguments. | 
| 2177     from_line = request.arguments.fromLine; | 2176     from_line = request.arguments.fromLine; | 
| 2178     to_line = request.arguments.toLine; | 2177     to_line = request.arguments.toLine; | 
| 2179 | 2178 | 
| 2180     if (!IS_UNDEFINED(request.arguments.frame)) { | 2179     if (!IS_UNDEFINED(request.arguments.frame)) { | 
| 2181       var frame_number = builtins.$toNumber(request.arguments.frame); | 2180       var frame_number = %ToNumber(request.arguments.frame); | 
| 2182       if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 2181       if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 
| 2183         return response.failed('Invalid frame "' + frame + '"'); | 2182         return response.failed('Invalid frame "' + frame + '"'); | 
| 2184       } | 2183       } | 
| 2185       frame = this.exec_state_.frame(frame_number); | 2184       frame = this.exec_state_.frame(frame_number); | 
| 2186     } | 2185     } | 
| 2187   } | 2186   } | 
| 2188 | 2187 | 
| 2189   // Get the script selected. | 2188   // Get the script selected. | 
| 2190   var script = frame.func().script(); | 2189   var script = frame.func().script(); | 
| 2191   if (!script) { | 2190   if (!script) { | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 2207 }; | 2206 }; | 
| 2208 | 2207 | 
| 2209 | 2208 | 
| 2210 DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) { | 2209 DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) { | 
| 2211   var types = ScriptTypeFlag(Debug.ScriptType.Normal); | 2210   var types = ScriptTypeFlag(Debug.ScriptType.Normal); | 
| 2212   var includeSource = false; | 2211   var includeSource = false; | 
| 2213   var idsToInclude = null; | 2212   var idsToInclude = null; | 
| 2214   if (request.arguments) { | 2213   if (request.arguments) { | 
| 2215     // Pull out arguments. | 2214     // Pull out arguments. | 
| 2216     if (!IS_UNDEFINED(request.arguments.types)) { | 2215     if (!IS_UNDEFINED(request.arguments.types)) { | 
| 2217       types = builtins.$toNumber(request.arguments.types); | 2216       types = %ToNumber(request.arguments.types); | 
| 2218       if (isNaN(types) || types < 0) { | 2217       if (isNaN(types) || types < 0) { | 
| 2219         return response.failed('Invalid types "' + | 2218         return response.failed('Invalid types "' + | 
| 2220                                request.arguments.types + '"'); | 2219                                request.arguments.types + '"'); | 
| 2221       } | 2220       } | 
| 2222     } | 2221     } | 
| 2223 | 2222 | 
| 2224     if (!IS_UNDEFINED(request.arguments.includeSource)) { | 2223     if (!IS_UNDEFINED(request.arguments.includeSource)) { | 
| 2225       includeSource = builtins.$toBoolean(request.arguments.includeSource); | 2224       includeSource = %ToBoolean(request.arguments.includeSource); | 
| 2226       response.setOption('includeSource', includeSource); | 2225       response.setOption('includeSource', includeSource); | 
| 2227     } | 2226     } | 
| 2228 | 2227 | 
| 2229     if (IS_ARRAY(request.arguments.ids)) { | 2228     if (IS_ARRAY(request.arguments.ids)) { | 
| 2230       idsToInclude = {}; | 2229       idsToInclude = {}; | 
| 2231       var ids = request.arguments.ids; | 2230       var ids = request.arguments.ids; | 
| 2232       for (var i = 0; i < ids.length; i++) { | 2231       for (var i = 0; i < ids.length; i++) { | 
| 2233         idsToInclude[ids[i]] = true; | 2232         idsToInclude[ids[i]] = true; | 
| 2234       } | 2233       } | 
| 2235     } | 2234     } | 
| 2236 | 2235 | 
| 2237     var filterStr = null; | 2236     var filterStr = null; | 
| 2238     var filterNum = null; | 2237     var filterNum = null; | 
| 2239     if (!IS_UNDEFINED(request.arguments.filter)) { | 2238     if (!IS_UNDEFINED(request.arguments.filter)) { | 
| 2240       var num = builtins.$toNumber(request.arguments.filter); | 2239       var num = %ToNumber(request.arguments.filter); | 
| 2241       if (!isNaN(num)) { | 2240       if (!isNaN(num)) { | 
| 2242         filterNum = num; | 2241         filterNum = num; | 
| 2243       } | 2242       } | 
| 2244       filterStr = request.arguments.filter; | 2243       filterStr = request.arguments.filter; | 
| 2245     } | 2244     } | 
| 2246   } | 2245   } | 
| 2247 | 2246 | 
| 2248   // Collect all scripts in the heap. | 2247   // Collect all scripts in the heap. | 
| 2249   var scripts = %DebugGetLoadedScripts(); | 2248   var scripts = %DebugGetLoadedScripts(); | 
| 2250 | 2249 | 
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2366   var frame = request.arguments.frame; | 2365   var frame = request.arguments.frame; | 
| 2367 | 2366 | 
| 2368   // No frames to evaluate in frame. | 2367   // No frames to evaluate in frame. | 
| 2369   if (this.exec_state_.frameCount() == 0) { | 2368   if (this.exec_state_.frameCount() == 0) { | 
| 2370     return response.failed('No frames'); | 2369     return response.failed('No frames'); | 
| 2371   } | 2370   } | 
| 2372 | 2371 | 
| 2373   var frame_mirror; | 2372   var frame_mirror; | 
| 2374   // Check whether a frame was specified. | 2373   // Check whether a frame was specified. | 
| 2375   if (!IS_UNDEFINED(frame)) { | 2374   if (!IS_UNDEFINED(frame)) { | 
| 2376     var frame_number = builtins.$toNumber(frame); | 2375     var frame_number = %ToNumber(frame); | 
| 2377     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 2376     if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { | 
| 2378       return response.failed('Invalid frame "' + frame + '"'); | 2377       return response.failed('Invalid frame "' + frame + '"'); | 
| 2379     } | 2378     } | 
| 2380     // Restart specified frame. | 2379     // Restart specified frame. | 
| 2381     frame_mirror = this.exec_state_.frame(frame_number); | 2380     frame_mirror = this.exec_state_.frame(frame_number); | 
| 2382   } else { | 2381   } else { | 
| 2383     // Restart selected frame. | 2382     // Restart selected frame. | 
| 2384     frame_mirror = this.exec_state_.frame(); | 2383     frame_mirror = this.exec_state_.frame(); | 
| 2385   } | 2384   } | 
| 2386 | 2385 | 
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2560     case 'string': | 2559     case 'string': | 
| 2561     case 'number': | 2560     case 'number': | 
| 2562       json = value; | 2561       json = value; | 
| 2563       break; | 2562       break; | 
| 2564 | 2563 | 
| 2565     default: | 2564     default: | 
| 2566       json = null; | 2565       json = null; | 
| 2567   } | 2566   } | 
| 2568   return json; | 2567   return json; | 
| 2569 } | 2568 } | 
| OLD | NEW | 
|---|