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))); |