Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 61d363ac20f7cd78aa62db070e372a64be10d2f6..7cacc9bbf3336cbad63c0a0c3d30e2a577314044 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -11251,7 +11251,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
InitializationFlag init_flag; |
locals->set(local * 2, *name); |
int context_slot_index = |
- scope_info->ContextSlotIndex(*name, &mode, &init_flag); |
+ ScopeInfo::ContextSlotIndex(scope_info, name, &mode, &init_flag); |
Object* value = context->get(context_slot_index); |
locals->set(local * 2 + 1, value); |
local++; |
@@ -11423,10 +11423,10 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
static bool ParameterIsShadowedByContextLocal(Handle<ScopeInfo> info, |
- int index) { |
+ Handle<String> parameter_name) { |
VariableMode mode; |
InitializationFlag flag; |
- return info->ContextSlotIndex(info->ParameterName(index), &mode, &flag) != -1; |
+ return ScopeInfo::ContextSlotIndex(info, parameter_name, &mode, &flag) != -1; |
} |
@@ -11444,7 +11444,8 @@ static MaybeHandle<JSObject> MaterializeStackLocalsWithFrameInspector( |
// First fill all parameters. |
for (int i = 0; i < scope_info->ParameterCount(); ++i) { |
// Do not materialize the parameter if it is shadowed by a context local. |
- if (ParameterIsShadowedByContextLocal(scope_info, i)) continue; |
+ Handle<String> name(scope_info->ParameterName(i)); |
+ if (ParameterIsShadowedByContextLocal(scope_info, name)) continue; |
HandleScope scope(isolate); |
Handle<Object> value(i < frame_inspector->GetParametersCount() |
@@ -11452,7 +11453,6 @@ static MaybeHandle<JSObject> MaterializeStackLocalsWithFrameInspector( |
: isolate->heap()->undefined_value(), |
isolate); |
ASSERT(!value->IsTheHole()); |
- Handle<String> name(scope_info->ParameterName(i)); |
RETURN_ON_EXCEPTION( |
isolate, |
@@ -11495,11 +11495,11 @@ static void UpdateStackLocalsFromMaterializedObject(Isolate* isolate, |
// Parameters. |
for (int i = 0; i < scope_info->ParameterCount(); ++i) { |
// Shadowed parameters were not materialized. |
- if (ParameterIsShadowedByContextLocal(scope_info, i)) continue; |
+ Handle<String> name(scope_info->ParameterName(i)); |
+ if (ParameterIsShadowedByContextLocal(scope_info, name)) continue; |
ASSERT(!frame->GetParameter(i)->IsTheHole()); |
HandleScope scope(isolate); |
- Handle<String> name(scope_info->ParameterName(i)); |
Handle<Object> value = |
Object::GetPropertyOrElement(target, name).ToHandleChecked(); |
frame->SetParameterValue(i, *value); |
@@ -11600,7 +11600,7 @@ static bool SetContextLocalValue(Isolate* isolate, |
VariableMode mode; |
InitializationFlag init_flag; |
int context_index = |
- scope_info->ContextSlotIndex(*next_name, &mode, &init_flag); |
+ ScopeInfo::ContextSlotIndex(scope_info, next_name, &mode, &init_flag); |
context->set(context_index, *new_value); |
return true; |
} |