6#error Internationalization is expected to be enabled.
29 const char* method_name);
54 size_t effective_offset =
59#if V8_TARGET_BIG_ENDIAN
70 return Uint32GreaterThan(
85 const auto string = Parameter<String>(Descriptor::kString);
87 ToLowerCaseKind::kToLowerCase,
92 auto maybe_string = Parameter<Object>(Descriptor::kReceiver);
93 auto context = Parameter<Context>(Descriptor::kContext);
96 ToThisString(context, maybe_string,
"String.prototype.toLowerCase");
98 Return(CallBuiltin(Builtin::kStringToLowerCaseIntl, context,
string));
103 UncheckedParameter<Int32T>(Descriptor::kJSActualArgumentsCount);
106 TNode<Context> context = Parameter<Context>(Descriptor::kContext);
109 ToThisString(context, maybe_string,
"String.prototype.toLocaleLowerCase");
110 ToLowerCaseImpl(
string, maybe_locales, context,
111 ToLowerCaseKind::kToLocaleLowerCase,
127 Label fast(
this), check_locale(
this);
129 GotoIf(IsUndefined(maybe_locales), &fast);
169 const int kMaxShortStringLength = 24;
189 push_vars, start_address, end_address,
195 var_cursor.value(), lower);
207 GotoIfNot(var_did_change.value(), &return_string);
224 function_addr, type_tagged, std::make_pair(type_tagged, src),
225 std::make_pair(type_tagged, dst)));
230 BIND(&return_string);
236 string, maybe_locales));
247 const char* method_name) {
264 CallBuiltin(Builtin::kStringListFromIterable, context, list);
282 Parameter<Context>(Descriptor::kContext),
283 UncheckedParameter<Int32T>(Descriptor::kJSActualArgumentsCount),
284 Runtime::kFormatList,
"Intl.ListFormat.prototype.format");
289 Parameter<Context>(Descriptor::kContext),
290 UncheckedParameter<Int32T>(Descriptor::kJSActualArgumentsCount),
291 Runtime::kFormatListToParts,
"Intl.ListFormat.prototype.formatToParts");
#define CSA_DCHECK(csa,...)
#define TF_BUILTIN(Name, AssemblerBase)
TNode< String > AllocateSeqOneByteString(uint32_t length, AllocationFlags flags=AllocationFlag::kNone)
TNode< JSArray > AllocateJSArray(ElementsKind kind, TNode< Map > array_map, TNode< IntPtrT > capacity, TNode< Smi > length, std::optional< TNode< AllocationSite > > allocation_site, AllocationFlags allocation_flags=AllocationFlag::kNone)
void ThrowIfNotInstanceType(TNode< Context > context, TNode< Object > value, InstanceType instance_type, char const *method_name)
void Increment(TVariable< TIndex > *variable, int value=1)
TNode< Map > LoadJSArrayElementsMap(ElementsKind kind, TNode< NativeContext > native_context)
void BuildFastLoop(const VariableList &vars, TVariable< TIndex > &var_index, TNode< TIndex > start_index, TNode< TIndex > end_index, const FastLoopBody< TIndex > &body, TNode< TIndex > increment, LoopUnrollingMode unrolling_mode, IndexAdvanceMode advance_mode, IndexAdvanceDirection advance_direction)
TNode< BoolT > IsSequentialStringInstanceType(TNode< Int32T > instance_type)
TNode< BoolT > IsSeqOneByteString(TNode< HeapObject > object)
TNode< Uint16T > LoadInstanceType(TNode< HeapObject > object)
TNode< Smi > NoContextConstant()
TNode< NativeContext > LoadNativeContext(TNode< Context > context)
TNode< BoolT > TaggedIsSmi(TNode< MaybeObject > a)
TNode< BoolT > IsString(TNode< HeapObject > object)
TNode< Uint32T > LoadStringLengthAsWord32(TNode< String > string)
TNode< BoolT > IsNonAlpha(TNode< Uint8T > character)
TNode< IntPtrT > PointerToSeqStringData(TNode< String > seq_string)
void ListFormatCommon(TNode< Context > context, TNode< Int32T > argc, Runtime::FunctionId format_func_id, const char *method_name)
void ToLowerCaseImpl(TNode< String > string, TNode< Object > maybe_locales, TNode< Context > context, ToLowerCaseKind kind, std::function< void(TNode< JSAny >)> ReturnFct)
TNode< Uint8T > GetChar(TNode< SeqOneByteString > seq_string, int index)
IntlBuiltinsAssembler(compiler::CodeAssemblerState *state)
void JumpIfStartsWithIgnoreCase(TNode< SeqOneByteString > seq_string, const char *pattern, Label *target)
TNode< JSArray > AllocateEmptyJSArray(TNode< Context > context)
static constexpr MachineType AnyTagged()
TNode< String > TryToDirect(Label *if_bailout)
@ kDontUnpackSlicedStrings
TNode< RawPtrT > PointerToData(Label *if_bailout)
TNode< BoolT > IsOneByte()
CodeAssemblerState * state()
TNode< BoolT > Word32NotEqual(TNode< Word32T > left, TNode< Word32T > right)
TNode< IntPtrT > IntPtrAdd(TNode< IntPtrT > left, TNode< IntPtrT > right)
TNode< Int32T > Signed(TNode< Word32T > x)
TNode< IntPtrT > IntPtrConstant(intptr_t value)
TNode< UintPtrT > ChangeUint32ToWord(TNode< Word32T > value)
void GotoIfNot(TNode< IntegralT > condition, Label *false_label, GotoHint goto_hint=GotoHint::kNone)
TNode< T > ReinterpretCast(Node *value)
TNode< IntPtrT > BitcastTaggedToWord(TNode< Smi > node)
TNode< Smi > SmiConstant(Tagged< Smi > value)
void GotoIf(TNode< IntegralT > condition, Label *true_label, GotoHint goto_hint=GotoHint::kNone)
Node * Load(MachineType type, Node *base)
TNode< IntPtrT > ChangeInt32ToIntPtr(TNode< Word32T > value)
TNode< Int32T > Int32Sub(TNode< Int32T > left, TNode< Int32T > right)
TNode< Int32T > Word32Or(TNode< Int32T > left, TNode< Int32T > right)
TNode< ExternalReference > ExternalConstant(ExternalReference address)
TNode< Int32T > Int32Constant(int32_t value)
Node * CallCFunction(Node *function, std::optional< MachineType > return_type, CArgs... cargs)
TNode< Uint32T > Uint32Constant(uint32_t value)
TNode< BoolT > Word32Equal(TNode< Word32T > left, TNode< Word32T > right)
TNode< T > CallBuiltin(Builtin id, TNode< Object > context, TArgs... args)
void StoreNoWriteBarrier(MachineRepresentation rep, Node *base, Node *value)
base::Vector< const DirectHandle< Object > > args
ZoneVector< RpoNumber > & result
BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL BUILTIN_FP_CALL int character
#define DCHECK_EQ(v1, v2)
#define OFFSET_OF_DATA_START(Type)