#include "src/builtins/builtins-iterator-gen.h"
#include <optional>
#include "src/builtins/builtins-collections-gen.h"
#include "src/builtins/builtins-string-gen.h"
#include "src/builtins/builtins-utils-gen.h"
#include "src/builtins/builtins.h"
#include "src/builtins/growable-fixed-array-gen.h"
#include "src/codegen/code-stub-assembler-inl.h"
#include "src/compiler/code-assembler.h"
#include "src/heap/factory-inl.h"
namespace v8 {
namespace internal {
#include "src/codegen/define-code-stub-assembler-macros.inc"
IteratorRecord;
TNode<Object> IteratorBuiltinsAssembler::GetIteratorMethod(
TNode<Context> context, TNode<Object> object) { … }
IteratorRecord IteratorBuiltinsAssembler::GetIterator(TNode<Context> context,
TNode<Object> object) { … }
IteratorRecord IteratorBuiltinsAssembler::GetIterator(TNode<Context> context,
TNode<Object> object,
TNode<Object> method) { … }
TNode<JSReceiver> IteratorBuiltinsAssembler::IteratorStep(
TNode<Context> context, const IteratorRecord& iterator, Label* if_done,
std::optional<TNode<Map>> fast_iterator_result_map) { … }
void IteratorBuiltinsAssembler::IteratorComplete(
TNode<Context> context, const TNode<HeapObject> iterator, Label* if_done,
std::optional<TNode<Map>> fast_iterator_result_map) { … }
TNode<Object> IteratorBuiltinsAssembler::IteratorValue(
TNode<Context> context, TNode<JSReceiver> result,
std::optional<TNode<Map>> fast_iterator_result_map) { … }
void IteratorBuiltinsAssembler::Iterate(
TNode<Context> context, TNode<Object> iterable,
std::function<void(TNode<Object>)> func,
std::initializer_list<compiler::CodeAssemblerVariable*> merged_variables) { … }
void IteratorBuiltinsAssembler::Iterate(
TNode<Context> context, TNode<Object> iterable, TNode<Object> iterable_fn,
std::function<void(TNode<Object>)> func,
std::initializer_list<compiler::CodeAssemblerVariable*> merged_variables) { … }
TNode<JSArray> IteratorBuiltinsAssembler::IterableToList(
TNode<Context> context, TNode<Object> iterable, TNode<Object> iterator_fn) { … }
TNode<FixedArray> IteratorBuiltinsAssembler::IterableToFixedArray(
TNode<Context> context, TNode<Object> iterable, TNode<Object> iterator_fn) { … }
void IteratorBuiltinsAssembler::FillFixedArrayFromIterable(
TNode<Context> context, TNode<Object> iterable, TNode<Object> iterator_fn,
GrowableFixedArray* values) { … }
TF_BUILTIN(IterableToList, IteratorBuiltinsAssembler) { … }
TF_BUILTIN(IterableToFixedArray, IteratorBuiltinsAssembler) { … }
#if V8_ENABLE_WEBASSEMBLY
TF_BUILTIN(IterableToFixedArrayForWasm, IteratorBuiltinsAssembler) { … }
#endif
TNode<FixedArray> IteratorBuiltinsAssembler::StringListFromIterable(
TNode<Context> context, TNode<Object> iterable) { … }
TF_BUILTIN(StringListFromIterable, IteratorBuiltinsAssembler) { … }
TF_BUILTIN(StringFixedArrayFromIterable, IteratorBuiltinsAssembler) { … }
TF_BUILTIN(IterableToListMayPreserveHoles, IteratorBuiltinsAssembler) { … }
TF_BUILTIN(IterableToListConvertHoles, IteratorBuiltinsAssembler) { … }
void IteratorBuiltinsAssembler::FastIterableToList(
TNode<Context> context, TNode<Object> iterable,
TVariable<JSArray>* var_result, Label* slow) { … }
TNode<JSArray> IteratorBuiltinsAssembler::FastIterableToList(
TNode<Context> context, TNode<Object> iterable, Label* slow) { … }
TF_BUILTIN(IterableToListWithSymbolLookup, IteratorBuiltinsAssembler) { … }
TF_BUILTIN(GetIteratorWithFeedbackLazyDeoptContinuation,
IteratorBuiltinsAssembler) { … }
TF_BUILTIN(CallIteratorWithFeedbackLazyDeoptContinuation,
IteratorBuiltinsAssembler) { … }
TF_BUILTIN(IterableToFixedArrayWithSymbolLookupSlow,
IteratorBuiltinsAssembler) { … }
#include "src/codegen/undef-code-stub-assembler-macros.inc"
}
}