Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index cfe62e72fb3f102fe14580109170e9122ed08a4e..f48dbd2c582453f52e42cc3db38daafae479bf86 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -4876,12 +4876,13 @@ void ICCompareStub::GenerateMiss(MacroAssembler* masm) { |
} |
-void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm, |
- Label* miss, |
- Label* done, |
- Register properties, |
- String* name, |
- Register r0) { |
+MaybeObject* StringDictionaryLookupStub::GenerateNegativeLookup( |
+ MacroAssembler* masm, |
+ Label* miss, |
+ Label* done, |
+ Register properties, |
+ String* name, |
+ Register r0) { |
// If names of slots in range from 1 to kProbes - 1 for the hash value are |
// not equal to the name and kProbes-th slot is not used (its name is the |
// undefined value), it guarantees the hash table doesn't contain the |
@@ -4928,10 +4929,12 @@ void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm, |
StringDictionaryLookupStub::NEGATIVE_LOOKUP); |
__ Push(Handle<Object>(name)); |
__ push(Immediate(name->Hash())); |
- __ CallStub(&stub); |
+ MaybeObject* result = masm->TryCallStub(&stub); |
+ if (result->IsFailure()) return result; |
__ testq(r0, r0); |
__ j(not_zero, miss); |
__ jmp(done); |
+ return result; |
} |