Lines Matching refs:EcmaString
52 class EcmaString : public TaggedObject {
54 CAST_CHECK(EcmaString, IsString);
85 static EcmaString *CreateEmptyString(const EcmaVM *vm);
86 static EcmaString *CreateFromUtf8(const EcmaVM *vm, const uint8_t *utf8Data, uint32_t utf8Len,
89 … static EcmaString *CreateFromUtf16(const EcmaVM *vm, const uint16_t *utf16Data, uint32_t utf16Len,
91 static EcmaString *CreateLineString(const EcmaVM *vm, size_t length, bool compressed);
92 static EcmaString *CreateLineStringNoGC(const EcmaVM *vm, size_t length, bool compressed);
93 static EcmaString *CreateLineStringWithSpaceType(const EcmaVM *vm,
95 static EcmaString *CreateTreeString(const EcmaVM *vm,
96 …const JSHandle<EcmaString> &left, const JSHandle<EcmaString> &right, uint32_t length, bool compres…
97 static EcmaString *CreateConstantString(const EcmaVM *vm, const uint8_t *utf8Data,
99 static EcmaString *Concat(const EcmaVM *vm, const JSHandle<EcmaString> &left,
100 const JSHandle<EcmaString> &right, MemSpaceType type = MemSpaceType::SEMI_SPACE);
101 static EcmaString *CopyStringToOldSpace(const EcmaVM *vm, const JSHandle<EcmaString> &original,
103 static EcmaString *FastSubString(const EcmaVM *vm,
104 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length);
107 static inline EcmaString *FastSubUtf8String(const EcmaVM *vm,
108 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length);
111 static inline EcmaString *FastSubUtf16String(const EcmaVM *vm,
112 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length);
199 …atic int32_t Compare(const EcmaVM *vm, const JSHandle<EcmaString> &left, const JSHandle<EcmaString…
223 bool EqualToSplicedString(const EcmaString *str1, const EcmaString *str2);
225 …bool StringsAreEqual(const EcmaVM *vm, const JSHandle<EcmaString> &str1, const JSHandle<EcmaString…
227 static bool StringsAreEqual(EcmaString *str1, EcmaString *str2);
229 static bool StringsAreEqualSameUtfEncoding(EcmaString *str1, EcmaString *str2);
233 … static bool StringsAreEqualUtf8(const EcmaString *str1, const uint8_t *utf8Data, uint32_t utf8Len,
238 …static bool StringsAreEqualUtf16(const EcmaString *str1, const uint16_t *utf16Data, uint32_t utf16…
242 const JSHandle<EcmaString> &receiver, const JSHandle<EcmaString> &search, int pos = 0);
246 const JSHandle<EcmaString> &receiver, const JSHandle<EcmaString> &search, int pos = 0);
278 const uint16_t *data = EcmaString::GetUtf16DataFlat(this, tmpBuf); in CopyDataToUtf16()
293 const uint8_t *data = EcmaString::GetUtf8DataFlat(this, tmpBuf); in CopyDataToUtf16()
395 const uint16_t *data = EcmaString::GetUtf16DataFlat(this, tmpBuf); in CopyDataRegionUtf16()
403 const uint8_t *data = EcmaString::GetUtf8DataFlat(this, tmpBuf); in CopyDataRegionUtf16()
430 const uint16_t *data = EcmaString::GetUtf16DataFlat(this, tmpBuf);
436 const uint8_t *data = EcmaString::GetUtf8DataFlat(this, buf);
442 void WriteData(EcmaString *src, uint32_t start, uint32_t destSize, uint32_t length);
446 static bool CanBeCompressed(const EcmaString *string);
453 static EcmaString *ConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src);
456 …static EcmaString *LocaleConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu:…
459 …static EcmaString *TrimBody(const JSThread *thread, const JSHandle<EcmaString> &src, Span<T> &data…
461 …static EcmaString *Trim(const JSThread *thread, const JSHandle<EcmaString> &src, TrimMode mode = T…
530 static void WriteToFlat(EcmaString *src, Char *buf, uint32_t maxLength);
532 static const uint8_t *GetUtf8DataFlat(const EcmaString *src, CVector<uint8_t> &buf);
534 static const uint16_t *GetUtf16DataFlat(const EcmaString *src, CVector<uint16_t> &buf);
537 …static EcmaString *SlowFlatten(const EcmaVM *vm, const JSHandle<TreeEcmaString> &string, MemSpaceT…
539 static EcmaString *Flatten(const EcmaVM *vm, const JSHandle<EcmaString> &string,
542 static EcmaString *FlattenNoGC(const EcmaVM *vm, EcmaString *string);
544 static EcmaString *ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src);
546 static EcmaString *ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src);
548 …static EcmaString *ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Loc…
550 …static EcmaString *ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Loc…
552 static EcmaString *TryToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src);
554 …static EcmaString *ConvertUtf8ToLowerOrUpper(const EcmaVM *vm, const JSHandle<EcmaString> &srcFlat,
559 class LineEcmaString : public EcmaString {
563 … static constexpr size_t DATA_OFFSET = EcmaString::SIZE; // DATA_OFFSET equal to Empty String size
567 static LineEcmaString *Cast(EcmaString *str) in Cast()
572 static LineEcmaString *Cast(const EcmaString *str) in Cast()
574 return LineEcmaString::Cast(const_cast<EcmaString *>(str)); in Cast()
587 static size_t ObjectSize(EcmaString *str) in ObjectSize()
629 class ConstantString : public EcmaString {
631 static constexpr size_t ENTITY_ID_OFFSET = EcmaString::SIZE;
639 static ConstantString *Cast(EcmaString *str) in Cast()
644 static ConstantString *Cast(const EcmaString *str) in Cast()
646 return ConstantString::Cast(const_cast<EcmaString *>(str)); in Cast()
669 class TreeEcmaString : public EcmaString {
674 static constexpr size_t FIRST_OFFSET = EcmaString::SIZE;
682 static TreeEcmaString *Cast(EcmaString *str) in Cast()
687 static TreeEcmaString *Cast(const EcmaString *str) in Cast()
689 return TreeEcmaString::Cast(const_cast<EcmaString *>(str)); in Cast()
694 auto strSecond = EcmaString::Cast(GetSecond()); in IsFlat()
709 EcmaString *first = EcmaString::Cast(GetFirst()); in Get()
712 EcmaString *string = const_cast<TreeEcmaString *>(this); in Get()
715 EcmaString *first = EcmaString::Cast(TreeEcmaString::Cast(string)->GetFirst()); in Get()
720 string = EcmaString::Cast(TreeEcmaString::Cast(string)->GetSecond()); in Get()
735 explicit EcmaStringAccessor(EcmaString *string);
741 explicit EcmaStringAccessor(const JSHandle<EcmaString> &strHandle);
743 static EcmaString *CreateLineString(const EcmaVM *vm, size_t length, bool compressed) in CreateLineString()
745 return EcmaString::CreateLineString(vm, length, compressed); in CreateLineString()
748 static EcmaString *CreateEmptyString(const EcmaVM *vm) in CreateEmptyString()
750 return EcmaString::CreateEmptyString(vm); in CreateEmptyString()
753 …static EcmaString *CreateFromUtf8(const EcmaVM *vm, const uint8_t *utf8Data, uint32_t utf8Len, boo…
757 …return EcmaString::CreateFromUtf8(vm, utf8Data, utf8Len, canBeCompress, type, isConstantString, id…
760 … static EcmaString *CreateConstantString(const EcmaVM *vm, const uint8_t *utf8Data, size_t length,
763 return EcmaString::CreateConstantString(vm, utf8Data, length, compressed, type, idOffset);
766 … static EcmaString *CreateFromUtf16(const EcmaVM *vm, const uint16_t *utf16Data, uint32_t utf16Len,
769 return EcmaString::CreateFromUtf16(vm, utf16Data, utf16Len, canBeCompress, type);
772 static EcmaString *Concat(const EcmaVM *vm, const JSHandle<EcmaString> &str1Handle,
773 const JSHandle<EcmaString> &str2Handle, MemSpaceType type = MemSpaceType::SEMI_SPACE)
775 return EcmaString::Concat(vm, str1Handle, str2Handle, type);
778 static EcmaString *CopyStringToOldSpace(const EcmaVM *vm, const JSHandle<EcmaString> &original, in CopyStringToOldSpace()
781 return EcmaString::CopyStringToOldSpace(vm, original, length, compressed); in CopyStringToOldSpace()
785 static EcmaString *FastSubString(const EcmaVM *vm, in FastSubString()
786 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length) in FastSubString()
788 return EcmaString::FastSubString(vm, src, start, length); in FastSubString()
907 …inline static void ReadData(EcmaString * dst, EcmaString *src, uint32_t start, uint32_t destSize, …
939 return EcmaString::ComputeHashcodeUtf8(utf8Data, utf8Len, canBeCompress); in ComputeHashcodeUtf8()
944 return EcmaString::ComputeHashcodeUtf16(utf16Data, length); in ComputeHashcodeUtf16()
949 const JSHandle<EcmaString> &receiver, const JSHandle<EcmaString> &search, int pos = 0)
951 return EcmaString::IndexOf(vm, receiver, search, pos);
956 const JSHandle<EcmaString> &receiver, const JSHandle<EcmaString> &search, int pos = 0)
958 return EcmaString::LastIndexOf(vm, receiver, search, pos);
962 …atic int32_t Compare(const EcmaVM *vm, const JSHandle<EcmaString>& left, const JSHandle<EcmaString… in Compare()
964 return EcmaString::Compare(vm, left, right); in Compare()
968 …bool StringsAreEqual(const EcmaVM *vm, const JSHandle<EcmaString> &str1, const JSHandle<EcmaString… in StringsAreEqual()
970 return EcmaString::StringsAreEqual(vm, str1, str2); in StringsAreEqual()
975 static bool StringsAreEqual(EcmaString *str1, EcmaString *str2) in StringsAreEqual()
977 return EcmaString::StringsAreEqual(str1, str2); in StringsAreEqual()
982 static bool StringsAreEqualSameUtfEncoding(EcmaString *str1, EcmaString *str2) in StringsAreEqualSameUtfEncoding()
984 return EcmaString::StringsAreEqualSameUtfEncoding(str1, str2); in StringsAreEqualSameUtfEncoding()
989 … static bool StringsAreEqualUtf8(const EcmaString *str1, const uint8_t *utf8Data, uint32_t utf8Len, in StringsAreEqualUtf8()
992 return EcmaString::StringsAreEqualUtf8(str1, utf8Data, utf8Len, canBeCompress); in StringsAreEqualUtf8()
997 …static bool StringsAreEqualUtf16(const EcmaString *str1, const uint16_t *utf16Data, uint32_t utf16… in StringsAreEqualUtf16()
999 return EcmaString::StringsAreEqualUtf16(str1, utf16Data, utf16Len); in StringsAreEqualUtf16()
1005 bool EqualToSplicedString(const EcmaString *str1, const EcmaString *str2) in EqualToSplicedString()
1012 return EcmaString::CanBeCompressed(utf8Data, utf8Len); in CanBeCompressed()
1017 return EcmaString::CanBeCompressed(utf16Data, utf16Len); in CanBeCompressed()
1021 static bool CanBeCompressed(const EcmaString *string) in CanBeCompressed()
1023 return EcmaString::CanBeCompressed(string); in CanBeCompressed()
1040 static EcmaString *ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src) in ToLower()
1042 return EcmaString::ToLower(vm, src); in ToLower()
1045 static EcmaString *TryToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src) in TryToLower()
1047 return EcmaString::TryToLower(vm, src); in TryToLower()
1050 static EcmaString *ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src) in ToUpper()
1052 return EcmaString::ToUpper(vm, src); in ToUpper()
1055 …static EcmaString *ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Loc… in ToLocaleLower()
1057 return EcmaString::ToLocaleLower(vm, src, locale); in ToLocaleLower()
1060 …static EcmaString *ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Loc… in ToLocaleUpper()
1062 return EcmaString::ToLocaleUpper(vm, src, locale); in ToLocaleUpper()
1065 static EcmaString *Trim(const JSThread *thread,
1066 const JSHandle<EcmaString> &src, EcmaString::TrimMode mode = EcmaString::TrimMode::TRIM)
1068 return EcmaString::Trim(thread, src, mode);
1096 static EcmaString *Flatten(const EcmaVM *vm, const JSHandle<EcmaString> &string,
1099 return EcmaString::Flatten(vm, string, type);
1102 static EcmaString *SlowFlatten(const EcmaVM *vm, const JSHandle<TreeEcmaString> &string,
1105 return EcmaString::SlowFlatten(vm, string, type);
1108 static EcmaString *FlattenNoGC(const EcmaVM *vm, EcmaString *string) in FlattenNoGC()
1110 return EcmaString::FlattenNoGC(vm, string); in FlattenNoGC()
1113 static const uint8_t *GetUtf8DataFlat(const EcmaString *src, CVector<uint8_t> &buf) in GetUtf8DataFlat()
1115 return EcmaString::GetUtf8DataFlat(src, buf); in GetUtf8DataFlat()
1118 static const uint16_t *GetUtf16DataFlat(const EcmaString *src, CVector<uint16_t> &buf) in GetUtf16DataFlat()
1120 return EcmaString::GetUtf16DataFlat(src, buf); in GetUtf16DataFlat()
1124 EcmaString *string_ {nullptr};