| Index: src/arm/virtual-frame-arm.cc
|
| ===================================================================
|
| --- src/arm/virtual-frame-arm.cc (revision 7031)
|
| +++ src/arm/virtual-frame-arm.cc (working copy)
|
| @@ -330,19 +330,25 @@
|
| }
|
|
|
|
|
| -void VirtualFrame::CallStoreIC(Handle<String> name, bool is_contextual) {
|
| +void VirtualFrame::CallStoreIC(Handle<String> name,
|
| + bool is_contextual,
|
| + StrictModeFlag strict_mode) {
|
| Handle<Code> ic(Isolate::Current()->builtins()->builtin(
|
| - Builtins::StoreIC_Initialize));
|
| + (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);
|
| }
|
|
|
|
|
| @@ -355,9 +361,10 @@
|
| }
|
|
|
|
|
| -void VirtualFrame::CallKeyedStoreIC() {
|
| +void VirtualFrame::CallKeyedStoreIC(StrictModeFlag strict_mode) {
|
| Handle<Code> ic(Isolate::Current()->builtins()->builtin(
|
| - Builtins::KeyedStoreIC_Initialize));
|
| + (strict_mode == kStrictMode) ? Builtins::KeyedStoreIC_Initialize_Strict
|
| + : Builtins::KeyedStoreIC_Initialize));
|
| PopToR1R0();
|
| SpillAll();
|
| EmitPop(r2);
|
|
|