Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1318)

Unified Diff: src/runtime/runtime-debug.cc

Issue 2053573004: [runtime] Deprecate RUNTIME_ASSERT from debugger methods. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/runtime/runtime-liveedit.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/runtime/runtime-debug.cc
diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc
index 7f3b7f68199a277233281e0ff5ffe15d85d9fe6e..aa9bcb4a9d404f4fa6417fd24e23d77b0cb29aff 100644
--- a/src/runtime/runtime-debug.cc
+++ b/src/runtime/runtime-debug.cc
@@ -79,8 +79,8 @@ RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) {
RUNTIME_FUNCTION(Runtime_SetDebugEventListener) {
SealHandleScope shs(isolate);
DCHECK(args.length() == 2);
- RUNTIME_ASSERT(args[0]->IsJSFunction() || args[0]->IsUndefined(isolate) ||
- args[0]->IsNull(isolate));
+ CHECK(args[0]->IsJSFunction() || args[0]->IsUndefined(isolate) ||
+ args[0]->IsNull(isolate));
CONVERT_ARG_HANDLE_CHECKED(Object, callback, 0);
CONVERT_ARG_HANDLE_CHECKED(Object, data, 1);
isolate->debug()->SetEventListener(callback, data);
@@ -437,7 +437,7 @@ RUNTIME_FUNCTION(Runtime_CheckExecutionState) {
SealHandleScope shs(isolate);
DCHECK(args.length() == 1);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
return isolate->heap()->true_value();
}
@@ -446,7 +446,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameCount) {
HandleScope scope(isolate);
DCHECK(args.length() == 1);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
// Count all frames which are relevant to debugging stack trace.
int n = 0;
@@ -506,7 +506,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) {
HandleScope scope(isolate);
DCHECK(args.length() == 2);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_NUMBER_CHECKED(int, index, Int32, args[1]);
Heap* heap = isolate->heap();
@@ -597,7 +597,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) {
// Get scope info and read from it for local variable information.
Handle<JSFunction> function =
Handle<JSFunction>::cast(frame_inspector.GetFunction());
- RUNTIME_ASSERT(function->shared()->IsSubjectToDebugging());
+ CHECK(function->shared()->IsSubjectToDebugging());
Handle<SharedFunctionInfo> shared(function->shared());
Handle<ScopeInfo> scope_info(shared->scope_info());
DCHECK(*scope_info != ScopeInfo::Empty(isolate));
@@ -777,7 +777,7 @@ RUNTIME_FUNCTION(Runtime_GetScopeCount) {
HandleScope scope(isolate);
DCHECK(args.length() == 2);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_SMI_ARG_CHECKED(wrapped_id, 1);
@@ -810,7 +810,7 @@ RUNTIME_FUNCTION(Runtime_GetScopeDetails) {
HandleScope scope(isolate);
DCHECK(args.length() == 4);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_SMI_ARG_CHECKED(wrapped_id, 1);
CONVERT_NUMBER_CHECKED(int, inlined_jsframe_index, Int32, args[2]);
@@ -848,7 +848,7 @@ RUNTIME_FUNCTION(Runtime_GetAllScopesDetails) {
HandleScope scope(isolate);
DCHECK(args.length() == 3 || args.length() == 4);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_SMI_ARG_CHECKED(wrapped_id, 1);
CONVERT_NUMBER_CHECKED(int, inlined_jsframe_index, Int32, args[2]);
@@ -958,7 +958,7 @@ RUNTIME_FUNCTION(Runtime_SetScopeVariableValue) {
bool res;
if (args[0]->IsNumber()) {
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_SMI_ARG_CHECKED(wrapped_id, 1);
CONVERT_NUMBER_CHECKED(int, inlined_jsframe_index, Int32, args[2]);
@@ -1018,7 +1018,7 @@ static bool IsPositionAlignmentCodeCorrect(int alignment) {
RUNTIME_FUNCTION(Runtime_GetBreakLocations) {
HandleScope scope(isolate);
DCHECK(args.length() == 2);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+ CHECK(isolate->debug()->is_active());
CONVERT_ARG_HANDLE_CHECKED(JSFunction, fun, 0);
CONVERT_NUMBER_CHECKED(int32_t, statement_aligned_code, Int32, args[1]);
@@ -1048,16 +1048,16 @@ RUNTIME_FUNCTION(Runtime_GetBreakLocations) {
RUNTIME_FUNCTION(Runtime_SetFunctionBreakPoint) {
HandleScope scope(isolate);
DCHECK(args.length() == 3);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+ CHECK(isolate->debug()->is_active());
CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
CONVERT_NUMBER_CHECKED(int32_t, source_position, Int32, args[1]);
- RUNTIME_ASSERT(source_position >= function->shared()->start_position() &&
- source_position <= function->shared()->end_position());
+ CHECK(source_position >= function->shared()->start_position() &&
+ source_position <= function->shared()->end_position());
CONVERT_ARG_HANDLE_CHECKED(Object, break_point_object_arg, 2);
// Set break point.
- RUNTIME_ASSERT(isolate->debug()->SetBreakPoint(
- function, break_point_object_arg, &source_position));
+ CHECK(isolate->debug()->SetBreakPoint(function, break_point_object_arg,
+ &source_position));
return Smi::FromInt(source_position);
}
@@ -1073,10 +1073,10 @@ RUNTIME_FUNCTION(Runtime_SetFunctionBreakPoint) {
RUNTIME_FUNCTION(Runtime_SetScriptBreakPoint) {
HandleScope scope(isolate);
DCHECK(args.length() == 4);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+ CHECK(isolate->debug()->is_active());
CONVERT_ARG_HANDLE_CHECKED(JSValue, wrapper, 0);
CONVERT_NUMBER_CHECKED(int32_t, source_position, Int32, args[1]);
- RUNTIME_ASSERT(source_position >= 0);
+ CHECK(source_position >= 0);
CONVERT_NUMBER_CHECKED(int32_t, statement_aligned_code, Int32, args[2]);
CONVERT_ARG_HANDLE_CHECKED(Object, break_point_object_arg, 3);
@@ -1087,7 +1087,7 @@ RUNTIME_FUNCTION(Runtime_SetScriptBreakPoint) {
static_cast<BreakPositionAlignment>(statement_aligned_code);
// Get the script from the script wrapper.
- RUNTIME_ASSERT(wrapper->value()->IsScript());
+ CHECK(wrapper->value()->IsScript());
Handle<Script> script(Script::cast(wrapper->value()));
// Set break point.
@@ -1105,7 +1105,7 @@ RUNTIME_FUNCTION(Runtime_SetScriptBreakPoint) {
RUNTIME_FUNCTION(Runtime_ClearBreakPoint) {
HandleScope scope(isolate);
DCHECK(args.length() == 1);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+ CHECK(isolate->debug()->is_active());
CONVERT_ARG_HANDLE_CHECKED(Object, break_point_object_arg, 0);
// Clear break point.
@@ -1155,7 +1155,7 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) {
HandleScope scope(isolate);
DCHECK(args.length() == 2);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
if (!args[1]->IsNumber()) {
return isolate->Throw(isolate->heap()->illegal_argument_string());
@@ -1181,7 +1181,7 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) {
RUNTIME_FUNCTION(Runtime_ClearStepping) {
HandleScope scope(isolate);
DCHECK(args.length() == 0);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+ CHECK(isolate->debug()->is_active());
isolate->debug()->ClearStepping();
return isolate->heap()->undefined_value();
}
@@ -1194,7 +1194,7 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluate) {
// evaluated.
DCHECK(args.length() == 6);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_SMI_ARG_CHECKED(wrapped_id, 1);
CONVERT_NUMBER_CHECKED(int, inlined_jsframe_index, Int32, args[2]);
@@ -1217,7 +1217,7 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluateGlobal) {
// evaluated.
DCHECK(args.length() == 4);
CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
- RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
+ CHECK(isolate->debug()->CheckExecutionState(break_id));
CONVERT_ARG_HANDLE_CHECKED(String, source, 1);
CONVERT_BOOLEAN_ARG_CHECKED(disable_break, 2);
@@ -1232,7 +1232,10 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluateGlobal) {
RUNTIME_FUNCTION(Runtime_DebugGetLoadedScripts) {
HandleScope scope(isolate);
DCHECK(args.length() == 0);
- RUNTIME_ASSERT(isolate->debug()->is_active());
+
+ // This runtime function is used by the debugger to determine whether the
+ // debugger is active or not. Hence we fail gracefully here and don't crash.
+ if (!isolate->debug()->is_active()) return isolate->ThrowIllegalOperation();
Handle<FixedArray> instances;
{
@@ -1282,9 +1285,9 @@ RUNTIME_FUNCTION(Runtime_DebugReferencedBy) {
DCHECK(args.length() == 3);
CONVERT_ARG_HANDLE_CHECKED(JSObject, target, 0);
CONVERT_ARG_HANDLE_CHECKED(Object, filter, 1);
- RUNTIME_ASSERT(filter->IsUndefined(isolate) || filter->IsJSObject());
+ CHECK(filter->IsUndefined(isolate) || filter->IsJSObject());
CONVERT_NUMBER_CHECKED(int32_t, max_references, Int32, args[2]);
- RUNTIME_ASSERT(max_references >= 0);
+ CHECK(max_references >= 0);
List<Handle<JSObject> > instances;
Heap* heap = isolate->heap();
@@ -1339,7 +1342,7 @@ RUNTIME_FUNCTION(Runtime_DebugConstructedBy) {
DCHECK(args.length() == 2);
CONVERT_ARG_HANDLE_CHECKED(JSFunction, constructor, 0);
CONVERT_NUMBER_CHECKED(int32_t, max_references, Int32, args[1]);
- RUNTIME_ASSERT(max_references >= 0);
+ CHECK(max_references >= 0);
List<Handle<JSObject> > instances;
Heap* heap = isolate->heap();
@@ -1385,11 +1388,15 @@ RUNTIME_FUNCTION(Runtime_DebugSetScriptSource) {
CONVERT_ARG_HANDLE_CHECKED(JSValue, script_wrapper, 0);
CONVERT_ARG_HANDLE_CHECKED(String, source, 1);
- RUNTIME_ASSERT(script_wrapper->value()->IsScript());
+ CHECK(script_wrapper->value()->IsScript());
Handle<Script> script(Script::cast(script_wrapper->value()));
- int compilation_state = script->compilation_state();
- RUNTIME_ASSERT(compilation_state == Script::COMPILATION_STATE_INITIAL);
+ // The following condition is not guaranteed to hold and a failure is also
+ // propagated to callers. Hence we fail gracefully here and don't crash.
+ if (script->compilation_state() != Script::COMPILATION_STATE_INITIAL) {
+ return isolate->ThrowIllegalOperation();
+ }
+
script->set_source(*source);
return isolate->heap()->undefined_value();
@@ -1518,7 +1525,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLineCount) {
DCHECK(args.length() == 1);
CONVERT_ARG_CHECKED(JSValue, script, 0);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
Script::InitLineEnds(script_handle);
@@ -1533,7 +1540,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLineStartPosition) {
CONVERT_ARG_CHECKED(JSValue, script, 0);
CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
Script::InitLineEnds(script_handle);
@@ -1559,7 +1566,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLineEndPosition) {
CONVERT_ARG_CHECKED(JSValue, script, 0);
CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
Script::InitLineEnds(script_handle);
@@ -1618,7 +1625,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLocationFromLine) {
DCHECK(args.length() == 4);
CONVERT_ARG_CHECKED(JSValue, script, 0);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
// Line and column are possibly undefined and we need to handle these cases,
@@ -1628,7 +1635,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLocationFromLine) {
if (args[1]->IsNull(isolate) || args[1]->IsUndefined(isolate)) {
line = 0;
} else {
- RUNTIME_ASSERT(args[1]->IsNumber());
+ CHECK(args[1]->IsNumber());
line = NumberToInt32(args[1]) - script_handle->line_offset();
}
@@ -1636,7 +1643,7 @@ RUNTIME_FUNCTION(Runtime_ScriptLocationFromLine) {
if (args[2]->IsNull(isolate) || args[2]->IsUndefined(isolate)) {
column = 0;
} else {
- RUNTIME_ASSERT(args[2]->IsNumber());
+ CHECK(args[2]->IsNumber());
column = NumberToInt32(args[2]);
if (line == 0) column -= script_handle->column_offset();
}
@@ -1682,7 +1689,7 @@ RUNTIME_FUNCTION(Runtime_ScriptPositionInfo) {
CONVERT_NUMBER_CHECKED(int32_t, position, Int32, args[1]);
CONVERT_BOOLEAN_ARG_CHECKED(with_offset, 2);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
const Script::OffsetFlag offset_flag =
@@ -1698,7 +1705,7 @@ RUNTIME_FUNCTION(Runtime_ScriptSourceLine) {
CONVERT_ARG_CHECKED(JSValue, script, 0);
CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
- RUNTIME_ASSERT(script->value()->IsScript());
+ CHECK(script->value()->IsScript());
Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
Script::InitLineEnds(script_handle);
@@ -1793,7 +1800,7 @@ RUNTIME_FUNCTION(Runtime_GetWasmFunctionOffsetTable) {
HandleScope scope(isolate);
CONVERT_ARG_CHECKED(JSValue, script_val, 0);
- RUNTIME_ASSERT(script_val->value()->IsScript());
+ CHECK(script_val->value()->IsScript());
Handle<Script> script = Handle<Script>(Script::cast(script_val->value()));
Handle<wasm::WasmDebugInfo> debug_info(
@@ -1808,7 +1815,7 @@ RUNTIME_FUNCTION(Runtime_DisassembleWasmFunction) {
HandleScope scope(isolate);
CONVERT_ARG_CHECKED(JSValue, script_val, 0);
- RUNTIME_ASSERT(script_val->value()->IsScript());
+ CHECK(script_val->value()->IsScript());
Handle<Script> script = Handle<Script>(Script::cast(script_val->value()));
Handle<wasm::WasmDebugInfo> debug_info(
« no previous file with comments | « no previous file | src/runtime/runtime-liveedit.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698