JS: prevent generation of excessive this.$result statements in coroutines

This commit is contained in:
Alexey Andreev
2016-11-09 18:18:33 +03:00
parent 2d315c3df8
commit 4c0eb8fc31
2 changed files with 6 additions and 3 deletions
@@ -45,7 +45,9 @@ public class TemporaryVariable {
@NotNull
public JsNameRef reference() {
return variableName.makeRef();
JsNameRef result = variableName.makeRef();
MetadataProperties.setSynthetic(result, true);
return result;
}
@NotNull
@@ -53,8 +53,9 @@ public final class JsAstUtils {
assert (jsNode instanceof JsExpression) || (jsNode instanceof JsStatement)
: "Unexpected node of type: " + jsNode.getClass().toString();
if (jsNode instanceof JsExpression) {
JsExpressionStatement statement = new JsExpressionStatement((JsExpression) jsNode);
if (jsNode instanceof JsNullLiteral) {
JsExpression expression = (JsExpression) jsNode;
JsExpressionStatement statement = new JsExpressionStatement(expression);
if (expression instanceof JsNullLiteral || MetadataProperties.getSynthetic(expression)) {
MetadataProperties.setSynthetic(statement, true);
}
return statement;