Lines Matching refs:src
39 // allocator may trig gc and move src, need to hold it
128 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length)
130 ASSERT((start + length) <= src->GetLength());
134 if (start == 0 && length == src->GetLength()) {
135 return *src;
137 if (src->IsUtf8()) {
138 return FastSubUtf8String(vm, src, start, length);
140 return FastSubUtf16String(vm, src, start, length);
145 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length)
147 ASSERT((start + length) <= src->GetLength());
149 FlatStringInfo srcFlat = FlattenAllString(vm, src);
158 const JSHandle<EcmaString> &src, uint32_t start, uint32_t length)
160 ASSERT((start + length) <= src->GetLength());
163 uint16_t res = EcmaStringAccessor(src).Get<false>(start);
170 if (start == 0 && length == src->GetLength()) {
171 return *src;
173 if (src->IsUtf16()) {
174 FlatStringInfo srcFlat = FlattenAllString(vm, src);
178 srcFlat = FlattenAllString(vm, src);
183 return GetSlicedString(vm, src, start, length);
185 return FastSubString(vm, src, start, length);
188 void EcmaString::WriteData(EcmaString *src, uint32_t start, uint32_t destSize, uint32_t length)
192 ASSERT(src->IsUtf8());
194 const uint8_t *data = EcmaString::GetUtf8DataFlat(src, buf);
200 } else if (src->IsUtf8()) {
203 const uint8_t *data = EcmaString::GetUtf8DataFlat(src, buf);
211 const uint16_t *data = EcmaString::GetUtf16DataFlat(src, buf);
861 bool EcmaString::MemCopyChars(Span<T> &dst, size_t dstMax, Span<const T> &src, size_t count)
864 ASSERT(dst.Size() >= src.Size());
865 if (memcpy_s(dst.data(), dstMax, src.data(), count) != EOK) {
1011 uint8_t src = *utf8Data;
1012 switch (src & 0xF0) {
1017 uint32_t codePoint = ((src & LOW_3BITS) << OFFSET_18POS) | ((c2 & LOW_6BITS) << OFFSET_12POS) |
1040 if (*utf16Data++ != static_cast<uint16_t>(((src & LOW_4BITS) << OFFSET_12POS) |
1050 if (*utf16Data++ != static_cast<uint16_t>(((src & LOW_5BITS) << OFFSET_6POS) | (c2 & LOW_6BITS))) {
1201 EcmaString *EcmaString::TrimBody(const JSThread *thread, const JSHandle<EcmaString> &src, Span<T> &data, TrimMode mode)
1203 uint32_t srcLen = src->GetLength();
1213 EcmaString *res = FastSubString(thread->GetEcmaVM(), src, start, static_cast<uint32_t>(end - start + 1));
1218 EcmaString *EcmaString::ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src)
1220 auto srcFlat = FlattenAllString(vm, src);
1228 return ConvertUtf8ToLowerOrUpper(vm, src, true);
1233 EcmaString *EcmaString::TryToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src)
1235 auto srcFlat = FlattenAllString(vm, src);
1248 return *src;
1250 return ConvertUtf8ToLowerOrUpper(vm, src, true, upperIndex);
1254 EcmaString *EcmaString::TryToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src)
1256 auto srcFlat = FlattenAllString(vm, src);
1269 return *src;
1271 return ConvertUtf8ToLowerOrUpper(vm, src, false, lowerIndex);
1275 EcmaString *EcmaString::ConvertUtf8ToLowerOrUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src,
1280 uint32_t srcLength = src->GetLength();
1282 auto srcFlat = FlattenAllString(vm, src);
1302 EcmaString *EcmaString::ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src)
1304 FlatStringInfo srcFlat = FlattenAllString(vm, src);
1312 return ConvertUtf8ToLowerOrUpper(vm, src, false);
1317 EcmaString *EcmaString::ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
1320 FlatStringInfo srcFlat = FlattenAllString(vm, src);
1327 EcmaString *EcmaString::ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
1330 FlatStringInfo srcFlat = FlattenAllString(vm, src);
1336 EcmaString *EcmaString::Trim(const JSThread *thread, const JSHandle<EcmaString> &src, TrimMode mode)
1338 FlatStringInfo srcFlat = FlattenAllString(thread->GetEcmaVM(), src);
1345 return TrimBody(thread, src, data, mode);
1348 return TrimBody(thread, src, data, mode);
1450 const uint8_t *EcmaString::GetUtf8DataFlat(const EcmaString *src, CVector<uint8_t> &buf)
1452 ASSERT(src->IsUtf8());
1453 uint32_t length = src->GetLength();
1454 EcmaString *string = const_cast<EcmaString *>(src);
1470 const uint8_t *EcmaString::GetNonTreeUtf8Data(const EcmaString *src)
1472 ASSERT(src->IsUtf8());
1473 ASSERT(!src->IsTreeString());
1474 EcmaString *string = const_cast<EcmaString *>(src);
1479 ASSERT(src->IsLineOrConstantString());
1483 const uint16_t *EcmaString::GetUtf16DataFlat(const EcmaString *src, CVector<uint16_t> &buf)
1485 ASSERT(src->IsUtf16());
1486 uint32_t length = src->GetLength();
1487 EcmaString *string = const_cast<EcmaString *>(src);
1503 const uint16_t *EcmaString::GetNonTreeUtf16Data(const EcmaString *src)
1505 ASSERT(src->IsUtf16());
1506 ASSERT(!src->IsTreeString());
1507 EcmaString *string = const_cast<EcmaString *>(src);
1512 ASSERT(src->IsLineOrConstantString());