OLD | NEW |
---|---|
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 4822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4833 break; | 4833 break; |
4834 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 4834 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
4835 if (CompileTimeValue::IsCompileTimeValue(property->value())) break; | 4835 if (CompileTimeValue::IsCompileTimeValue(property->value())) break; |
4836 // else fall through. | 4836 // else fall through. |
4837 case ObjectLiteral::Property::COMPUTED: { | 4837 case ObjectLiteral::Property::COMPUTED: { |
4838 Handle<Object> key(property->key()->handle()); | 4838 Handle<Object> key(property->key()->handle()); |
4839 if (key->IsSymbol()) { | 4839 if (key->IsSymbol()) { |
4840 // Duplicate the object as the IC receiver. | 4840 // Duplicate the object as the IC receiver. |
4841 frame_->Dup(); | 4841 frame_->Dup(); |
4842 Load(property->value()); | 4842 Load(property->value()); |
4843 frame_->Push(key); | 4843 Result dummy = frame_->CallStoreIC(Handle<String>::cast(key), false); |
4844 Result ignored = frame_->CallStoreIC(); | 4844 // A test eax instruction following the store IC call would |
4845 // indicate the presence of an inlined version of the | |
4846 // store. Add a nop to indicate that there is no such | |
4847 // inlined version. | |
4848 __ nop(); | |
Mads Ager (chromium)
2010/07/21 13:20:13
Not really needed until we port the inlined store
| |
4849 dummy.Unuse(); | |
4845 break; | 4850 break; |
4846 } | 4851 } |
4847 // Fall through | 4852 // Fall through |
4848 } | 4853 } |
4849 case ObjectLiteral::Property::PROTOTYPE: { | 4854 case ObjectLiteral::Property::PROTOTYPE: { |
4850 // Duplicate the object as an argument to the runtime call. | 4855 // Duplicate the object as an argument to the runtime call. |
4851 frame_->Dup(); | 4856 frame_->Dup(); |
4852 Load(property->key()); | 4857 Load(property->key()); |
4853 Load(property->value()); | 4858 Load(property->value()); |
4854 Result ignored = frame_->CallRuntime(Runtime::kSetProperty, 3); | 4859 Result ignored = frame_->CallRuntime(Runtime::kSetProperty, 3); |
(...skipping 7476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
12331 #undef __ | 12336 #undef __ |
12332 | 12337 |
12333 void RecordWriteStub::Generate(MacroAssembler* masm) { | 12338 void RecordWriteStub::Generate(MacroAssembler* masm) { |
12334 masm->RecordWriteHelper(object_, addr_, scratch_); | 12339 masm->RecordWriteHelper(object_, addr_, scratch_); |
12335 masm->ret(0); | 12340 masm->ret(0); |
12336 } | 12341 } |
12337 | 12342 |
12338 } } // namespace v8::internal | 12343 } } // namespace v8::internal |
12339 | 12344 |
12340 #endif // V8_TARGET_ARCH_X64 | 12345 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |