| OLD | NEW |
| 1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 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/interpreter/interpreter-generator.h" | 5 #include "src/interpreter/interpreter-generator.h" |
| 6 | 6 |
| 7 #include <array> | 7 #include <array> |
| 8 #include <tuple> | 8 #include <tuple> |
| 9 | 9 |
| 10 #include "src/builtins/builtins-arguments-gen.h" | 10 #include "src/builtins/builtins-arguments-gen.h" |
| (...skipping 1782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1793 | 1793 |
| 1794 // DeletePropertyStrict | 1794 // DeletePropertyStrict |
| 1795 // | 1795 // |
| 1796 // Delete the property specified in the accumulator from the object | 1796 // Delete the property specified in the accumulator from the object |
| 1797 // referenced by the register operand following strict mode semantics. | 1797 // referenced by the register operand following strict mode semantics. |
| 1798 IGNITION_HANDLER(DeletePropertyStrict, InterpreterAssembler) { | 1798 IGNITION_HANDLER(DeletePropertyStrict, InterpreterAssembler) { |
| 1799 Node* reg_index = BytecodeOperandReg(0); | 1799 Node* reg_index = BytecodeOperandReg(0); |
| 1800 Node* object = LoadRegister(reg_index); | 1800 Node* object = LoadRegister(reg_index); |
| 1801 Node* key = GetAccumulator(); | 1801 Node* key = GetAccumulator(); |
| 1802 Node* context = GetContext(); | 1802 Node* context = GetContext(); |
| 1803 Node* result = | 1803 Node* result = CallBuiltin(Builtins::kDeleteProperty, context, object, key, |
| 1804 CallRuntime(Runtime::kDeleteProperty_Strict, context, object, key); | 1804 SmiConstant(STRICT)); |
| 1805 SetAccumulator(result); | 1805 SetAccumulator(result); |
| 1806 Dispatch(); | 1806 Dispatch(); |
| 1807 } | 1807 } |
| 1808 | 1808 |
| 1809 // DeletePropertySloppy | 1809 // DeletePropertySloppy |
| 1810 // | 1810 // |
| 1811 // Delete the property specified in the accumulator from the object | 1811 // Delete the property specified in the accumulator from the object |
| 1812 // referenced by the register operand following sloppy mode semantics. | 1812 // referenced by the register operand following sloppy mode semantics. |
| 1813 IGNITION_HANDLER(DeletePropertySloppy, InterpreterAssembler) { | 1813 IGNITION_HANDLER(DeletePropertySloppy, InterpreterAssembler) { |
| 1814 Node* reg_index = BytecodeOperandReg(0); | 1814 Node* reg_index = BytecodeOperandReg(0); |
| 1815 Node* object = LoadRegister(reg_index); | 1815 Node* object = LoadRegister(reg_index); |
| 1816 Node* key = GetAccumulator(); | 1816 Node* key = GetAccumulator(); |
| 1817 Node* context = GetContext(); | 1817 Node* context = GetContext(); |
| 1818 Node* result = | 1818 Node* result = CallBuiltin(Builtins::kDeleteProperty, context, object, key, |
| 1819 CallRuntime(Runtime::kDeleteProperty_Sloppy, context, object, key); | 1819 SmiConstant(SLOPPY)); |
| 1820 SetAccumulator(result); | 1820 SetAccumulator(result); |
| 1821 Dispatch(); | 1821 Dispatch(); |
| 1822 } | 1822 } |
| 1823 | 1823 |
| 1824 // GetSuperConstructor | 1824 // GetSuperConstructor |
| 1825 // | 1825 // |
| 1826 // Get the super constructor from the object referenced by the accumulator. | 1826 // Get the super constructor from the object referenced by the accumulator. |
| 1827 // The result is stored in register |reg|. | 1827 // The result is stored in register |reg|. |
| 1828 IGNITION_HANDLER(GetSuperConstructor, InterpreterAssembler) { | 1828 IGNITION_HANDLER(GetSuperConstructor, InterpreterAssembler) { |
| 1829 Node* active_function = GetAccumulator(); | 1829 Node* active_function = GetAccumulator(); |
| (...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3682 code->Disassemble(Bytecodes::ToString(bytecode), os); | 3682 code->Disassemble(Bytecodes::ToString(bytecode), os); |
| 3683 os << std::flush; | 3683 os << std::flush; |
| 3684 } | 3684 } |
| 3685 #endif // ENABLE_DISASSEMBLER | 3685 #endif // ENABLE_DISASSEMBLER |
| 3686 return code; | 3686 return code; |
| 3687 } | 3687 } |
| 3688 | 3688 |
| 3689 } // namespace interpreter | 3689 } // namespace interpreter |
| 3690 } // namespace internal | 3690 } // namespace internal |
| 3691 } // namespace v8 | 3691 } // namespace v8 |
| OLD | NEW |