Index: src/ic.h |
diff --git a/src/ic.h b/src/ic.h |
index 96838c7338a20878279172f24b9fef58486e7287..f0adcf668bda90ced5bbe805c1bfc47750d92ecb 100644 |
--- a/src/ic.h |
+++ b/src/ic.h |
@@ -398,12 +398,6 @@ class KeyedLoadIC: public IC { |
class StoreIC: public IC { |
public: |
- |
- enum StoreICStrictMode { |
- kStoreICNonStrict = kNonStrictMode, |
- kStoreICStrict = kStrictMode |
- }; |
- |
Martin Maly
2011/02/24 06:33:34
I'd have to clone this enum for KeyedStoreIC also,
|
StoreIC() : IC(NO_EXTRA_FRAME) { ASSERT(target()->is_store_stub()); } |
MUST_USE_RESULT MaybeObject* Store(State state, |
@@ -419,7 +413,7 @@ class StoreIC: public IC { |
Code::ExtraICState extra_ic_state); |
static void GenerateArrayLength(MacroAssembler* masm); |
static void GenerateNormal(MacroAssembler* masm); |
- static void GenerateGlobalProxy(MacroAssembler* masm); |
+ static void GenerateGlobalProxy(MacroAssembler* masm, StrictModeFlag strict); |
// Clear the use of an inlined version. |
static void ClearInlinedVersion(Address address); |
@@ -473,6 +467,7 @@ class KeyedStoreIC: public IC { |
KeyedStoreIC() : IC(NO_EXTRA_FRAME) { } |
MUST_USE_RESULT MaybeObject* Store(State state, |
+ Code::ExtraICState extra_ic_state, |
Handle<Object> object, |
Handle<Object> name, |
Handle<Object> value); |
@@ -480,8 +475,9 @@ class KeyedStoreIC: public IC { |
// Code generators for stub routines. Only called once at startup. |
static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); } |
static void GenerateMiss(MacroAssembler* masm); |
- static void GenerateRuntimeSetProperty(MacroAssembler* masm); |
- static void GenerateGeneric(MacroAssembler* masm); |
+ static void GenerateRuntimeSetProperty(MacroAssembler* masm, |
+ StrictModeFlag strict_mode); |
+ static void GenerateGeneric(MacroAssembler* masm, StrictModeFlag strict_mode); |
// Clear the inlined version so the IC is always hit. |
static void ClearInlinedVersion(Address address); |
@@ -501,12 +497,21 @@ class KeyedStoreIC: public IC { |
static Code* initialize_stub() { |
return Builtins::builtin(Builtins::KeyedStoreIC_Initialize); |
} |
+ static Code* initialize_stub_strict() { |
+ return Builtins::builtin(Builtins::KeyedStoreIC_Initialize_Strict); |
+ } |
static Code* megamorphic_stub() { |
return Builtins::builtin(Builtins::KeyedStoreIC_Generic); |
} |
+ static Code* megamorphic_stub_strict() { |
+ return Builtins::builtin(Builtins::KeyedStoreIC_Generic_Strict); |
+ } |
static Code* generic_stub() { |
return Builtins::builtin(Builtins::KeyedStoreIC_Generic); |
} |
+ static Code* generic_stub_strict() { |
+ return Builtins::builtin(Builtins::KeyedStoreIC_Generic_Strict); |
+ } |
static void Clear(Address address, Code* target); |