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 3 // found in the LICENSE file. 4 5 #ifndef V8_BUILTINS_BUILTINS_CALL_GEN_H_ 6 #define V8_BUILTINS_BUILTINS_CALL_GEN_H_ 7 8 #include "src/code-stub-assembler.h" 9 10 namespace v8 { 11 namespace internal { 12 13 class CallOrConstructBuiltinsAssembler : public CodeStubAssembler { 14 public: CallOrConstructBuiltinsAssembler(compiler::CodeAssemblerState * state)15 explicit CallOrConstructBuiltinsAssembler(compiler::CodeAssemblerState* state) 16 : CodeStubAssembler(state) {} 17 18 void CallOrConstructWithArrayLike(TNode<Object> target, 19 SloppyTNode<Object> new_target, 20 TNode<Object> arguments_list, 21 TNode<Context> context); 22 void CallOrConstructDoubleVarargs(TNode<Object> target, 23 SloppyTNode<Object> new_target, 24 TNode<FixedDoubleArray> elements, 25 TNode<Int32T> length, 26 TNode<Int32T> args_count, 27 TNode<Context> context, TNode<Int32T> kind); 28 void CallOrConstructWithSpread(TNode<Object> target, TNode<Object> new_target, 29 TNode<Object> spread, TNode<Int32T> args_count, 30 TNode<Context> context); 31 }; 32 33 } // namespace internal 34 } // namespace v8 35 36 #endif // V8_BUILTINS_BUILTINS_CALL_GEN_H_ 37