Skip to content

Commit 4c0eb8f

Browse files
Alexey AndreevAlexey Andreev
authored andcommitted
JS: prevent generation of excessive this.$result statements in coroutines
1 parent 2d315c3 commit 4c0eb8f

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

js/js.translator/src/org/jetbrains/kotlin/js/translate/context/TemporaryVariable.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ protected TemporaryVariable(@NotNull JsName temporaryName, @Nullable JsExpressio
4545

4646
@NotNull
4747
public JsNameRef reference() {
48-
return variableName.makeRef();
48+
JsNameRef result = variableName.makeRef();
49+
MetadataProperties.setSynthetic(result, true);
50+
return result;
4951
}
5052

5153
@NotNull

js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsAstUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ public static JsStatement convertToStatement(@NotNull JsNode jsNode) {
5353
assert (jsNode instanceof JsExpression) || (jsNode instanceof JsStatement)
5454
: "Unexpected node of type: " + jsNode.getClass().toString();
5555
if (jsNode instanceof JsExpression) {
56-
JsExpressionStatement statement = new JsExpressionStatement((JsExpression) jsNode);
57-
if (jsNode instanceof JsNullLiteral) {
56+
JsExpression expression = (JsExpression) jsNode;
57+
JsExpressionStatement statement = new JsExpressionStatement(expression);
58+
if (expression instanceof JsNullLiteral || MetadataProperties.getSynthetic(expression)) {
5859
MetadataProperties.setSynthetic(statement, true);
5960
}
6061
return statement;

0 commit comments

Comments
 (0)