mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 08:03:29 +00:00
!2618 fix codex and codeCheck warnings
Merge pull request !2618 from zhaozhibo/master
This commit is contained in:
commit
3a84b55139
@ -1524,7 +1524,7 @@ JSTaggedValue BuiltinsString::ToLocaleLowerCase(EcmaRuntimeCallInfo *argv)
|
||||
// starting at the first element of S.
|
||||
// Transform those elements in uString to the to the Unicode Default Case Conversion algorithm
|
||||
icu::Locale icuLocale = icu::Locale::createFromName(locale.c_str());
|
||||
EcmaString *result = EcmaStringAccessor::LocaleConvertCase<true>(ecmaVm, string, icuLocale);
|
||||
EcmaString *result = EcmaStringAccessor::ToLocaleLower(ecmaVm, string, icuLocale);
|
||||
return JSTaggedValue(result);
|
||||
}
|
||||
|
||||
@ -1580,7 +1580,7 @@ JSTaggedValue BuiltinsString::ToLocaleUpperCase(EcmaRuntimeCallInfo *argv)
|
||||
// starting at the first element of S.
|
||||
// Transform those elements in uString to the to the Unicode Default Case Conversion algorithm
|
||||
icu::Locale icuLocale = icu::Locale::createFromName(locale.c_str());
|
||||
EcmaString *result = EcmaStringAccessor::LocaleConvertCase<false>(ecmaVm, string, icuLocale);
|
||||
EcmaString *result = EcmaStringAccessor::ToLocaleUpper(ecmaVm, string, icuLocale);
|
||||
return JSTaggedValue(result);
|
||||
}
|
||||
|
||||
@ -1594,7 +1594,7 @@ JSTaggedValue BuiltinsString::ToLowerCase(EcmaRuntimeCallInfo *argv)
|
||||
JSHandle<JSTaggedValue> thisTag(JSTaggedValue::RequireObjectCoercible(thread, GetThis(argv)));
|
||||
JSHandle<EcmaString> thisHandle = JSTaggedValue::ToString(thread, thisTag);
|
||||
RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread);
|
||||
EcmaString *result = EcmaStringAccessor::ConvertCase<true>(thread->GetEcmaVM(), thisHandle);
|
||||
EcmaString *result = EcmaStringAccessor::ToLower(thread->GetEcmaVM(), thisHandle);
|
||||
return JSTaggedValue(result);
|
||||
}
|
||||
|
||||
@ -1616,7 +1616,7 @@ JSTaggedValue BuiltinsString::ToUpperCase(EcmaRuntimeCallInfo *argv)
|
||||
JSHandle<JSTaggedValue> thisTag(JSTaggedValue::RequireObjectCoercible(thread, GetThis(argv)));
|
||||
JSHandle<EcmaString> thisHandle = JSTaggedValue::ToString(thread, thisTag);
|
||||
RETURN_EXCEPTION_IF_ABRUPT_COMPLETION(thread);
|
||||
EcmaString *result = EcmaStringAccessor::ConvertCase<false>(thread->GetEcmaVM(), thisHandle);
|
||||
EcmaString *result = EcmaStringAccessor::ToUpper(thread->GetEcmaVM(), thisHandle);
|
||||
return JSTaggedValue(result);
|
||||
}
|
||||
|
||||
|
@ -199,7 +199,7 @@ void BytecodeCircuitBuilder::CollectTryCatchBlockInfo(std::map<std::pair<uint8_t
|
||||
// pre block
|
||||
if (byteCodeCurPrePc_.at(tryStartPc) != tryStartPc) {
|
||||
bytecodeBlockInfos_.emplace_back(byteCodeCurPrePc_.at(tryStartPc), SplitKind::END,
|
||||
std::vector<uint8_t *>(1, tryStartPc));
|
||||
std::vector<uint8_t *>(1, tryStartPc));
|
||||
}
|
||||
}
|
||||
// try block
|
||||
|
@ -1897,7 +1897,7 @@ void SlowPathLowering::LowerLdLocalModuleVarByIndex(GateRef gate, GateRef glue,
|
||||
ASSERT(acc_.GetNumValueIn(gate) == 1);
|
||||
GateRef index = builder_.ToTaggedInt(acc_.GetValueIn(gate, 0));
|
||||
GateRef result = LowerCallRuntime(glue, RTSTUB_ID(LdLocalModuleVarByIndexOnJSFunc), {index, jsFunc}, true);
|
||||
builder_.Branch(builder_.IsSpecial(result, JSTaggedValue::VALUE_EXCEPTION), &exceptionExit, &successExit);
|
||||
builder_.Branch(builder_.IsSpecial(result, JSTaggedValue::VALUE_EXCEPTION), &exceptionExit, &successExit);
|
||||
CREATE_DOUBLE_EXIT(successExit, exceptionExit);
|
||||
ReplaceHirToSubCfg(gate, result, successControl, failControl);
|
||||
}
|
||||
|
@ -176,50 +176,5 @@ EcmaString *EcmaString::FastSubUtf16String(const EcmaVM *vm, const JSHandle<Ecma
|
||||
ASSERT_PRINT(canBeCompressed == CanBeCompressed(string), "canBeCompresse does not match the real value!");
|
||||
return string;
|
||||
}
|
||||
|
||||
template<bool isLower>
|
||||
EcmaString *EcmaString::ConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
{
|
||||
uint32_t srcLength = src->GetLength();
|
||||
auto factory = vm->GetFactory();
|
||||
if (src->IsUtf16()) {
|
||||
std::u16string u16str = base::StringHelper::Utf16ToU16String(src->GetDataUtf16(), srcLength);
|
||||
std::string res;
|
||||
if (isLower) {
|
||||
res = base::StringHelper::ToLower(u16str);
|
||||
} else {
|
||||
res = base::StringHelper::ToUpper(u16str);
|
||||
}
|
||||
return *(factory->NewFromStdString(res));
|
||||
} else {
|
||||
const char start = isLower ? 'A' : 'a';
|
||||
const char end = isLower ? 'Z' : 'z';
|
||||
auto newString = AllocStringObject(vm, srcLength, true);
|
||||
Span<uint8_t> data(src->GetDataUtf8Writable(), srcLength);
|
||||
auto newStringPtr = newString->GetDataUtf8Writable();
|
||||
for (uint32_t index = 0; index < srcLength; ++index) {
|
||||
if (base::StringHelper::Utf8CharInRange(data[index], start, end)) {
|
||||
*(newStringPtr + index) = data[index] ^ (1 << 5); // 1 and 5 means lower to upper or upper to lower
|
||||
} else {
|
||||
*(newStringPtr + index) = data[index];
|
||||
}
|
||||
}
|
||||
return newString;
|
||||
}
|
||||
}
|
||||
|
||||
template<bool isLower>
|
||||
EcmaString *EcmaString::LocaleConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
{
|
||||
auto factory = vm->GetFactory();
|
||||
std::u16string utf16 = src->ToU16String();
|
||||
std::string res;
|
||||
if (isLower) {
|
||||
res = base::StringHelper::ToLocaleLower(utf16, locale);
|
||||
} else {
|
||||
res = base::StringHelper::ToLocaleUpper(utf16, locale);
|
||||
}
|
||||
return *(factory->NewFromStdString(res));
|
||||
}
|
||||
} // namespace panda::ecmascript
|
||||
#endif
|
||||
|
@ -634,6 +634,76 @@ EcmaString *EcmaString::TrimBody(const JSThread *thread, const JSHandle<EcmaStri
|
||||
return res;
|
||||
}
|
||||
|
||||
/* static */
|
||||
EcmaString *EcmaString::ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
{
|
||||
uint32_t srcLength = src->GetLength();
|
||||
auto factory = vm->GetFactory();
|
||||
if (src->IsUtf16()) {
|
||||
std::u16string u16str = base::StringHelper::Utf16ToU16String(src->GetDataUtf16(), srcLength);
|
||||
std::string res = base::StringHelper::ToLower(u16str);
|
||||
return *(factory->NewFromStdString(res));
|
||||
} else {
|
||||
const char start = 'A';
|
||||
const char end = 'Z';
|
||||
auto newString = AllocStringObject(vm, srcLength, true);
|
||||
Span<uint8_t> data(src->GetDataUtf8Writable(), srcLength);
|
||||
auto newStringPtr = newString->GetDataUtf8Writable();
|
||||
for (uint32_t index = 0; index < srcLength; ++index) {
|
||||
if (base::StringHelper::Utf8CharInRange(data[index], start, end)) {
|
||||
*(newStringPtr + index) = data[index] ^ (1 << 5); // 1 and 5 means lower to upper or upper to lower
|
||||
} else {
|
||||
*(newStringPtr + index) = data[index];
|
||||
}
|
||||
}
|
||||
return newString;
|
||||
}
|
||||
}
|
||||
|
||||
/* static */
|
||||
EcmaString *EcmaString::ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
{
|
||||
uint32_t srcLength = src->GetLength();
|
||||
auto factory = vm->GetFactory();
|
||||
if (src->IsUtf16()) {
|
||||
std::u16string u16str = base::StringHelper::Utf16ToU16String(src->GetDataUtf16(), srcLength);
|
||||
std::string res = base::StringHelper::ToUpper(u16str);
|
||||
return *(factory->NewFromStdString(res));
|
||||
} else {
|
||||
const char start = 'a';
|
||||
const char end = 'z';
|
||||
auto newString = AllocStringObject(vm, srcLength, true);
|
||||
Span<uint8_t> data(src->GetDataUtf8Writable(), srcLength);
|
||||
auto newStringPtr = newString->GetDataUtf8Writable();
|
||||
for (uint32_t index = 0; index < srcLength; ++index) {
|
||||
if (base::StringHelper::Utf8CharInRange(data[index], start, end)) {
|
||||
*(newStringPtr + index) = data[index] ^ (1 << 5); // 1 and 5 means lower to upper or upper to lower
|
||||
} else {
|
||||
*(newStringPtr + index) = data[index];
|
||||
}
|
||||
}
|
||||
return newString;
|
||||
}
|
||||
}
|
||||
|
||||
/* static */
|
||||
EcmaString *EcmaString::ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
{
|
||||
auto factory = vm->GetFactory();
|
||||
std::u16string utf16 = src->ToU16String();
|
||||
std::string res = base::StringHelper::ToLocaleLower(utf16, locale);
|
||||
return *(factory->NewFromStdString(res));
|
||||
}
|
||||
|
||||
/* static */
|
||||
EcmaString *EcmaString::ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
{
|
||||
auto factory = vm->GetFactory();
|
||||
std::u16string utf16 = src->ToU16String();
|
||||
std::string res = base::StringHelper::ToLocaleUpper(utf16, locale);
|
||||
return *(factory->NewFromStdString(res));
|
||||
}
|
||||
|
||||
EcmaString *EcmaString::Trim(const JSThread *thread, const JSHandle<EcmaString> &src, TrimMode mode)
|
||||
{
|
||||
uint32_t srcLen = src->GetLength();
|
||||
|
@ -386,11 +386,13 @@ private:
|
||||
|
||||
bool ToTypedArrayIndex(uint32_t *index);
|
||||
|
||||
template<bool isLower>
|
||||
static EcmaString *ConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src);
|
||||
static EcmaString *ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src);
|
||||
|
||||
template<bool isLower>
|
||||
static EcmaString *LocaleConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale);
|
||||
static EcmaString *ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src);
|
||||
|
||||
static EcmaString *ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale);
|
||||
|
||||
static EcmaString *ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale);
|
||||
|
||||
template<typename T>
|
||||
static EcmaString *TrimBody(const JSThread *thread, const JSHandle<EcmaString> &src, Span<T> &data, TrimMode mode);
|
||||
@ -680,16 +682,24 @@ public:
|
||||
return string_->ToTypedArrayIndex(index);
|
||||
}
|
||||
|
||||
template<bool isLower>
|
||||
static EcmaString *ConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
static EcmaString *ToLower(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
{
|
||||
return EcmaString::ConvertCase<isLower>(vm, src);
|
||||
return EcmaString::ToLower(vm, src);
|
||||
}
|
||||
|
||||
template<bool isLower>
|
||||
static EcmaString *LocaleConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
static EcmaString *ToUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src)
|
||||
{
|
||||
return EcmaString::LocaleConvertCase<isLower>(vm, src, locale);
|
||||
return EcmaString::ToUpper(vm, src);
|
||||
}
|
||||
|
||||
static EcmaString *ToLocaleLower(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
{
|
||||
return EcmaString::ToLocaleLower(vm, src, locale);
|
||||
}
|
||||
|
||||
static EcmaString *ToLocaleUpper(const EcmaVM *vm, const JSHandle<EcmaString> &src, const icu::Locale &locale)
|
||||
{
|
||||
return EcmaString::ToLocaleUpper(vm, src, locale);
|
||||
}
|
||||
|
||||
static EcmaString *Trim(const JSThread *thread,
|
||||
|
@ -197,10 +197,9 @@ int TaggedList<Derived>::FindDataIndexByNodeIndex(int index) const
|
||||
}
|
||||
|
||||
template<typename Derived>
|
||||
void TaggedList<Derived>::MapNodeIndexToDataIndex(int* nodeIndexMapToDataIndex)
|
||||
void TaggedList<Derived>::MapNodeIndexToDataIndex(int* nodeIndexMapToDataIndex, int length)
|
||||
{
|
||||
int i = 0;
|
||||
int length = NumberOfNodes();
|
||||
int nextIndex = ELEMENTS_START_INDEX;
|
||||
while (i < length) {
|
||||
nextIndex = GetElement(nextIndex + NEXT_PTR_OFFSET).GetInt();
|
||||
@ -400,7 +399,7 @@ JSTaggedValue TaggedSingleList::Sort(JSThread *thread, const JSHandle<JSTaggedVa
|
||||
JSMutableHandle<JSTaggedValue> previousValue(thread, JSTaggedValue::Undefined());
|
||||
// create index map
|
||||
int* nodeIndexMapToDataIndex = new int[length];
|
||||
taggedList->MapNodeIndexToDataIndex(nodeIndexMapToDataIndex);
|
||||
taggedList->MapNodeIndexToDataIndex(nodeIndexMapToDataIndex, length);
|
||||
|
||||
int beginIndex = 0;
|
||||
int endIndex = 0;
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
int FindIndexByElement(const JSTaggedValue &element);
|
||||
int FindLastIndexByElement(const JSTaggedValue &element);
|
||||
int FindDataIndexByNodeIndex(int index) const;
|
||||
void MapNodeIndexToDataIndex(int* nodeIndexMapToDataIndex);
|
||||
void MapNodeIndexToDataIndex(int* nodeIndexMapToDataIndex, int length);
|
||||
void RemoveNode(JSThread *thread, int prevDataIndex);
|
||||
int FindPrevNodeByIndex(int index) const;
|
||||
int FindPrevNodeByValue(const JSTaggedValue &element);
|
||||
|
Loading…
Reference in New Issue
Block a user