Line data Source code
1 : #ifndef V8_TORQUE_ARRAY_MAP_FROM_DSL_BASE_H__
2 : #define V8_TORQUE_ARRAY_MAP_FROM_DSL_BASE_H__
3 :
4 : #include "src/compiler/code-assembler.h"
5 : #include "src/code-stub-assembler.h"
6 : #include "src/utils.h"
7 : #include "torque-generated/class-definitions-from-dsl.h"
8 :
9 : namespace v8 {
10 : namespace internal {
11 :
12 112 : class ArrayMapBuiltinsFromDSLAssembler {
13 : public:
14 112 : explicit ArrayMapBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
15 : struct Vector {
16 : compiler::TNode<FixedArray> fixedArray;
17 : compiler::TNode<BoolT> onlySmis;
18 : compiler::TNode<BoolT> onlyNumbers;
19 : compiler::TNode<BoolT> skippedElements;
20 :
21 56 : std::tuple<compiler::TNode<FixedArray>, compiler::TNode<BoolT>, compiler::TNode<BoolT>, compiler::TNode<BoolT>> Flatten() const {
22 56 : return std::tuple_cat(std::make_tuple(fixedArray), std::make_tuple(onlySmis), std::make_tuple(onlyNumbers), std::make_tuple(skippedElements));
23 : }
24 : };
25 : ArrayMapBuiltinsFromDSLAssembler::Vector NewVector(compiler::TNode<Context> p_context, compiler::TNode<Smi> p_length);
26 : compiler::TNode<JSArray> FastArrayMap(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_fastO, compiler::TNode<Smi> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<JSArray>* label_Bailout_parameter_0, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_1);
27 : compiler::TNode<JSArray> FastMapSpeciesCreate(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<Number> p_length, compiler::CodeAssemblerLabel* label_Bailout);
28 : private:
29 : compiler::CodeAssemblerState* const state_;
30 : compiler::CodeAssembler ca_;
31 : };
32 :
33 : } // namespace internal
34 : } // namespace v8
35 :
36 : #endif // V8_TORQUE_ARRAY_MAP_FROM_DSL_BASE_H__
|