5#ifndef V8_BUILTINS_BUILTINS_ITERATOR_GEN_H_
6#define V8_BUILTINS_BUILTINS_ITERATOR_GEN_H_
14class GrowableFixedArray;
39 std::optional<
TNode<Map>> fast_iterator_result_map = std::nullopt);
43 return IteratorStep(context, iterator, if_done, fast_iterator_result_map);
49 std::optional<
TNode<Map>> fast_iterator_result_map = std::nullopt);
52 std::optional<
TNode<Map>> fast_iterator_result_map,
55 fast_iterator_result_map);
64 std::optional<
TNode<Map>> fast_iterator_result_map = std::nullopt);
68 std::initializer_list<compiler::CodeAssemblerVariable*>
69 merged_variables = {});
70 void Iterate(TNode<Context> context, TNode<JSAny> iterable,
71 TNode<Object> iterable_fn,
72 std::function<
void(TNode<Object>)> func,
73 std::initializer_list<compiler::CodeAssemblerVariable*>
74 merged_variables = {});
79 TNode<JSArray>
IterableToList(TNode<Context> context, TNode<JSAny> iterable,
80 TNode<Object> iterator_fn);
83 TNode<JSAny> iterable,
84 TNode<Object> iterator_fn);
87 TNode<Object> iterator_fn,
88 GrowableFixedArray* values);
93 TNode<JSAny> iterable);
98 TNode<JSAny> iterable, Label* slow);
void IteratorComplete(TNode< Context > context, const TNode< JSAnyNotSmi > iterator, std::optional< TNode< Map > > fast_iterator_result_map, Label *if_done)
TNode< JSReceiver > IteratorStep(TNode< Context > context, const IteratorRecord &iterator, std::optional< TNode< Map > > fast_iterator_result_map, Label *if_done)
IteratorBuiltinsAssembler(compiler::CodeAssemblerState *state)
TNode< JSReceiver > IteratorStep(TNode< Context > context, const IteratorRecord &iterator, Label *if_done, std::optional< TNode< Map > > fast_iterator_result_map=std::nullopt)
void Iterate(TNode< Context > context, TNode< JSAny > iterable, std::function< void(TNode< Object >)> func, std::initializer_list< compiler::CodeAssemblerVariable * > merged_variables={})
TNode< JSArray > IterableToList(TNode< Context > context, TNode< JSAny > iterable, TNode< Object > iterator_fn)
void FastIterableToList(TNode< Context > context, TNode< JSAny > iterable, TVariable< JSArray > *var_result, Label *slow)
TorqueStructIteratorRecord IteratorRecord
TNode< FixedArray > IterableToFixedArray(TNode< Context > context, TNode< JSAny > iterable, TNode< Object > iterator_fn)
void IteratorComplete(TNode< Context > context, const TNode< JSAnyNotSmi > iterator, Label *if_done, std::optional< TNode< Map > > fast_iterator_result_map=std::nullopt)
TNode< JSAny > IteratorValue(TNode< Context > context, TNode< JSReceiver > result, std::optional< TNode< Map > > fast_iterator_result_map=std::nullopt)
void FillFixedArrayFromIterable(TNode< Context > context, TNode< JSAny > iterable, TNode< Object > iterator_fn, GrowableFixedArray *values)
TNode< JSAny > GetIteratorMethod(TNode< Context > context, TNode< JSAny >)
TNode< FixedArray > StringListFromIterable(TNode< Context > context, TNode< JSAny > iterable)
IteratorRecord GetIterator(TNode< Context > context, TNode< JSAny > object)
ZoneVector< RpoNumber > & result
compiler::TypedCodeAssemblerVariable< T > TVariable