| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index c69882f5a36b2de7a517bfd0a79cd12eb16296fd..fa606429255957cfdfba24041ad298dd0a5da3d2 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -11193,6 +11193,9 @@ class FrameInspector {
|
| ? deoptimized_frame_->HasConstructStub()
|
| : frame_->IsConstructor();
|
| }
|
| + Object* GetContext() {
|
| + return is_optimized_ ? deoptimized_frame_->GetContext() : frame_->context();
|
| + }
|
|
|
| // To inspect all the provided arguments the frame might need to be
|
| // replaced with the arguments frame.
|
| @@ -11341,7 +11344,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) {
|
| if (local < local_count) {
|
| // Get the context containing declarations.
|
| Handle<Context> context(
|
| - Context::cast(it.frame()->context())->declaration_context());
|
| + Context::cast(frame_inspector.GetContext())->declaration_context());
|
| for (; i < scope_info->LocalCount(); ++i) {
|
| if (scope_info->LocalIsSynthetic(i))
|
| continue;
|
| @@ -13026,7 +13029,7 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluate) {
|
| isolate->set_context(*(save->context()));
|
|
|
| // Evaluate on the context of the frame.
|
| - Handle<Context> context(Context::cast(frame->context()));
|
| + Handle<Context> context(Context::cast(frame_inspector.GetContext()));
|
| DCHECK(!context.is_null());
|
|
|
| // Materialize stack locals and the arguments object.
|
|
|