Lines Matching refs:str1
681 bool EcmaString::EqualToSplicedString(const EcmaString *str1, const EcmaString *str2)
684 ASSERT(str1->NotTreeString() && str2->NotTreeString());
685 if (GetLength() != str1->GetLength() + str2->GetLength()) {
691 if (EcmaString::StringsAreEqualUtf16(str1, data, str1->GetLength())) {
692 return EcmaString::StringsAreEqualUtf16(str2, data + str1->GetLength(), str2->GetLength());
697 if (EcmaString::StringIsEqualUint8Data(str1, data, str1->GetLength(), this->IsUtf8())) {
698 return EcmaString::StringIsEqualUint8Data(str2, data + str1->GetLength(),
765 bool EcmaString::StringsAreEqual(const EcmaVM *vm, const JSHandle<EcmaString> &str1, const JSHandle<EcmaString> &str2)
767 if (str1 == str2) {
770 if (str1->IsInternString() && str2->IsInternString()) {
773 uint32_t str1Len = str1->GetLength();
783 if (str1->TryGetHashCode(&str1Hash) && str2->TryGetHashCode(&str2Hash)) {
788 FlatStringInfo str1Flat = FlattenAllString(vm, str1);
796 bool EcmaString::StringsAreEqual(EcmaString *str1, EcmaString *str2)
798 if (str1 == str2) {
801 uint32_t str1Len = str1->GetLength();
811 if (str1->TryGetHashCode(&str1Hash) && str2->TryGetHashCode(&str2Hash)) {
816 return StringsAreEqualDiffUtfEncoding(str1, str2);
820 bool EcmaString::StringIsEqualUint8Data(const EcmaString *str1, const uint8_t *dataAddr, uint32_t dataLen,
823 if (!str1->IsSlicedString() && canBeCompressToUtf8 != str1->IsUtf8()) {
826 if (canBeCompressToUtf8 && str1->GetLength() != dataLen) {
829 if (str1->IsUtf8()) {
831 Span<const uint8_t> data1(EcmaString::GetUtf8DataFlat(str1, buf), dataLen);
836 uint32_t length = str1->GetLength();
837 const uint16_t *data = EcmaString::GetUtf16DataFlat(str1, buf);
842 bool EcmaString::StringsAreEqualUtf16(const EcmaString *str1, const uint16_t *utf16Data, uint32_t utf16Len)
844 uint32_t length = str1->GetLength();
848 if (str1->IsUtf8()) {
850 const uint8_t *data = EcmaString::GetUtf8DataFlat(str1, buf);
854 Span<const uint16_t> data1(EcmaString::GetUtf16DataFlat(str1, buf), length);