diff options
Diffstat (limited to 'deps/v8/src/ia32/stub-cache-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/stub-cache-ia32.cc | 394 |
1 files changed, 211 insertions, 183 deletions
diff --git a/deps/v8/src/ia32/stub-cache-ia32.cc b/deps/v8/src/ia32/stub-cache-ia32.cc index bb0a46cd8b..90dabed0e5 100644 --- a/deps/v8/src/ia32/stub-cache-ia32.cc +++ b/deps/v8/src/ia32/stub-cache-ia32.cc @@ -807,13 +807,16 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, // Generate code to check that a global property cell is empty. Create // the property cell at compilation time if no cell exists for the // property. -static Object* GenerateCheckPropertyCell(MacroAssembler* masm, - GlobalObject* global, - String* name, - Register scratch, - Label* miss) { - Object* probe = global->EnsurePropertyCell(name); - if (probe->IsFailure()) return probe; +MUST_USE_RESULT static MaybeObject* GenerateCheckPropertyCell( + MacroAssembler* masm, + GlobalObject* global, + String* name, + Register scratch, + Label* miss) { + Object* probe; + { MaybeObject* maybe_probe = global->EnsurePropertyCell(name); + if (!maybe_probe->ToObject(&probe)) return maybe_probe; + } JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast(probe); ASSERT(cell->value()->IsTheHole()); __ mov(scratch, Immediate(Handle<Object>(cell))); @@ -826,23 +829,24 @@ static Object* GenerateCheckPropertyCell(MacroAssembler* masm, // Calls GenerateCheckPropertyCell for each global object in the prototype chain // from object to (but not including) holder. -static Object* GenerateCheckPropertyCells(MacroAssembler* masm, - JSObject* object, - JSObject* holder, - String* name, - Register scratch, - Label* miss) { +MUST_USE_RESULT static MaybeObject* GenerateCheckPropertyCells( + MacroAssembler* masm, + JSObject* object, + JSObject* holder, + String* name, + Register scratch, + Label* miss) { JSObject* current = object; while (current != holder) { if (current->IsGlobalObject()) { - Object* cell = GenerateCheckPropertyCell(masm, - GlobalObject::cast(current), - name, - scratch, - miss); - if (cell->IsFailure()) { - return cell; - } + // Returns a cell or a failure. + MaybeObject* result = GenerateCheckPropertyCell( + masm, + GlobalObject::cast(current), + name, + scratch, + miss); + if (result->IsFailure()) return result; } ASSERT(current->IsJSObject()); current = JSObject::cast(current->GetPrototype()); @@ -892,13 +896,13 @@ Register StubCompiler::CheckPrototypes(JSObject* object, !current->IsJSGlobalObject() && !current->IsJSGlobalProxy()) { if (!name->IsSymbol()) { - Object* lookup_result = Heap::LookupSymbol(name); - if (lookup_result->IsFailure()) { + MaybeObject* maybe_lookup_result = Heap::LookupSymbol(name); + Object* lookup_result = NULL; // Initialization to please compiler. + if (!maybe_lookup_result->ToObject(&lookup_result)) { set_failure(Failure::cast(lookup_result)); return reg; - } else { - name = String::cast(lookup_result); } + name = String::cast(lookup_result); } ASSERT(current->property_dictionary()->FindEntry(name) == StringDictionary::kNotFound); @@ -975,12 +979,12 @@ Register StubCompiler::CheckPrototypes(JSObject* object, // If we've skipped any global objects, it's not enough to verify // that their maps haven't changed. We also need to check that the // property cell for the property is still empty. - Object* result = GenerateCheckPropertyCells(masm(), - object, - holder, - name, - scratch1, - miss); + MaybeObject* result = GenerateCheckPropertyCells(masm(), + object, + holder, + name, + scratch1, + miss); if (result->IsFailure()) set_failure(Failure::cast(result)); // Return the register containing the holder. @@ -1035,7 +1039,6 @@ bool StubCompiler::GenerateLoadCallback(JSObject* object, Handle<AccessorInfo> callback_handle(callback); __ EnterInternalFrame(); - __ PushHandleScope(scratch2); // Push the stack address where the list of arguments ends. __ mov(scratch2, esp); __ sub(Operand(scratch2), Immediate(2 * kPointerSize)); @@ -1065,21 +1068,12 @@ bool StubCompiler::GenerateLoadCallback(JSObject* object, // already generated). Do not allow the assembler to perform a // garbage collection but instead return the allocation failure // object. - Object* result = masm()->TryCallStub(&stub); - if (result->IsFailure()) { - *failure = Failure::cast(result); - return false; - } - - // We need to avoid using eax since that now holds the result. - Register tmp = scratch2.is(eax) ? reg : scratch2; - // Emitting PopHandleScope may try to allocate. Do not allow the - // assembler to perform a garbage collection but instead return a - // failure object. - result = masm()->TryPopHandleScope(eax, tmp); - if (result->IsFailure()) { - *failure = Failure::cast(result); - return false; + Object* result = NULL; // Initialization to please compiler. + { MaybeObject* try_call_result = masm()->TryCallStub(&stub); + if (!try_call_result->ToObject(&result)) { + *failure = Failure::cast(result); + return false; + } } __ LeaveInternalFrame(); @@ -1314,18 +1308,22 @@ void CallStubCompiler::GenerateLoadFunctionFromCell(JSGlobalPropertyCell* cell, } -Object* CallStubCompiler::GenerateMissBranch() { - Object* obj = StubCache::ComputeCallMiss(arguments().immediate(), kind_); - if (obj->IsFailure()) return obj; +MaybeObject* CallStubCompiler::GenerateMissBranch() { + Object* obj; + { MaybeObject* maybe_obj = + StubCache::ComputeCallMiss(arguments().immediate(), kind_); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } __ jmp(Handle<Code>(Code::cast(obj)), RelocInfo::CODE_TARGET); return obj; } -Object* CallStubCompiler::CompileCallField(JSObject* object, - JSObject* holder, - int index, - String* name) { +MUST_USE_RESULT MaybeObject* CallStubCompiler::CompileCallField( + JSObject* object, + JSObject* holder, + int index, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -1369,19 +1367,21 @@ Object* CallStubCompiler::CompileCallField(JSObject* object, // Handle call cache miss. __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(FIELD, name); } -Object* CallStubCompiler::CompileArrayPushCall(Object* object, - JSObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileArrayPushCall(Object* object, + JSObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -1465,6 +1465,10 @@ Object* CallStubCompiler::CompileArrayPushCall(Object* object, __ ret((argc + 1) * kPointerSize); __ bind(&attempt_to_grow_elements); + if (!FLAG_inline_new) { + __ jmp(&call_builtin); + } + ExternalReference new_space_allocation_top = ExternalReference::new_space_allocation_top_address(); ExternalReference new_space_allocation_limit = @@ -1515,19 +1519,21 @@ Object* CallStubCompiler::CompileArrayPushCall(Object* object, } __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(function); } -Object* CallStubCompiler::CompileArrayPopCall(Object* object, - JSObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileArrayPopCall(Object* object, + JSObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -1596,15 +1602,17 @@ Object* CallStubCompiler::CompileArrayPopCall(Object* object, 1); __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(function); } -Object* CallStubCompiler::CompileStringCharCodeAtCall( +MaybeObject* CallStubCompiler::CompileStringCharCodeAtCall( Object* object, JSObject* holder, JSGlobalPropertyCell* cell, @@ -1666,19 +1674,22 @@ Object* CallStubCompiler::CompileStringCharCodeAtCall( __ ret((argc + 1) * kPointerSize); __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(function); } -Object* CallStubCompiler::CompileStringCharAtCall(Object* object, - JSObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileStringCharAtCall( + Object* object, + JSObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : function name // -- esp[0] : return address @@ -1738,15 +1749,17 @@ Object* CallStubCompiler::CompileStringCharAtCall(Object* object, __ ret((argc + 1) * kPointerSize); __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(function); } -Object* CallStubCompiler::CompileStringFromCharCodeCall( +MaybeObject* CallStubCompiler::CompileStringFromCharCodeCall( Object* object, JSObject* holder, JSGlobalPropertyCell* cell, @@ -1811,19 +1824,21 @@ Object* CallStubCompiler::CompileStringFromCharCodeCall( __ bind(&miss); // ecx: function name. - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); } -Object* CallStubCompiler::CompileMathFloorCall(Object* object, - JSObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileMathFloorCall(Object* object, + JSObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -1936,19 +1951,21 @@ Object* CallStubCompiler::CompileMathFloorCall(Object* object, __ bind(&miss); // ecx: function name. - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); } -Object* CallStubCompiler::CompileMathAbsCall(Object* object, - JSObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileMathAbsCall(Object* object, + JSObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -2039,19 +2056,21 @@ Object* CallStubCompiler::CompileMathAbsCall(Object* object, __ bind(&miss); // ecx: function name. - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); } -Object* CallStubCompiler::CompileCallConstant(Object* object, - JSObject* holder, - JSFunction* function, - String* name, - CheckType check) { +MaybeObject* CallStubCompiler::CompileCallConstant(Object* object, + JSObject* holder, + JSFunction* function, + String* name, + CheckType check) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -2063,8 +2082,10 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, SharedFunctionInfo* function_info = function->shared(); if (function_info->HasCustomCallGenerator()) { const int id = function_info->custom_call_generator_id(); - Object* result = CompileCustomCall( + MaybeObject* maybe_result = CompileCustomCall( id, object, holder, NULL, function, name); + Object* result; + if (!maybe_result->ToObject(&result)) return maybe_result; // undefined means bail out to regular compiler. if (!result->IsUndefined()) return result; } @@ -2192,17 +2213,19 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, FreeSpaceForFastApiCall(masm(), eax); } __ bind(&miss_in_smi_check); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(function); } -Object* CallStubCompiler::CompileCallInterceptor(JSObject* object, - JSObject* holder, - String* name) { +MaybeObject* CallStubCompiler::CompileCallInterceptor(JSObject* object, + JSObject* holder, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -2257,19 +2280,21 @@ Object* CallStubCompiler::CompileCallInterceptor(JSObject* object, // Handle load cache miss. __ bind(&miss); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(INTERCEPTOR, name); } -Object* CallStubCompiler::CompileCallGlobal(JSObject* object, - GlobalObject* holder, - JSGlobalPropertyCell* cell, - JSFunction* function, - String* name) { +MaybeObject* CallStubCompiler::CompileCallGlobal(JSObject* object, + GlobalObject* holder, + JSGlobalPropertyCell* cell, + JSFunction* function, + String* name) { // ----------- S t a t e ------------- // -- ecx : name // -- esp[0] : return address @@ -2281,8 +2306,10 @@ Object* CallStubCompiler::CompileCallGlobal(JSObject* object, SharedFunctionInfo* function_info = function->shared(); if (function_info->HasCustomCallGenerator()) { const int id = function_info->custom_call_generator_id(); - Object* result = CompileCustomCall( + MaybeObject* maybe_result = CompileCustomCall( id, object, holder, cell, function, name); + Object* result; + if (!maybe_result->ToObject(&result)) return maybe_result; // undefined means bail out to regular compiler. if (!result->IsUndefined()) return result; } @@ -2318,18 +2345,20 @@ Object* CallStubCompiler::CompileCallGlobal(JSObject* object, // Handle call cache miss. __ bind(&miss); __ IncrementCounter(&Counters::call_global_inline_miss, 1); - Object* obj = GenerateMissBranch(); - if (obj->IsFailure()) return obj; + Object* obj; + { MaybeObject* maybe_obj = GenerateMissBranch(); + if (!maybe_obj->ToObject(&obj)) return maybe_obj; + } // Return the generated code. return GetCode(NORMAL, name); } -Object* StoreStubCompiler::CompileStoreField(JSObject* object, - int index, - Map* transition, - String* name) { +MaybeObject* StoreStubCompiler::CompileStoreField(JSObject* object, + int index, + Map* transition, + String* name) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : name @@ -2357,9 +2386,9 @@ Object* StoreStubCompiler::CompileStoreField(JSObject* object, } -Object* StoreStubCompiler::CompileStoreCallback(JSObject* object, - AccessorInfo* callback, - String* name) { +MaybeObject* StoreStubCompiler::CompileStoreCallback(JSObject* object, + AccessorInfo* callback, + String* name) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : name @@ -2408,8 +2437,8 @@ Object* StoreStubCompiler::CompileStoreCallback(JSObject* object, } -Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, - String* name) { +MaybeObject* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, + String* name) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : name @@ -2457,9 +2486,9 @@ Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, } -Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, - JSGlobalPropertyCell* cell, - String* name) { +MaybeObject* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, + JSGlobalPropertyCell* cell, + String* name) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : name @@ -2492,10 +2521,10 @@ Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, } -Object* KeyedStoreStubCompiler::CompileStoreField(JSObject* object, - int index, - Map* transition, - String* name) { +MaybeObject* KeyedStoreStubCompiler::CompileStoreField(JSObject* object, + int index, + Map* transition, + String* name) { // ----------- S t a t e ------------- // -- eax : value // -- ecx : key @@ -2529,9 +2558,9 @@ Object* KeyedStoreStubCompiler::CompileStoreField(JSObject* object, } -Object* LoadStubCompiler::CompileLoadNonexistent(String* name, - JSObject* object, - JSObject* last) { +MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, + JSObject* object, + JSObject* last) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2553,11 +2582,11 @@ Object* LoadStubCompiler::CompileLoadNonexistent(String* name, // If the last object in the prototype chain is a global object, // check that the global property cell is empty. if (last->IsGlobalObject()) { - Object* cell = GenerateCheckPropertyCell(masm(), - GlobalObject::cast(last), - name, - edx, - &miss); + MaybeObject* cell = GenerateCheckPropertyCell(masm(), + GlobalObject::cast(last), + name, + edx, + &miss); if (cell->IsFailure()) { miss.Unuse(); return cell; @@ -2577,10 +2606,10 @@ Object* LoadStubCompiler::CompileLoadNonexistent(String* name, } -Object* LoadStubCompiler::CompileLoadField(JSObject* object, - JSObject* holder, - int index, - String* name) { +MaybeObject* LoadStubCompiler::CompileLoadField(JSObject* object, + JSObject* holder, + int index, + String* name) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2597,10 +2626,10 @@ Object* LoadStubCompiler::CompileLoadField(JSObject* object, } -Object* LoadStubCompiler::CompileLoadCallback(String* name, - JSObject* object, - JSObject* holder, - AccessorInfo* callback) { +MaybeObject* LoadStubCompiler::CompileLoadCallback(String* name, + JSObject* object, + JSObject* holder, + AccessorInfo* callback) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2624,10 +2653,10 @@ Object* LoadStubCompiler::CompileLoadCallback(String* name, } -Object* LoadStubCompiler::CompileLoadConstant(JSObject* object, - JSObject* holder, - Object* value, - String* name) { +MaybeObject* LoadStubCompiler::CompileLoadConstant(JSObject* object, + JSObject* holder, + Object* value, + String* name) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2644,9 +2673,9 @@ Object* LoadStubCompiler::CompileLoadConstant(JSObject* object, } -Object* LoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, - JSObject* holder, - String* name) { +MaybeObject* LoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, + JSObject* holder, + String* name) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2678,11 +2707,11 @@ Object* LoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, } -Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object, - GlobalObject* holder, - JSGlobalPropertyCell* cell, - String* name, - bool is_dont_delete) { +MaybeObject* LoadStubCompiler::CompileLoadGlobal(JSObject* object, + GlobalObject* holder, + JSGlobalPropertyCell* cell, + String* name, + bool is_dont_delete) { // ----------- S t a t e ------------- // -- eax : receiver // -- ecx : name @@ -2727,10 +2756,10 @@ Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object, } -Object* KeyedLoadStubCompiler::CompileLoadField(String* name, - JSObject* receiver, - JSObject* holder, - int index) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadField(String* name, + JSObject* receiver, + JSObject* holder, + int index) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2755,10 +2784,11 @@ Object* KeyedLoadStubCompiler::CompileLoadField(String* name, } -Object* KeyedLoadStubCompiler::CompileLoadCallback(String* name, - JSObject* receiver, - JSObject* holder, - AccessorInfo* callback) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadCallback( + String* name, + JSObject* receiver, + JSObject* holder, + AccessorInfo* callback) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2790,10 +2820,10 @@ Object* KeyedLoadStubCompiler::CompileLoadCallback(String* name, } -Object* KeyedLoadStubCompiler::CompileLoadConstant(String* name, - JSObject* receiver, - JSObject* holder, - Object* value) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadConstant(String* name, + JSObject* receiver, + JSObject* holder, + Object* value) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2818,9 +2848,9 @@ Object* KeyedLoadStubCompiler::CompileLoadConstant(String* name, } -Object* KeyedLoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, - JSObject* holder, - String* name) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, + JSObject* holder, + String* name) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2855,9 +2885,7 @@ Object* KeyedLoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, } - - -Object* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2881,7 +2909,7 @@ Object* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { } -Object* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2905,7 +2933,7 @@ Object* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { } -Object* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { +MaybeObject* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver @@ -2931,7 +2959,7 @@ Object* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { // Specialized stub for constructing objects from functions which only have only // simple assignments of the form this.x = ...; in their body. -Object* ConstructStubCompiler::CompileConstructStub( +MaybeObject* ConstructStubCompiler::CompileConstructStub( SharedFunctionInfo* shared) { // ----------- S t a t e ------------- // -- eax : argc |