70 field_names.
Push(next_value);
75 BIND(&if_isnotstringtype);
81 SmiConstant(MessageTemplate::kIterableYieldedNonString),
101 BIND(&loop_body_end);
112 calendar, JSTemporalCalendar::kFlagsOffset);
124 field_names.
Push(era_string);
126 field_names.
Push(eraYear_string);
142 GotoIf(IsUndefined(iterable), &done);
164 &if_isnottemporalinstant);
167 list.
Push(next_value);
168 Goto(&loop_body_end);
171 BIND(&if_isnottemporalinstant);
176 Runtime::kThrowTypeError, context,
177 SmiConstant(MessageTemplate::kIterableYieldedNonString),
185 BIND(&loop_body_end);
196 auto context = Parameter<Context>(Descriptor::kContext);
197 auto iterable = Parameter<JSAny>(Descriptor::kIterable);
199 Return(TemporalInstantFixedArrayFromIterable(context, iterable));
204 auto context = Parameter<Context>(Descriptor::kContext);
205 auto argc = UncheckedParameter<Int32T>(Descriptor::kJSActualArgumentsCount);
214 ThrowIfNotInstanceType(context,
receiver, JS_TEMPORAL_CALENDAR_TYPE,
215 "Temporal.Calendar.prototype.fields");
220 Return(CalendarFieldsArrayFromIterable(context,
calendar, iterable));
#define TF_BUILTIN(Name, AssemblerBase)
TNode< BoolT > IsTemporalInstantInstanceType(TNode< Int32T > instance_type)
TNode< Int32T > LoadAndUntagToWord32ObjectField(TNode< HeapObject > object, int offset)
TNode< Uint16T > LoadInstanceType(TNode< HeapObject > object)
TNode< BoolT > TaggedIsSmi(TNode< MaybeObject > a)
TNode< BoolT > IsStringInstanceType(TNode< Int32T > instance_type)
TNode< UintPtrT > DecodeWordFromWord32(TNode< Word32T > word32)
TNode< FixedArray > ToFixedArray()
TNode< JSArray > ToJSArray(const TNode< Context > context)
TVariable< IntPtrT > * var_length()
TVariable< FixedArray > * var_array()
TVariable< IntPtrT > * var_capacity()
void Push(const TNode< Object > value)
void Iterate(TNode< Context > context, TNode< JSAny > iterable, std::function< void(TNode< Object >)> func, std::initializer_list< compiler::CodeAssemblerVariable * > merged_variables={})
TNode< JSArray > CalendarFieldsArrayFromIterable(TNode< Context > context, TNode< JSTemporalCalendar > calendar, TNode< JSAny > iterable)
TNode< FixedArray > TemporalInstantFixedArrayFromIterable(TNode< Context > context, TNode< JSAny > iterable)
TemporalBuiltinsAssembler(compiler::CodeAssemblerState *state)
CodeAssemblerState * state()
TNode< Int32T > Signed(TNode< Word32T > x)
TNode< IntPtrT > IntPtrConstant(intptr_t value)
void GotoIfNot(TNode< IntegralT > condition, Label *false_label, GotoHint goto_hint=GotoHint::kNone)
TNode< String > StringConstant(const char *str)
TNode< Smi > SmiConstant(Tagged< Smi > value)
void GotoIf(TNode< IntegralT > condition, Label *true_label, GotoHint goto_hint=GotoHint::kNone)
TNode< BoolT > IntPtrEqual(TNode< WordT > left, TNode< WordT > right)
TNode< T > CallRuntime(Runtime::FunctionId function, TNode< Object > context, TArgs... args)
void Branch(TNode< IntegralT > condition, Label *true_label, Label *false_label, BranchHint branch_hint=BranchHint::kNone)
base::Vector< const DirectHandle< Object > > args
DirectHandle< Object > calendar