OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_PPC | 7 #if V8_TARGET_ARCH_PPC |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 1749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1760 __ push(r3); | 1760 __ push(r3); |
1761 | 1761 |
1762 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { | 1762 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { |
1763 DCHECK(!property->is_computed_name()); | 1763 DCHECK(!property->is_computed_name()); |
1764 VisitForStackValue(value); | 1764 VisitForStackValue(value); |
1765 DCHECK(property->emit_store()); | 1765 DCHECK(property->emit_store()); |
1766 __ CallRuntime(Runtime::kInternalSetPrototype, 2); | 1766 __ CallRuntime(Runtime::kInternalSetPrototype, 2); |
1767 } else { | 1767 } else { |
1768 EmitPropertyKey(property, expr->GetIdForProperty(property_index)); | 1768 EmitPropertyKey(property, expr->GetIdForProperty(property_index)); |
1769 VisitForStackValue(value); | 1769 VisitForStackValue(value); |
| 1770 EmitSetHomeObjectIfNeeded(value, 2); |
1770 | 1771 |
1771 switch (property->kind()) { | 1772 switch (property->kind()) { |
1772 case ObjectLiteral::Property::CONSTANT: | 1773 case ObjectLiteral::Property::CONSTANT: |
1773 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 1774 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
1774 case ObjectLiteral::Property::COMPUTED: | 1775 case ObjectLiteral::Property::COMPUTED: |
1775 if (property->emit_store()) { | 1776 if (property->emit_store()) { |
1776 __ LoadSmiLiteral(r3, Smi::FromInt(NONE)); | 1777 __ LoadSmiLiteral(r3, Smi::FromInt(NONE)); |
1777 __ push(r3); | 1778 __ push(r3); |
1778 __ CallRuntime(Runtime::kDefineDataPropertyUnchecked, 4); | 1779 __ CallRuntime(Runtime::kDefineDataPropertyUnchecked, 4); |
1779 } else { | 1780 } else { |
(...skipping 3591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5371 return ON_STACK_REPLACEMENT; | 5372 return ON_STACK_REPLACEMENT; |
5372 } | 5373 } |
5373 | 5374 |
5374 DCHECK(interrupt_address == | 5375 DCHECK(interrupt_address == |
5375 isolate->builtins()->OsrAfterStackCheck()->entry()); | 5376 isolate->builtins()->OsrAfterStackCheck()->entry()); |
5376 return OSR_AFTER_STACK_CHECK; | 5377 return OSR_AFTER_STACK_CHECK; |
5377 } | 5378 } |
5378 } | 5379 } |
5379 } // namespace v8::internal | 5380 } // namespace v8::internal |
5380 #endif // V8_TARGET_ARCH_PPC | 5381 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |