diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc index 2cd2e7ba46f..e0c8f3d7b5a 100644 --- a/src/x87/code-stubs-x87.cc +++ b/src/x87/code-stubs-x87.cc @@ -2186,6 +2186,16 @@ void CEntryStub::Generate(MacroAssembler* masm) { __ call(ebx); // Result is in eax or edx:eax - do not destroy these registers! + // 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, isolate()->factory()->the_hole_value()); + __ j(not_equal, &okay, Label::kNear); + __ int3(); + __ bind(&okay); + } + // Check result for exception sentinel. Label exception_returned; __ cmp(eax, isolate()->factory()->exception());