| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 56aa19ef0eec91a3b94a4c4e2691a4cd3baca6e4..10de6f9e5ec001c595a0b86632599f9be9a22074 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -11227,6 +11227,7 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector(
|
| ? frame_inspector->GetParameter(i)
|
| : isolate->heap()->undefined_value(),
|
| isolate);
|
| + ASSERT(!value->IsTheHole());
|
|
|
| RETURN_IF_EMPTY_HANDLE_VALUE(
|
| isolate,
|
| @@ -11241,12 +11242,15 @@ static Handle<JSObject> MaterializeStackLocalsWithFrameInspector(
|
|
|
| // Second fill all stack locals.
|
| for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
|
| + Handle<Object> value(frame_inspector->GetExpression(i), isolate);
|
| + if (value->IsTheHole()) continue;
|
| +
|
| RETURN_IF_EMPTY_HANDLE_VALUE(
|
| isolate,
|
| SetProperty(isolate,
|
| target,
|
| Handle<String>(scope_info->StackLocalName(i)),
|
| - Handle<Object>(frame_inspector->GetExpression(i), isolate),
|
| + value,
|
| NONE,
|
| kNonStrictMode),
|
| Handle<JSObject>());
|
| @@ -11273,6 +11277,7 @@ static void UpdateStackLocalsFromMaterializedObject(Isolate* isolate,
|
|
|
| // Parameters.
|
| for (int i = 0; i < scope_info->ParameterCount(); ++i) {
|
| + ASSERT(!frame->GetParameter(i)->IsTheHole());
|
| HandleScope scope(isolate);
|
| Handle<Object> value = GetProperty(
|
| isolate, target, Handle<String>(scope_info->ParameterName(i)));
|
| @@ -11281,6 +11286,7 @@ static void UpdateStackLocalsFromMaterializedObject(Isolate* isolate,
|
|
|
| // Stack locals.
|
| for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
|
| + if (frame->GetExpression(i)->IsTheHole()) continue;
|
| HandleScope scope(isolate);
|
| Handle<Object> value = GetProperty(
|
| isolate, target, Handle<String>(scope_info->StackLocalName(i)));
|
|
|