Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/interpreter/interpreter-generator.cc

Issue 2810363003: [builtins] Introduce DeleteProperty builtin (Closed)
Patch Set: fix CallableFor not to create handles Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/full-codegen/x87/full-codegen-x87.cc ('k') | src/js/array.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/full-codegen/x87/full-codegen-x87.cc ('k') | src/js/array.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698