Index: src/stub-cache.h |
diff --git a/src/stub-cache.h b/src/stub-cache.h |
index bca3b7bca4050296c1aec7bd3e5be1fbe02c02a2..02bb541bd92455f25b09c11e151d88609be6ed9f 100644 |
--- a/src/stub-cache.h |
+++ b/src/stub-cache.h |
@@ -162,9 +162,14 @@ class StubCache { |
Handle<Code> ComputeStoreField(Handle<Name> name, |
Handle<JSObject> object, |
LookupResult* lookup, |
- Handle<Map> transition, |
StrictModeFlag strict_mode); |
+ Handle<Code> ComputeStoreTransition(Handle<Name> name, |
+ Handle<JSObject> object, |
+ LookupResult* lookup, |
+ Handle<Map> transition, |
+ StrictModeFlag strict_mode); |
+ |
Handle<Code> ComputeStoreNormal(StrictModeFlag strict_mode); |
Handle<Code> ComputeStoreGlobal(Handle<Name> name, |
@@ -193,8 +198,12 @@ class StubCache { |
Handle<Code> ComputeKeyedStoreField(Handle<Name> name, |
Handle<JSObject> object, |
LookupResult* lookup, |
- Handle<Map> transition, |
StrictModeFlag strict_mode); |
+ Handle<Code> ComputeKeyedStoreTransition(Handle<Name> name, |
+ Handle<JSObject> object, |
+ LookupResult* lookup, |
+ Handle<Map> transition, |
+ StrictModeFlag strict_mode); |
Handle<Code> ComputeKeyedLoadElement(Handle<Map> receiver_map); |
@@ -509,18 +518,28 @@ class StubCompiler BASE_EMBEDDED { |
Register scratch2, |
Label* miss_label); |
+ void GenerateStoreTransition(MacroAssembler* masm, |
+ Handle<JSObject> object, |
+ LookupResult* lookup, |
+ Handle<Map> transition, |
+ Handle<Name> name, |
+ Register receiver_reg, |
+ Register name_reg, |
+ Register value_reg, |
+ Register scratch1, |
+ Register scratch2, |
+ Label* miss_label, |
+ Label* miss_restore_name); |
+ |
void GenerateStoreField(MacroAssembler* masm, |
Handle<JSObject> object, |
LookupResult* lookup, |
- Handle<Map> transition, |
- Handle<Name> name, |
Register receiver_reg, |
Register name_reg, |
Register value_reg, |
Register scratch1, |
Register scratch2, |
- Label* miss_label, |
- Label* miss_restore_name); |
+ Label* miss_label); |
static Builtins::Name MissBuiltin(Code::Kind kind) { |
switch (kind) { |
@@ -781,9 +800,13 @@ class BaseStoreStubCompiler: public StubCompiler { |
virtual ~BaseStoreStubCompiler() { } |
+ Handle<Code> CompileStoreTransition(Handle<JSObject> object, |
+ LookupResult* lookup, |
+ Handle<Map> transition, |
+ Handle<Name> name); |
+ |
Handle<Code> CompileStoreField(Handle<JSObject> object, |
LookupResult* lookup, |
- Handle<Map> transition, |
Handle<Name> name); |
protected: |