Index: src/ic.h |
=================================================================== |
--- src/ic.h (revision 6378) |
+++ src/ic.h (working copy) |
@@ -345,6 +345,12 @@ |
static void GenerateGeneric(MacroAssembler* masm); |
static void GenerateString(MacroAssembler* masm); |
+ // Generators for external array types. See objects.h. |
+ // These are similar to the generic IC; they optimize the case of |
+ // operating upon external array types but fall back to the runtime |
+ // for all other types. |
+ static void GenerateExternalArray(MacroAssembler* masm, |
+ ExternalArrayType array_type); |
static void GenerateIndexedInterceptor(MacroAssembler* masm); |
// Clear the use of the inlined version. |
@@ -380,6 +386,7 @@ |
static Code* string_stub() { |
return Builtins::builtin(Builtins::KeyedLoadIC_String); |
} |
+ static Code* external_array_stub(JSObject::ElementsKind elements_kind); |
static Code* indexed_interceptor_stub() { |
return Builtins::builtin(Builtins::KeyedLoadIC_IndexedInterceptor); |
@@ -463,6 +470,13 @@ |
static void GenerateRuntimeSetProperty(MacroAssembler* masm); |
static void GenerateGeneric(MacroAssembler* masm); |
+ // Generators for external array types. See objects.h. |
+ // These are similar to the generic IC; they optimize the case of |
+ // operating upon external array types but fall back to the runtime |
+ // for all other types. |
+ static void GenerateExternalArray(MacroAssembler* masm, |
+ ExternalArrayType array_type); |
+ |
// Clear the inlined version so the IC is always hit. |
static void ClearInlinedVersion(Address address); |
@@ -487,6 +501,7 @@ |
static Code* generic_stub() { |
return Builtins::builtin(Builtins::KeyedStoreIC_Generic); |
} |
+ static Code* external_array_stub(JSObject::ElementsKind elements_kind); |
static void Clear(Address address, Code* target); |