Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: src/arm/lithium-codegen-arm.cc

Issue 6515005: Strict mode delete. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3870 matching lines...) Expand 10 before | Expand all | Expand 10 after
3881 3881
3882 3882
3883 void LCodeGen::DoDeoptimize(LDeoptimize* instr) { 3883 void LCodeGen::DoDeoptimize(LDeoptimize* instr) {
3884 DeoptimizeIf(al, instr->environment()); 3884 DeoptimizeIf(al, instr->environment());
3885 } 3885 }
3886 3886
3887 3887
3888 void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) { 3888 void LCodeGen::DoDeleteProperty(LDeleteProperty* instr) {
3889 Register object = ToRegister(instr->object()); 3889 Register object = ToRegister(instr->object());
3890 Register key = ToRegister(instr->key()); 3890 Register key = ToRegister(instr->key());
3891 __ Push(object, key); 3891 Register strict = scratch0();
3892 __ mov(strict, Operand(Smi::FromInt(strict_mode_flag())));
3893 __ Push(object, key, strict);
Martin Maly 2011/02/14 05:15:22 Not sure 100% about the use of scratch0() but saw
Mads Ager (chromium) 2011/02/14 10:27:24 This is fine. scratch0() is always free to use in
3892 ASSERT(instr->HasPointerMap() && instr->HasDeoptimizationEnvironment()); 3894 ASSERT(instr->HasPointerMap() && instr->HasDeoptimizationEnvironment());
3893 LPointerMap* pointers = instr->pointer_map(); 3895 LPointerMap* pointers = instr->pointer_map();
3894 LEnvironment* env = instr->deoptimization_environment(); 3896 LEnvironment* env = instr->deoptimization_environment();
3895 RecordPosition(pointers->position()); 3897 RecordPosition(pointers->position());
3896 RegisterEnvironmentForDeoptimization(env); 3898 RegisterEnvironmentForDeoptimization(env);
3897 SafepointGenerator safepoint_generator(this, 3899 SafepointGenerator safepoint_generator(this,
3898 pointers, 3900 pointers,
3899 env->deoptimization_index()); 3901 env->deoptimization_index());
3900 __ InvokeBuiltin(Builtins::DELETE, CALL_JS, &safepoint_generator); 3902 __ InvokeBuiltin(Builtins::DELETE, CALL_JS, &safepoint_generator);
3901 } 3903 }
(...skipping 24 matching lines...) Expand all
3926 ASSERT(!environment->HasBeenRegistered()); 3928 ASSERT(!environment->HasBeenRegistered());
3927 RegisterEnvironmentForDeoptimization(environment); 3929 RegisterEnvironmentForDeoptimization(environment);
3928 ASSERT(osr_pc_offset_ == -1); 3930 ASSERT(osr_pc_offset_ == -1);
3929 osr_pc_offset_ = masm()->pc_offset(); 3931 osr_pc_offset_ = masm()->pc_offset();
3930 } 3932 }
3931 3933
3932 3934
3933 #undef __ 3935 #undef __
3934 3936
3935 } } // namespace v8::internal 3937 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698