Chromium Code Reviews| 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..168bd81a92fdfc0e67e002a74e128a825b5be671 100644 |
| --- a/src/ia32/code-stubs-ia32.cc |
| +++ b/src/ia32/code-stubs-ia32.cc |
| @@ -5038,12 +5038,16 @@ 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. |
| + // Most 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); |
| + // However, it is expected that SuspendJSGeneratorObject returns the hole. |
|
Michael Starzinger
2013/04/25 10:39:57
I am fine with landing this white-listing for now
|
| + __ cmp(ebx, Immediate(ExternalReference( |
| + Runtime::kSuspendJSGeneratorObject, masm->isolate()))); |
| + __ j(equal, &okay, Label::kNear); |
| __ int3(); |
| __ bind(&okay); |
| } |