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 |