| Index: src/stub-cache.cc
|
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc
|
| index cb68b89efb37eb1d4d25b7ffb7d7d480a860f8b2..eec5baf0c26bc9fce0fdf5da6711a27ceed24b2e 100644
|
| --- a/src/stub-cache.cc
|
| +++ b/src/stub-cache.cc
|
| @@ -152,13 +152,13 @@ Handle<Code> StubCache::ComputeMonomorphicIC(
|
| KeyedLoadStubCompiler ic_compiler(isolate(), flag);
|
| ic = ic_compiler.CompileMonomorphicIC(type, handler, name);
|
| } else if (kind == Code::STORE_IC) {
|
| - StrictModeFlag strict_mode = StoreIC::GetStrictMode(extra_ic_state);
|
| - StoreStubCompiler ic_compiler(isolate(), strict_mode);
|
| + StoreStubCompiler ic_compiler(isolate(), extra_ic_state);
|
| ic = ic_compiler.CompileMonomorphicIC(type, handler, name);
|
| } else {
|
| ASSERT(kind == Code::KEYED_STORE_IC);
|
| - StrictModeFlag strict_mode = StoreIC::GetStrictMode(extra_ic_state);
|
| - KeyedStoreStubCompiler ic_compiler(isolate(), strict_mode, STANDARD_STORE);
|
| + ASSERT(STANDARD_STORE ==
|
| + KeyedStoreIC::GetKeyedAccessStoreMode(extra_ic_state));
|
| + KeyedStoreStubCompiler ic_compiler(isolate(), extra_ic_state);
|
| ic = ic_compiler.CompileMonomorphicIC(type, handler, name);
|
| }
|
|
|
| @@ -236,7 +236,7 @@ Handle<Code> StubCache::ComputeKeyedStoreElement(
|
| Handle<Object> probe(receiver_map->FindInCodeCache(*name, flags), isolate_);
|
| if (probe->IsCode()) return Handle<Code>::cast(probe);
|
|
|
| - KeyedStoreStubCompiler compiler(isolate(), strict_mode, store_mode);
|
| + KeyedStoreStubCompiler compiler(isolate(), extra_state);
|
| Handle<Code> code = compiler.CompileStoreElement(receiver_map);
|
|
|
| Map::UpdateCodeCache(receiver_map, name, code);
|
| @@ -647,7 +647,7 @@ Handle<Code> StubCache::ComputeStoreElementPolymorphic(
|
| Handle<Object> probe = cache->Lookup(receiver_maps, flags);
|
| if (probe->IsCode()) return Handle<Code>::cast(probe);
|
|
|
| - KeyedStoreStubCompiler compiler(isolate_, strict_mode, store_mode);
|
| + KeyedStoreStubCompiler compiler(isolate_, extra_state);
|
| Handle<Code> code = compiler.CompileStoreElementPolymorphic(receiver_maps);
|
| PolymorphicCodeCache::Update(cache, receiver_maps, flags, code);
|
| return code;
|
| @@ -1129,7 +1129,7 @@ void StubCompiler::LookupPostInterceptor(Handle<JSObject> holder,
|
|
|
|
|
| CallKind CallStubCompiler::call_kind() {
|
| - return CallICBase::Contextual::decode(extra_state_)
|
| + return CallICBase::Contextual::decode(extra_state())
|
| ? CALL_AS_FUNCTION
|
| : CALL_AS_METHOD;
|
| }
|
| @@ -1577,11 +1577,11 @@ Handle<Code> KeyedStoreStubCompiler::CompileStoreElement(
|
| stub = KeyedStoreFastElementStub(
|
| is_jsarray,
|
| elements_kind,
|
| - store_mode_).GetCode(isolate());
|
| + store_mode()).GetCode(isolate());
|
| } else {
|
| stub = KeyedStoreElementStub(is_jsarray,
|
| elements_kind,
|
| - store_mode_).GetCode(isolate());
|
| + store_mode()).GetCode(isolate());
|
| }
|
|
|
| __ DispatchMap(receiver(), scratch1(), receiver_map, stub, DO_SMI_CHECK);
|
| @@ -1707,19 +1707,19 @@ Handle<Code> KeyedStoreStubCompiler::CompileStoreElementPolymorphic(
|
| elements_kind,
|
| transitioned_map->elements_kind(),
|
| is_js_array,
|
| - store_mode_).GetCode(isolate());
|
| + store_mode()).GetCode(isolate());
|
| } else {
|
| if (receiver_map->has_fast_elements() ||
|
| receiver_map->has_external_array_elements()) {
|
| cached_stub = KeyedStoreFastElementStub(
|
| is_js_array,
|
| elements_kind,
|
| - store_mode_).GetCode(isolate());
|
| + store_mode()).GetCode(isolate());
|
| } else {
|
| cached_stub = KeyedStoreElementStub(
|
| is_js_array,
|
| elements_kind,
|
| - store_mode_).GetCode(isolate());
|
| + store_mode()).GetCode(isolate());
|
| }
|
| }
|
| ASSERT(!cached_stub.is_null());
|
| @@ -1746,10 +1746,9 @@ CallStubCompiler::CallStubCompiler(Isolate* isolate,
|
| Code::Kind kind,
|
| ExtraICState extra_state,
|
| InlineCacheHolderFlag cache_holder)
|
| - : StubCompiler(isolate),
|
| + : StubCompiler(isolate, extra_state),
|
| arguments_(argc),
|
| kind_(kind),
|
| - extra_state_(extra_state),
|
| cache_holder_(cache_holder) {
|
| }
|
|
|
| @@ -1817,7 +1816,7 @@ Handle<Code> CallStubCompiler::GetCode(Code::StubType type,
|
| Handle<Name> name) {
|
| int argc = arguments_.immediate();
|
| Code::Flags flags = Code::ComputeMonomorphicFlags(
|
| - kind_, extra_state_, cache_holder_, type, argc);
|
| + kind_, extra_state(), cache_holder_, type, argc);
|
| return GetCodeWithFlags(flags, name);
|
| }
|
|
|
|
|