Index: src/stub-cache.h |
diff --git a/src/stub-cache.h b/src/stub-cache.h |
index daa1e6e966042c6a0294384afb1cd8129cbbe9dc..d893349b7bc3c36e96fdce515dc80bc2ea0b57bb 100644 |
--- a/src/stub-cache.h |
+++ b/src/stub-cache.h |
@@ -611,7 +611,8 @@ class LoadStubCompiler: public BaseLoadStoreStubCompiler { |
void GenerateLoadConstant(Handle<Object> value); |
void GenerateLoadCallback(Register reg, |
Handle<ExecutableAccessorInfo> callback); |
- void GenerateLoadCallback(const CallOptimization& call_optimization); |
+ void GenerateLoadCallback(const CallOptimization& call_optimization, |
+ Handle<Map> receiver_map); |
void GenerateLoadInterceptor(Register holder_reg, |
Handle<Object> object, |
Handle<JSObject> holder, |
@@ -827,11 +828,9 @@ class CallOptimization BASE_EMBEDDED { |
Handle<Map> receiver_map, |
HolderLookup* holder_lookup) const; |
- bool IsCompatibleReceiver(Object* receiver) { |
- ASSERT(is_simple_api_call()); |
- if (expected_receiver_type_.is_null()) return true; |
- return expected_receiver_type_->IsTemplateFor(receiver); |
- } |
+ // Check if the api holder is between the receiver and the holder. |
+ bool IsCompatibleReceiver(Handle<Object> receiver, |
+ Handle<JSObject> holder) const; |
private: |
void Initialize(Handle<JSFunction> function); |