| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #if V8_TARGET_ARCH_ARM | 5 #if V8_TARGET_ARCH_ARM |
| 6 | 6 |
| 7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
| 8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1564 __ Drop(3); | 1564 __ Drop(3); |
| 1565 } | 1565 } |
| 1566 break; | 1566 break; |
| 1567 case ObjectLiteral::Property::PROTOTYPE: | 1567 case ObjectLiteral::Property::PROTOTYPE: |
| 1568 // Duplicate receiver on stack. | 1568 // Duplicate receiver on stack. |
| 1569 __ ldr(r0, MemOperand(sp)); | 1569 __ ldr(r0, MemOperand(sp)); |
| 1570 __ push(r0); | 1570 __ push(r0); |
| 1571 VisitForStackValue(value); | 1571 VisitForStackValue(value); |
| 1572 DCHECK(property->emit_store()); | 1572 DCHECK(property->emit_store()); |
| 1573 __ CallRuntime(Runtime::kInternalSetPrototype); | 1573 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1574 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1575 NO_REGISTERS); |
| 1574 break; | 1576 break; |
| 1575 | 1577 |
| 1576 case ObjectLiteral::Property::GETTER: | 1578 case ObjectLiteral::Property::GETTER: |
| 1577 if (property->emit_store()) { | 1579 if (property->emit_store()) { |
| 1578 accessor_table.lookup(key)->second->getter = property; | 1580 accessor_table.lookup(key)->second->getter = property; |
| 1579 } | 1581 } |
| 1580 break; | 1582 break; |
| 1581 case ObjectLiteral::Property::SETTER: | 1583 case ObjectLiteral::Property::SETTER: |
| 1582 if (property->emit_store()) { | 1584 if (property->emit_store()) { |
| 1583 accessor_table.lookup(key)->second->setter = property; | 1585 accessor_table.lookup(key)->second->setter = property; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1620 } | 1622 } |
| 1621 | 1623 |
| 1622 __ ldr(r0, MemOperand(sp)); // Duplicate receiver. | 1624 __ ldr(r0, MemOperand(sp)); // Duplicate receiver. |
| 1623 __ push(r0); | 1625 __ push(r0); |
| 1624 | 1626 |
| 1625 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { | 1627 if (property->kind() == ObjectLiteral::Property::PROTOTYPE) { |
| 1626 DCHECK(!property->is_computed_name()); | 1628 DCHECK(!property->is_computed_name()); |
| 1627 VisitForStackValue(value); | 1629 VisitForStackValue(value); |
| 1628 DCHECK(property->emit_store()); | 1630 DCHECK(property->emit_store()); |
| 1629 __ CallRuntime(Runtime::kInternalSetPrototype); | 1631 __ CallRuntime(Runtime::kInternalSetPrototype); |
| 1632 PrepareForBailoutForId(expr->GetIdForPropertySet(property_index), |
| 1633 NO_REGISTERS); |
| 1630 } else { | 1634 } else { |
| 1631 EmitPropertyKey(property, expr->GetIdForProperty(property_index)); | 1635 EmitPropertyKey(property, expr->GetIdForPropertyName(property_index)); |
| 1632 VisitForStackValue(value); | 1636 VisitForStackValue(value); |
| 1633 if (NeedsHomeObject(value)) { | 1637 if (NeedsHomeObject(value)) { |
| 1634 EmitSetHomeObject(value, 2, property->GetSlot()); | 1638 EmitSetHomeObject(value, 2, property->GetSlot()); |
| 1635 } | 1639 } |
| 1636 | 1640 |
| 1637 switch (property->kind()) { | 1641 switch (property->kind()) { |
| 1638 case ObjectLiteral::Property::CONSTANT: | 1642 case ObjectLiteral::Property::CONSTANT: |
| 1639 case ObjectLiteral::Property::MATERIALIZED_LITERAL: | 1643 case ObjectLiteral::Property::MATERIALIZED_LITERAL: |
| 1640 case ObjectLiteral::Property::COMPUTED: | 1644 case ObjectLiteral::Property::COMPUTED: |
| 1641 if (property->emit_store()) { | 1645 if (property->emit_store()) { |
| (...skipping 3275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4917 DCHECK(interrupt_address == | 4921 DCHECK(interrupt_address == |
| 4918 isolate->builtins()->OsrAfterStackCheck()->entry()); | 4922 isolate->builtins()->OsrAfterStackCheck()->entry()); |
| 4919 return OSR_AFTER_STACK_CHECK; | 4923 return OSR_AFTER_STACK_CHECK; |
| 4920 } | 4924 } |
| 4921 | 4925 |
| 4922 | 4926 |
| 4923 } // namespace internal | 4927 } // namespace internal |
| 4924 } // namespace v8 | 4928 } // namespace v8 |
| 4925 | 4929 |
| 4926 #endif // V8_TARGET_ARCH_ARM | 4930 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |