Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index e29d834de110d0b616732f725ea8d8b51b84fa73..9921f074c9131814673780729061cf34a017abf9 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -5038,12 +5038,17 @@ void CEntryStub::GenerateCore(MacroAssembler* masm, |
__ dec(Operand::StaticVariable(scope_depth)); |
} |
- // Make sure we're not trying to return 'the hole' from the runtime |
- // call as this may lead to crashes in the IC code later. |
+ // Runtime functions should not return 'the hole'. Allowing it to escape may |
+ // lead to crashes in the IC code later. |
if (FLAG_debug_code) { |
Label okay; |
__ cmp(eax, masm->isolate()->factory()->the_hole_value()); |
__ j(not_equal, &okay, Label::kNear); |
+ // TODO(wingo): Currently SuspendJSGeneratorObject returns the hole. Change |
+ // to return another sentinel like a harmony symbol. |
+ __ cmp(ebx, Immediate(ExternalReference( |
+ Runtime::kSuspendJSGeneratorObject, masm->isolate()))); |
+ __ j(equal, &okay, Label::kNear); |
__ int3(); |
__ bind(&okay); |
} |