Skip to content

Commit 5ce4e01

Browse files
committed
Add assertion and remove unnecessary instanceof.
1 parent af3bc1a commit 5ce4e01

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

graal-js/src/com.oracle.js.parser/src/com/oracle/js/parser/ir/TemplateLiteralNode.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ public static class UntaggedTemplateLiteralNode extends TemplateLiteralNode {
125125

126126
protected UntaggedTemplateLiteralNode(long token, int finish, List<Expression> expressions) {
127127
super(token, finish);
128+
assert verifyStringLiterals(expressions);
128129
this.expressions = expressions;
129130
}
130131

@@ -151,7 +152,7 @@ public void toString(final StringBuilder sb, final boolean printType) {
151152
sb.append('`');
152153
for (int i = 0; i < expressions.size(); i++) {
153154
Expression expression = expressions.get(i);
154-
if (i % 2 == 0 && expression instanceof LiteralNode<?>) {
155+
if (i % 2 == 0) {
155156
sb.append(((LiteralNode<?>) expression).getString());
156157
} else {
157158
sb.append("${");
@@ -161,6 +162,18 @@ public void toString(final StringBuilder sb, final boolean printType) {
161162
}
162163
sb.append('`');
163164
}
165+
166+
private static boolean verifyStringLiterals(List<Expression> expressions) {
167+
for (int i = 0; i < expressions.size(); i++) {
168+
if (i % 2 == 0) {
169+
Expression expression = expressions.get(i);
170+
if (!(expression instanceof LiteralNode<?>)) {
171+
return false;
172+
}
173+
}
174+
}
175+
return true;
176+
}
164177
}
165178

166179
/**

0 commit comments

Comments
 (0)