Index: src/stub-cache.h |
diff --git a/src/stub-cache.h b/src/stub-cache.h |
index 8c863e1bd895eb8e46c4896336393483248f40fa..e9ef7d5e7b67b0f17de24fd2efe4fb27a20b49a2 100644 |
--- a/src/stub-cache.h |
+++ b/src/stub-cache.h |
@@ -57,17 +57,13 @@ class StubCache { |
Handle<JSObject> StubHolder(Handle<JSObject> receiver, |
Handle<JSObject> holder); |
- Handle<Code> FindIC(Handle<Name> name, |
- Handle<Map> stub_holder_map, |
+ Handle<Code> FindIC(Handle<Name> name, Handle<Map> stub_holder_map, |
Code::Kind kind, |
ExtraICState extra_state = kNoExtraICState, |
- InlineCacheHolderFlag cache_holder = OWN_MAP); |
+ CacheHolderFlag cache_holder = kCacheOnReceiver); |
- Handle<Code> FindHandler(Handle<Name> name, |
- Handle<Map> map, |
- Code::Kind kind, |
- InlineCacheHolderFlag cache_holder, |
- Code::StubType type); |
+ Handle<Code> FindHandler(Handle<Name> name, Handle<Map> map, Code::Kind kind, |
+ CacheHolderFlag cache_holder, Code::StubType type); |
Handle<Code> ComputeMonomorphicIC(Code::Kind kind, |
Handle<Name> name, |
@@ -114,6 +110,8 @@ class StubCache { |
// Update cache for entry hash(name, map). |
Code* Set(Name* name, Map* map, Code* code); |
+ Code* Get(Name* name, Map* map, Code::Flags flags); |
+ |
// Clear the lookup table (@ mark compact collection). |
void Clear(); |
@@ -414,10 +412,9 @@ enum FrontendCheckType { PERFORM_INITIAL_CHECKS, SKIP_INITIAL_CHECKS }; |
class BaseLoadStoreStubCompiler: public StubCompiler { |
public: |
- BaseLoadStoreStubCompiler(Isolate* isolate, |
- Code::Kind kind, |
+ BaseLoadStoreStubCompiler(Isolate* isolate, Code::Kind kind, |
ExtraICState extra_ic_state = kNoExtraICState, |
- InlineCacheHolderFlag cache_holder = OWN_MAP) |
+ CacheHolderFlag cache_holder = kCacheOnReceiver) |
: StubCompiler(isolate, extra_ic_state), |
kind_(kind), |
cache_holder_(cache_holder) { |
@@ -498,7 +495,7 @@ class BaseLoadStoreStubCompiler: public StubCompiler { |
bool IncludesNumberType(TypeHandleList* types); |
Code::Kind kind_; |
- InlineCacheHolderFlag cache_holder_; |
+ CacheHolderFlag cache_holder_; |
Register* registers_; |
}; |
@@ -507,10 +504,10 @@ class LoadStubCompiler: public BaseLoadStoreStubCompiler { |
public: |
LoadStubCompiler(Isolate* isolate, |
ExtraICState extra_ic_state = kNoExtraICState, |
- InlineCacheHolderFlag cache_holder = OWN_MAP, |
+ CacheHolderFlag cache_holder = kCacheOnReceiver, |
Code::Kind kind = Code::LOAD_IC) |
- : BaseLoadStoreStubCompiler(isolate, kind, extra_ic_state, |
- cache_holder) { } |
+ : BaseLoadStoreStubCompiler(isolate, kind, extra_ic_state, cache_holder) { |
+ } |
virtual ~LoadStubCompiler() { } |
Handle<Code> CompileLoadField(Handle<HeapType> type, |
@@ -615,9 +612,9 @@ class KeyedLoadStubCompiler: public LoadStubCompiler { |
public: |
KeyedLoadStubCompiler(Isolate* isolate, |
ExtraICState extra_ic_state = kNoExtraICState, |
- InlineCacheHolderFlag cache_holder = OWN_MAP) |
+ CacheHolderFlag cache_holder = kCacheOnReceiver) |
: LoadStubCompiler(isolate, extra_ic_state, cache_holder, |
- Code::KEYED_LOAD_IC) { } |
+ Code::KEYED_LOAD_IC) {} |
Handle<Code> CompileLoadElement(Handle<Map> receiver_map); |