Fixed #1842 AS1/2 Better handling obfuscated code, for..in

This commit is contained in:
Jindra Petřík
2023-01-22 22:15:04 +01:00
parent b0a9b977d0
commit 051087e9ad
24 changed files with 335 additions and 72 deletions
@@ -48,6 +48,9 @@ public class CommaExpressionItem extends GraphTargetItem {
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
boolean first = true;
for (GraphTargetItem t : commands) {
if (t.isEmpty()) {
continue;
}
if (!first) {
writer.append(", ");
}
@@ -101,13 +101,15 @@ public class DoWhileItem extends LoopItem implements Block {
}
writer.append("(");
boolean first = true;
for (int i = 0; i < expression.size(); i++) {
if (expression.get(i).isEmpty()) {
continue;
}
if (i != 0) {
if (!first) {
writer.append(", ");
}
first = false;
if (i == expression.size() - 1) {
expression.get(i).toStringBoolean(writer, localData);
} else {
@@ -92,13 +92,15 @@ public class WhileItem extends LoopItem implements Block {
writer.append(" ");
}
writer.append("(");
boolean first = true;
for (int i = 0; i < expression.size(); i++) {
if (expression.get(i).isEmpty()) {
continue;
}
if (i != 0) {
if (!first) {
writer.append(", ");
}
first = false;
if (i == expression.size() - 1) {
expression.get(i).toStringBoolean(writer, localData);
} else {