Fixed a pattern with parsing identifiers

This commit is contained in:
2023-01-23 21:19:51 +00:00
parent 6d961cea78
commit 59b0d15915

View File

@@ -242,10 +242,10 @@ static int nativeRunScript(Interpreter* interpreter, LiteralArray* arguments) {
//get the runner object //get the runner object
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
Literal idn = runnerLiteral;
if (parseIdentifierToValue(interpreter, &runnerLiteral)) { Literal runnerIdn = runnerLiteral;
freeLiteral(idn); if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
freeLiteral(runnerIdn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {
@@ -285,16 +285,14 @@ static int nativeGetScriptVar(Interpreter* interpreter, LiteralArray* arguments)
Literal varName = popLiteralArray(arguments); Literal varName = popLiteralArray(arguments);
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
if (IS_IDENTIFIER(varName)) { Literal varNameIdn = varName;
Literal idn = varName; if (IS_IDENTIFIER(varName) && parseIdentifierToValue(interpreter, &varName)) {
parseIdentifierToValue(interpreter, &varName); freeLiteral(varNameIdn);
freeLiteral(idn);
} }
if (IS_IDENTIFIER(runnerLiteral)) { Literal runnerIdn = runnerLiteral;
Literal idn = runnerLiteral; if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
parseIdentifierToValue(interpreter, &runnerLiteral); freeLiteral(runnerIdn);
freeLiteral(idn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {
@@ -360,16 +358,14 @@ static int nativeCallScriptFn(Interpreter* interpreter, LiteralArray* arguments)
Literal varName = popLiteralArray(arguments); Literal varName = popLiteralArray(arguments);
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
if (IS_IDENTIFIER(varName)) { Literal varNameIdn = varName;
Literal idn = varName; if (IS_IDENTIFIER(varName) && parseIdentifierToValue(interpreter, &varName)) {
parseIdentifierToValue(interpreter, &varName); freeLiteral(varNameIdn);
freeLiteral(idn);
} }
if (IS_IDENTIFIER(runnerLiteral)) { Literal runnerIdn = runnerLiteral;
Literal idn = runnerLiteral; if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
parseIdentifierToValue(interpreter, &runnerLiteral); freeLiteral(runnerIdn);
freeLiteral(idn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {
@@ -436,10 +432,9 @@ static int nativeResetScript(Interpreter* interpreter, LiteralArray* arguments)
//get the runner object //get the runner object
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
if (IS_IDENTIFIER(runnerLiteral)) { Literal runnerIdn = runnerLiteral;
Literal idn = runnerLiteral; if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
parseIdentifierToValue(interpreter, &runnerLiteral); freeLiteral(runnerIdn);
freeLiteral(idn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {
@@ -473,10 +468,9 @@ static int nativeFreeScript(Interpreter* interpreter, LiteralArray* arguments) {
//get the runner object //get the runner object
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
if (IS_IDENTIFIER(runnerLiteral)) { Literal runnerIdn = runnerLiteral;
Literal idn = runnerLiteral; if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
parseIdentifierToValue(interpreter, &runnerLiteral); freeLiteral(runnerIdn);
freeLiteral(idn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {
@@ -508,10 +502,9 @@ static int nativeCheckScriptDirty(Interpreter* interpreter, LiteralArray* argume
//get the runner object //get the runner object
Literal runnerLiteral = popLiteralArray(arguments); Literal runnerLiteral = popLiteralArray(arguments);
if (IS_IDENTIFIER(runnerLiteral)) { Literal runnerIdn = runnerLiteral;
Literal idn = runnerLiteral; if (IS_IDENTIFIER(runnerLiteral) && parseIdentifierToValue(interpreter, &runnerLiteral)) {
parseIdentifierToValue(interpreter, &runnerLiteral); freeLiteral(runnerIdn);
freeLiteral(idn);
} }
if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) { if (OPAQUE_TAG(runnerLiteral) != OPAQUE_TAG_RUNNER) {