Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 55d8b885c842326f219eb816289bb42e3f36c965..b243b56093167772c395b22892603a7985964c93 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -53,6 +53,7 @@ namespace internal { |
V(CEntry) \ |
V(JSEntry) \ |
V(KeyedLoadElement) \ |
+ V(KeyedLoadGeneric) \ |
V(ArrayNoArgumentConstructor) \ |
V(ArraySingleArgumentConstructor) \ |
V(ArrayNArgumentsConstructor) \ |
@@ -1845,6 +1846,29 @@ class KeyedLoadDictionaryElementPlatformStub : public PlatformCodeStub { |
}; |
+class KeyedLoadGenericElementStub : public HydrogenCodeStub { |
+ public: |
+ explicit KeyedLoadGenericElementStub(Isolate *isolate) |
+ : HydrogenCodeStub(isolate) {} |
+ |
+ virtual Handle<Code> GenerateCode() V8_OVERRIDE; |
+ |
+ virtual void InitializeInterfaceDescriptor( |
+ CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; |
+ |
+ static void InstallDescriptors(Isolate* isolate); |
+ |
+ virtual Code::Kind GetCodeKind() const { return Code::KEYED_LOAD_IC; } |
+ virtual InlineCacheState GetICState() { return GENERIC; } |
+ |
+ private: |
+ Major MajorKey() { return KeyedLoadGeneric; } |
+ int NotMissMinorKey() { return 0; } |
+ |
+ DISALLOW_COPY_AND_ASSIGN(KeyedLoadGenericElementStub); |
+}; |
+ |
+ |
class DoubleToIStub : public PlatformCodeStub { |
public: |
DoubleToIStub(Isolate* isolate, |