mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-07 08:03:29 +00:00
fix codecheck warning for master branch
Signed-off-by: hjzhangcm <zhanghaijun20@huawei.com>
This commit is contained in:
parent
f66c19e985
commit
82810a0fdd
@ -116,7 +116,7 @@ bool BuiltinsGlobal::IsInMarkURISet(uint16_t ch)
|
||||
|
||||
bool BuiltinsGlobal::IsHexDigits(uint16_t ch)
|
||||
{
|
||||
return ('0' <= ch && ch <= '9') || ('A' <= ch && ch <= 'F') || ('a' <= ch && ch <= 'f');
|
||||
return (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f');
|
||||
}
|
||||
|
||||
// 18.2.6
|
||||
|
@ -758,7 +758,7 @@ JSTaggedValue BuiltinsMath::Trunc(EcmaRuntimeCallInfo *argv)
|
||||
if (!std::isfinite(value)) {
|
||||
// if value is +infinite, -infinite, NaN, -NaN, VRegisterTag is double
|
||||
if (!std::isnan(std::abs(value))) {
|
||||
// if value is +infinite, -infinite, result is value ;
|
||||
// if value is +infinite, -infinite, result is value
|
||||
result = value;
|
||||
}
|
||||
} else {
|
||||
|
@ -220,7 +220,7 @@ HWTEST_F_L0(BuiltinsSetTest, ForEach)
|
||||
JSSet *jsSet = JSSet::Cast(reinterpret_cast<TaggedObject *>(result1.GetRawData()));
|
||||
EXPECT_EQ(jsSet->GetSize(), static_cast<int>(i) + 1);
|
||||
}
|
||||
// test foreach;
|
||||
// test foreach
|
||||
JSHandle<JSArray> jsArray(JSArray::ArrayCreate(thread, JSTaggedNumber(0)));
|
||||
JSHandle<JSFunction> func =
|
||||
factory->NewJSFunction(thread->GetEcmaVM()->GetGlobalEnv(), reinterpret_cast<void *>(TestClass::TestFunc));
|
||||
|
@ -1019,11 +1019,8 @@ NO_UB_SANITIZE void EcmaInterpreter::RunInternal(JSThread *thread, ConstantPool
|
||||
state->acc = acc;
|
||||
return;
|
||||
}
|
||||
|
||||
thread->SetCurrentSPFrame(sp);
|
||||
|
||||
constpool = ConstantPool::Cast(prevState->constpool.GetTaggedObject());
|
||||
|
||||
if (IsFastNewFrameExit(currentSp)) {
|
||||
JSFunction *func = JSFunction::Cast(GetThisFunction(currentSp).GetTaggedObject());
|
||||
if (acc.IsECMAObject()) {
|
||||
@ -1050,7 +1047,6 @@ NO_UB_SANITIZE void EcmaInterpreter::RunInternal(JSThread *thread, ConstantPool
|
||||
SET_ACC(thisObject);
|
||||
INTERPRETER_HANDLE_RETURN();
|
||||
}
|
||||
|
||||
INTERPRETER_HANDLE_RETURN();
|
||||
}
|
||||
HANDLE_OPCODE(HANDLE_RETURNUNDEFINED_PREF) {
|
||||
@ -1071,11 +1067,8 @@ NO_UB_SANITIZE void EcmaInterpreter::RunInternal(JSThread *thread, ConstantPool
|
||||
state->acc = JSTaggedValue::Undefined();
|
||||
return;
|
||||
}
|
||||
|
||||
thread->SetCurrentSPFrame(sp);
|
||||
|
||||
constpool = ConstantPool::Cast(prevState->constpool.GetTaggedObject());
|
||||
|
||||
if (IsFastNewFrameExit(currentSp)) {
|
||||
JSFunction *func = JSFunction::Cast(GetThisFunction(currentSp).GetTaggedObject());
|
||||
if (func->IsBase()) {
|
||||
|
@ -992,6 +992,7 @@ JSHandle<JSArray> JSDateTimeFormat::ConstructFDateIntervalToJSArray(JSThread *th
|
||||
// Let index be 0.
|
||||
int index = 0;
|
||||
int32_t preEndPos = 0;
|
||||
// 2: number of elements
|
||||
std::array<int32_t, 2> begin {};
|
||||
std::array<int32_t, 2> end {};
|
||||
begin[0] = begin[1] = end[0] = end[1] = 0;
|
||||
@ -1064,7 +1065,7 @@ JSHandle<JSArray> JSDateTimeFormat::ConstructFDateIntervalToJSArray(JSThread *th
|
||||
}
|
||||
|
||||
Value JSDateTimeFormat::TrackValue(int32_t beginning, int32_t ending,
|
||||
std::array<int32_t, 2> begin, std::array<int32_t, 2> end)
|
||||
std::array<int32_t, 2> begin, std::array<int32_t, 2> end) // 2: number of elements
|
||||
{
|
||||
Value value = Value::SHARED;
|
||||
if ((begin[0] <= beginning) && (beginning <= end[0]) && (begin[0] <= ending) && (ending <= end[0])) {
|
||||
|
@ -156,7 +156,7 @@ public:
|
||||
|
||||
private:
|
||||
static HourCycleOption OptionToHourCycle(const std::string &hc);
|
||||
|
||||
// 2: number of elements
|
||||
static Value TrackValue(int32_t beginning, int32_t ending, std::array<int32_t, 2> begin,
|
||||
std::array<int32_t, 2> end);
|
||||
|
||||
|
@ -1320,7 +1320,7 @@ int ConvertValue(const UErrorCode &status, std::string &value, const std::string
|
||||
}
|
||||
|
||||
if (key == "kf" && value == "true") {
|
||||
return 2;
|
||||
return 2; // 2: in this case normalizedKeyword is empty string
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1339,7 +1339,7 @@ JSHandle<EcmaString> JSLocale::NormalizeKeywordValue(JSThread *thread, const JSH
|
||||
if (result == 1) {
|
||||
return JSHandle<EcmaString>::Cast(thread->GlobalConstants()->GetHandledUndefinedString());
|
||||
}
|
||||
if (result == 2) {
|
||||
if (result == 2) { // 2: in this case normalizedKeyword is empty string
|
||||
return factory->GetEmptyString();
|
||||
}
|
||||
return factory->NewFromStdString(value);
|
||||
|
@ -132,9 +132,7 @@ bool JSSerializer::WriteRawData(const void *data, size_t length)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
errno_t rc;
|
||||
rc = memcpy_s(buffer_ + bufferSize_, bufferCapacity_ - bufferSize_, data, length);
|
||||
if (rc != EOK) {
|
||||
if (memcpy_s(buffer_ + bufferSize_, bufferCapacity_ - bufferSize_, data, length) != EOK) {
|
||||
LOG_FULL(ERROR) << "Failed to memcpy_s Data";
|
||||
return false;
|
||||
}
|
||||
@ -192,9 +190,7 @@ bool JSSerializer::ExpandBuffer(size_t requestedSize)
|
||||
if (newBuffer == nullptr) {
|
||||
return false;
|
||||
}
|
||||
errno_t rc;
|
||||
rc = memcpy_s(newBuffer, newCapacity, buffer_, bufferSize_);
|
||||
if (rc != EOK) {
|
||||
if (memcpy_s(newBuffer, newCapacity, buffer_, bufferSize_) != EOK) {
|
||||
LOG_FULL(ERROR) << "Failed to memcpy_s Data";
|
||||
free(newBuffer);
|
||||
return false;
|
||||
|
@ -108,33 +108,38 @@ bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd)
|
||||
uint8_t opCode = byteCode.GetU8(GetCurrentPC());
|
||||
switch (opCode) {
|
||||
case RegExpOpCode::OP_DOTS:
|
||||
case RegExpOpCode::OP_ALL:
|
||||
case RegExpOpCode::OP_ALL: {
|
||||
if (!HandleOpAll(opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_CHAR32:
|
||||
case RegExpOpCode::OP_CHAR:
|
||||
case RegExpOpCode::OP_CHAR: {
|
||||
if (!HandleOpChar(byteCode, opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_NOT_WORD_BOUNDARY:
|
||||
case RegExpOpCode::OP_WORD_BOUNDARY:
|
||||
case RegExpOpCode::OP_WORD_BOUNDARY: {
|
||||
if (!HandleOpWordBoundary(opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case RegExpOpCode::OP_LINE_START:
|
||||
}
|
||||
case RegExpOpCode::OP_LINE_START: {
|
||||
if (!HandleOpLineStart(opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case RegExpOpCode::OP_LINE_END:
|
||||
}
|
||||
case RegExpOpCode::OP_LINE_END: {
|
||||
if (!HandleOpLineEnd(opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_SAVE_START:
|
||||
HandleOpSaveStart(byteCode, opCode);
|
||||
break;
|
||||
@ -144,16 +149,17 @@ bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd)
|
||||
case RegExpOpCode::OP_GOTO: {
|
||||
uint32_t offset = byteCode.GetU32(GetCurrentPC() + 1);
|
||||
Advance(opCode, offset);
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_MATCH: {
|
||||
// jump to match ahead
|
||||
if (MatchFailed(true)) {
|
||||
return false;
|
||||
}
|
||||
} break;
|
||||
case RegExpOpCode::OP_MATCH_END: {
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_MATCH_END:
|
||||
return true;
|
||||
} break;
|
||||
case RegExpOpCode::OP_SAVE_RESET:
|
||||
HandleOpSaveReset(byteCode, opCode);
|
||||
break;
|
||||
@ -165,11 +171,12 @@ bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd)
|
||||
case RegExpOpCode::OP_SPLIT_FIRST:
|
||||
HandleOpSplitFirst(byteCode, opCode);
|
||||
break;
|
||||
case RegExpOpCode::OP_PREV:
|
||||
case RegExpOpCode::OP_PREV: {
|
||||
if (!HandleOpPrev(opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_LOOP_GREEDY:
|
||||
case RegExpOpCode::OP_LOOP:
|
||||
HandleOpLoop(byteCode, opCode);
|
||||
@ -177,7 +184,8 @@ bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd)
|
||||
case RegExpOpCode::OP_PUSH_CHAR: {
|
||||
PushStack(reinterpret_cast<uintptr_t>(GetCurrentPtr()));
|
||||
Advance(opCode);
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_CHECK_CHAR: {
|
||||
if (PopStack() != reinterpret_cast<uintptr_t>(GetCurrentPtr())) {
|
||||
Advance(opCode);
|
||||
@ -185,31 +193,37 @@ bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd)
|
||||
uint32_t offset = byteCode.GetU32(GetCurrentPC() + 1);
|
||||
Advance(opCode, offset);
|
||||
}
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_PUSH: {
|
||||
PushStack(0);
|
||||
Advance(opCode);
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_POP: {
|
||||
PopStack();
|
||||
Advance(opCode);
|
||||
} break;
|
||||
case RegExpOpCode::OP_RANGE32:
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_RANGE32: {
|
||||
if (!HandleOpRange32(byteCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case RegExpOpCode::OP_RANGE:
|
||||
}
|
||||
case RegExpOpCode::OP_RANGE: {
|
||||
if (!HandleOpRange(byteCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RegExpOpCode::OP_BACKREFERENCE:
|
||||
case RegExpOpCode::OP_BACKWARD_BACKREFERENCE:
|
||||
case RegExpOpCode::OP_BACKWARD_BACKREFERENCE: {
|
||||
if (!HandleOpBackReference(byteCode, opCode)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
@ -245,15 +245,17 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
LineStartOpCode lineStartOp;
|
||||
lineStartOp.EmitOpCode(&buffer_, 0);
|
||||
Advance();
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case '$': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("Assertion %c line end \n", c0_);
|
||||
LineEndOpCode lineEndOp;
|
||||
lineEndOp.EmitOpCode(&buffer_, 0);
|
||||
Advance();
|
||||
} break;
|
||||
case '\\':
|
||||
break;
|
||||
}
|
||||
case '\\': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("Escape %c \n", c0_);
|
||||
Advance();
|
||||
@ -264,15 +266,17 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
WordBoundaryOpCode wordBoundaryOp;
|
||||
wordBoundaryOp.EmitOpCode(&buffer_, 0);
|
||||
Advance();
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 'B': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("Assertion %c \n", c0_);
|
||||
NotWordBoundaryOpCode notWordBoundaryOp;
|
||||
notWordBoundaryOp.EmitOpCode(&buffer_, 0);
|
||||
Advance();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
isAtom = true;
|
||||
int atomValue = ParseAtomEscape(isBackward);
|
||||
if (atomValue != -1) {
|
||||
@ -304,14 +308,17 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '(': {
|
||||
Advance();
|
||||
isAtom = ParseAssertionCapture(&captureIndex, isBackward);
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
Advance();
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case '.': {
|
||||
PrevOpCode prevOp;
|
||||
if (isBackward) {
|
||||
@ -331,7 +338,8 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
PrintF("Atom %c match any \n", c0_);
|
||||
isAtom = true;
|
||||
Advance();
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case '[': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("Atom %c match range \n", c0_);
|
||||
@ -365,7 +373,8 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
if (isBackward) {
|
||||
prevOp.EmitOpCode(&buffer_, 0);
|
||||
}
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case '*':
|
||||
case '+':
|
||||
case '?':
|
||||
@ -390,7 +399,7 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
return;
|
||||
}
|
||||
[[fallthrough]];
|
||||
default:
|
||||
default: {
|
||||
// PatternCharacter
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("PatternCharacter %c\n", c0_);
|
||||
@ -427,6 +436,7 @@ void RegExpParser::ParseAlternative(bool isBackward)
|
||||
}
|
||||
Advance();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isAtom && !isError_) {
|
||||
ParseQuantifier(atomBcStart, captureIndex, captureCount_ - 1);
|
||||
@ -491,7 +501,8 @@ bool RegExpParser::ParseAssertionCapture(int *captureIndex, bool isBackward)
|
||||
MatchAheadOpCode matchAheadOp;
|
||||
uint32_t len = buffer_.size_ - start;
|
||||
matchAheadOp.InsertOpCode(&buffer_, start, len);
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
// (?!Disjunction[?U, ?N])
|
||||
case '!': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
@ -504,8 +515,9 @@ bool RegExpParser::ParseAssertionCapture(int *captureIndex, bool isBackward)
|
||||
NegativeMatchAheadOpCode matchAheadOp;
|
||||
uint32_t len = buffer_.size_ - start;
|
||||
matchAheadOp.InsertOpCode(&buffer_, start, len);
|
||||
} break;
|
||||
case '<':
|
||||
break;
|
||||
}
|
||||
case '<': {
|
||||
Advance();
|
||||
// (?<=Disjunction[?U, ?N])
|
||||
if (c0_ == '=') {
|
||||
@ -551,6 +563,7 @@ bool RegExpParser::ParseAssertionCapture(int *captureIndex, bool isBackward)
|
||||
goto parseCapture; // NOLINTNEXTLINE(cppcoreguidelines-avoid-goto)
|
||||
}
|
||||
break;
|
||||
}
|
||||
// (?:Disjunction[?U, ?N])
|
||||
case ':':
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
@ -636,7 +649,7 @@ bool RegExpParser::ParserIntervalQuantifier(int *pmin, int *pmax)
|
||||
*pmin = ParseDecimalDigits();
|
||||
*pmax = *pmin;
|
||||
switch (c0_) {
|
||||
case ',':
|
||||
case ',': {
|
||||
Advance();
|
||||
if (c0_ == '}') {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
@ -654,6 +667,7 @@ bool RegExpParser::ParserIntervalQuantifier(int *pmin, int *pmax)
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case '}':
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("QuantifierPrefix{DecimalDigits}\n");
|
||||
@ -704,7 +718,8 @@ void RegExpParser::ParseQuantifier(size_t atomBcStart, int captureStart, int cap
|
||||
ParseError("Invalid repetition count");
|
||||
return;
|
||||
}
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -832,11 +847,12 @@ int RegExpParser::ParseCaptureCount(const char *groupName)
|
||||
} else {
|
||||
captureIndex++;
|
||||
}
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case '\\':
|
||||
p++; // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
|
||||
break;
|
||||
case '[':
|
||||
case '[': {
|
||||
while (p < end_ && *p != ']') {
|
||||
if (*p == '\\') {
|
||||
p++; // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
|
||||
@ -844,6 +860,7 @@ int RegExpParser::ParseCaptureCount(const char *groupName)
|
||||
p++; // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic)
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -892,7 +909,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
BackReferenceOpCode backReferenceOp;
|
||||
backReferenceOp.EmitOpCode(&buffer_, capture);
|
||||
}
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
// CharacterClassEscape
|
||||
case 'd': {
|
||||
// [0-9]
|
||||
@ -902,7 +920,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, g_rangeD);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 'D': {
|
||||
// [^0-9]
|
||||
RangeSet atomRange(g_rangeD);
|
||||
@ -913,7 +932,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, atomRange);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 's': {
|
||||
// [\f\n\r\t\v]
|
||||
RangeOpCode rangeOp;
|
||||
@ -922,7 +942,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, g_rangeS);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 'S': {
|
||||
RangeSet atomRange(g_rangeS);
|
||||
Range32OpCode rangeOp;
|
||||
@ -932,7 +953,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, atomRange);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 'w': {
|
||||
// [A-Za-z0-9]
|
||||
RangeOpCode rangeOp;
|
||||
@ -941,7 +963,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, g_rangeW);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case 'W': {
|
||||
// [^A-Za-z0-9]
|
||||
RangeSet atomRange(g_rangeW);
|
||||
@ -952,7 +975,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
rangeOp.InsertOpCode(&buffer_, atomRange);
|
||||
goto parseLookBehind;
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
// P{UnicodePropertyValueExpression}
|
||||
// p{UnicodePropertyValueExpression}
|
||||
case 'P':
|
||||
@ -991,7 +1015,8 @@ int RegExpParser::ParseAtomEscape(bool isBackward)
|
||||
}
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
Advance();
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
parseLookBehind: {
|
||||
if (isBackward) {
|
||||
prevOp.EmitOpCode(&buffer_, 0);
|
||||
@ -1066,7 +1091,7 @@ int RegExpParser::ParseCharacterEscape()
|
||||
Advance();
|
||||
break;
|
||||
// c ControlLetter
|
||||
case 'c':
|
||||
case 'c': {
|
||||
Advance();
|
||||
if ((c0_ >= 'A' && c0_ <= 'Z') || (c0_ >= 'a' && c0_ <= 'z')) {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
@ -1083,7 +1108,8 @@ int RegExpParser::ParseCharacterEscape()
|
||||
}
|
||||
}
|
||||
break;
|
||||
case '0':
|
||||
}
|
||||
case '0': {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||
PrintF("CharacterEscape 0 [lookahead ∉ DecimalDigit]\n");
|
||||
if (IsUtf16() && !(*pc_ >= '0' && *pc_ <= '9')) { // NOLINTNEXTLINE(readability-magic-numbers)
|
||||
@ -1092,13 +1118,14 @@ int RegExpParser::ParseCharacterEscape()
|
||||
break;
|
||||
}
|
||||
[[fallthrough]];
|
||||
}
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '7': {
|
||||
if (IsUtf16()) {
|
||||
// With /u, decimal escape is not interpreted as octal character code.
|
||||
ParseError("Invalid class escape");
|
||||
@ -1106,6 +1133,7 @@ int RegExpParser::ParseCharacterEscape()
|
||||
}
|
||||
result = ParseOctalLiteral();
|
||||
break;
|
||||
}
|
||||
// ParseHexEscapeSequence
|
||||
// ParseRegExpUnicodeEscapeSequence
|
||||
case 'x': {
|
||||
@ -1133,7 +1161,8 @@ int RegExpParser::ParseCharacterEscape()
|
||||
// If \u is not followed by a two-digit hexadecimal, treat it
|
||||
// as an identity escape.
|
||||
result = 'u';
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
// IdentityEscape[?U]
|
||||
case '$':
|
||||
case '(':
|
||||
@ -1155,7 +1184,7 @@ int RegExpParser::ParseCharacterEscape()
|
||||
result = c0_;
|
||||
Advance();
|
||||
break;
|
||||
default:
|
||||
default: {
|
||||
if (IsUtf16()) {
|
||||
ParseError("Invalid unicode escape");
|
||||
return 0;
|
||||
@ -1165,6 +1194,7 @@ int RegExpParser::ParseCharacterEscape()
|
||||
result = c0_;
|
||||
Advance();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -1233,15 +1263,17 @@ uint32_t RegExpParser::ParseClassAtom(RangeSet *atom)
|
||||
case '\\': {
|
||||
Advance();
|
||||
ret = static_cast<uint32_t>(ParseClassEscape(atom));
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
case KEY_EOF:
|
||||
break;
|
||||
case 0:
|
||||
case 0: {
|
||||
if (pc_ >= end_) {
|
||||
return UINT32_MAX;
|
||||
}
|
||||
[[fallthrough]];
|
||||
default:
|
||||
}
|
||||
default: {
|
||||
uint32_t value = c0_;
|
||||
size_t u16_size = 0;
|
||||
if (c0_ > INT8_MAX) { // NOLINTNEXTLINE(readability-magic-numbers)
|
||||
@ -1259,6 +1291,7 @@ uint32_t RegExpParser::ParseClassAtom(RangeSet *atom)
|
||||
atom->Insert(RangeSet(value));
|
||||
ret = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -281,8 +281,7 @@ DispatchResponse HeapProfilerImpl::GetHeapObjectId([[maybe_unused]] const GetHea
|
||||
return DispatchResponse::Fail("GetHeapObjectId not support now");
|
||||
}
|
||||
|
||||
DispatchResponse HeapProfilerImpl::GetObjectByHeapObjectId(
|
||||
[[maybe_unused]] const GetObjectByHeapObjectIdParams ¶ms,
|
||||
DispatchResponse HeapProfilerImpl::GetObjectByHeapObjectId([[maybe_unused]] const GetObjectByHeapObjectIdParams ¶ms,
|
||||
[[maybe_unused]] std::unique_ptr<RemoteObject> *remoteObjectResult)
|
||||
{
|
||||
return DispatchResponse::Fail("GetObjectByHeapObjectId not support now");
|
||||
|
@ -62,8 +62,8 @@ public:
|
||||
|
||||
static Local<JSValueRef> GetProperties(const EcmaVM *ecmaVm, const FrameHandler *frameHandler,
|
||||
int32_t level, uint32_t slot);
|
||||
static void SetProperties(const EcmaVM *vm, const FrameHandler *frameHandler,
|
||||
int32_t level, uint32_t slot, Local<JSValueRef> value);
|
||||
static void SetProperties(const EcmaVM *vm, const FrameHandler *frameHandler, int32_t level,
|
||||
uint32_t slot, Local<JSValueRef> value);
|
||||
static std::pair<int32_t, uint32_t> GetLevelSlot(const FrameHandler *frameHandler, std::string_view name);
|
||||
static Local<JSValueRef> GetGlobalValue(const EcmaVM *vm, Local<StringRef> name);
|
||||
static bool SetGlobalValue(const EcmaVM *vm, Local<StringRef> name, Local<JSValueRef> value);
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "ecmascript/ts_types/ts_obj_layout_info.h"
|
||||
|
||||
namespace panda::ecmascript {
|
||||
|
||||
class TSType : public TaggedObject {
|
||||
public:
|
||||
static constexpr size_t BIT_FIELD_OFFSET = TaggedObjectSize();
|
||||
|
Loading…
Reference in New Issue
Block a user