| Index: src/arm/virtual-frame-arm.cc
|
| diff --git a/src/arm/virtual-frame-arm.cc b/src/arm/virtual-frame-arm.cc
|
| index 3266a16e3a8483970ff1066f9caf4262835a8cfe..b4b518cff6eced69c192f7efe0b47c7f5192175a 100644
|
| --- a/src/arm/virtual-frame-arm.cc
|
| +++ b/src/arm/virtual-frame-arm.cc
|
| @@ -329,18 +329,25 @@ void VirtualFrame::CallLoadIC(Handle<String> name, RelocInfo::Mode mode) {
|
| }
|
|
|
|
|
| -void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) {
|
| - Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize));
|
| +void VirtualFrame::CallStoreIC(Handle<String> name,
|
| + bool is_contextual,
|
| + StrictModeFlag strict_mode) {
|
| + Handle<Code> ic(Builtins::builtin(strict_mode == kStrictMode
|
| + ? Builtins::StoreIC_Initialize_Strict
|
| + : Builtins::StoreIC_Initialize));
|
| PopToR0();
|
| + RelocInfo::Mode mode;
|
| if (is_contextual) {
|
| SpillAll();
|
| __ ldr(r1, MemOperand(cp, Context::SlotOffset(Context::GLOBAL_INDEX)));
|
| + mode = RelocInfo::CODE_TARGET_CONTEXT;
|
| } else {
|
| EmitPop(r1);
|
| SpillAll();
|
| + mode = RelocInfo::CODE_TARGET;
|
| }
|
| __ mov(r2, Operand(name));
|
| - CallCodeObject(ic, RelocInfo::CODE_TARGET, 0);
|
| + CallCodeObject(ic, mode, 0);
|
| }
|
|
|
|
|
|
|