Chromium Code Reviews| Index: src/stub-cache.cc |
| diff --git a/src/stub-cache.cc b/src/stub-cache.cc |
| index abb26d6ed423a6c231ae288baa37fa18bc498a86..92edc33760d0af92769631c48ba948ecfc6deebd 100644 |
| --- a/src/stub-cache.cc |
| +++ b/src/stub-cache.cc |
| @@ -598,11 +598,14 @@ ExternalArrayType ElementsKindToExternalArrayType(JSObject::ElementsKind kind) { |
| MaybeObject* StubCache::ComputeKeyedLoadOrStoreExternalArray( |
| JSObject* receiver, |
| - bool is_store) { |
| + bool is_store, |
| + Code::ExtraICState extra_ic_state) { |
| + ASSERT(extra_ic_state == kNonStrictMode || extra_ic_state == kStrictMode); |
| Code::Flags flags = |
| Code::ComputeMonomorphicFlags( |
| is_store ? Code::KEYED_STORE_IC : Code::KEYED_LOAD_IC, |
| - NORMAL); |
| + NORMAL, |
| + extra_ic_state); |
| ExternalArrayType array_type = |
| ElementsKindToExternalArrayType(receiver->GetElementsKind()); |
| String* name = |
| @@ -615,9 +618,9 @@ MaybeObject* StubCache::ComputeKeyedLoadOrStoreExternalArray( |
| Object* code = map->FindInCodeCache(name, flags); |
| if (code->IsUndefined()) { |
| ExternalArrayStubCompiler compiler; |
| - { MaybeObject* maybe_code = |
| - is_store ? compiler.CompileKeyedStoreStub(array_type, flags) : |
| - compiler.CompileKeyedLoadStub(array_type, flags); |
| + { MaybeObject* maybe_code = is_store |
| + ? compiler.CompileKeyedStoreStub(array_type, flags) |
| + : compiler.CompileKeyedLoadStub(array_type, flags); |
| if (!maybe_code->ToObject(&code)) return maybe_code; |
| } |
| if (is_store) { |
| @@ -638,7 +641,7 @@ MaybeObject* StubCache::ComputeKeyedLoadOrStoreExternalArray( |
| MaybeObject* StubCache::ComputeStoreNormal(Code::ExtraICState extra_ic_state) { |
| - return Builtins::builtin(extra_ic_state == StoreIC::kStoreICStrict |
| + return Builtins::builtin(extra_ic_state == kStrictMode |
| ? Builtins::StoreIC_Normal_Strict |
| : Builtins::StoreIC_Normal); |
| } |
| @@ -1422,7 +1425,8 @@ MaybeObject* StoreInterceptorProperty(Arguments args) { |
| Object* value = args[2]; |
| ASSERT(recv->HasNamedInterceptor()); |
| PropertyAttributes attr = NONE; |
| - MaybeObject* result = recv->SetPropertyWithInterceptor(name, value, attr); |
| + MaybeObject* result = recv->SetPropertyWithInterceptor( |
|
Martin Maly
2011/02/24 06:33:34
This needs to be figured out whether we need to pa
Lasse Reichstein
2011/02/24 12:37:54
I'm guessing "yes" too.
|
| + name, value, attr, kNonStrictMode); // TODL(mmaly): Is this OK? |
| return result; |
| } |