Index: src/ic.h |
diff --git a/src/ic.h b/src/ic.h |
index e137f50874aed18ab8574c645b7bf34b0f9fdfcc..6d5f321e6aaaf9740529752a36202650bfc0c02a 100644 |
--- a/src/ic.h |
+++ b/src/ic.h |
@@ -356,12 +356,17 @@ class KeyedIC: public IC { |
ElementsKind elements_kind) = 0; |
protected: |
- virtual Code* string_stub() { |
- return NULL; |
+ virtual Handle<Code> string_stub() { |
+ return Handle<Code>::null(); |
} |
virtual Code::Kind kind() const = 0; |
+ Handle<Code> ComputeStub(Handle<JSObject> receiver, |
+ StubKind stub_kind, |
+ StrictModeFlag strict_mode, |
+ Handle<Code> default_stub); |
+ |
MaybeObject* ComputeStub(JSObject* receiver, |
StubKind stub_kind, |
StrictModeFlag strict_mode, |
@@ -433,9 +438,8 @@ class KeyedLoadIC: public KeyedIC { |
MapList* receiver_maps, |
StrictModeFlag strict_mode); |
- virtual Code* string_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_String); |
+ virtual Handle<Code> string_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_String(); |
} |
private: |
@@ -450,25 +454,20 @@ class KeyedLoadIC: public KeyedIC { |
return Isolate::Current()->builtins()->builtin( |
Builtins::kKeyedLoadIC_Initialize); |
} |
- Code* megamorphic_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_Generic); |
+ Handle<Code> megamorphic_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_Generic(); |
} |
- Code* generic_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_Generic); |
+ Handle<Code> generic_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_Generic(); |
} |
- Code* pre_monomorphic_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_PreMonomorphic); |
+ Handle<Code> pre_monomorphic_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_PreMonomorphic(); |
} |
- Code* indexed_interceptor_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_IndexedInterceptor); |
+ Handle<Code> indexed_interceptor_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_IndexedInterceptor(); |
} |
- Code* non_strict_arguments_stub() { |
- return isolate()->builtins()->builtin( |
- Builtins::kKeyedLoadIC_NonStrictArguments); |
+ Handle<Code> non_strict_arguments_stub() { |
+ return isolate()->builtins()->KeyedLoadIC_NonStrictArguments(); |
} |
static void Clear(Address address, Code* target); |