simplify AST (idea like)
This commit is contained in:
@@ -77,7 +77,7 @@ public class JsConstructExpressionVisitor extends RecursiveJsVisitor {
|
|||||||
* We only look at nodes that would not normally be surrounded by parentheses.
|
* We only look at nodes that would not normally be surrounded by parentheses.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T extends JsNode> T accept(T node) {
|
public <T extends JsNode> void accept(T node) {
|
||||||
// Assign to Object to prevent 'inconvertible types' compile errors due
|
// Assign to Object to prevent 'inconvertible types' compile errors due
|
||||||
// to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6548436
|
// to http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6548436
|
||||||
// reproducible in jdk1.6.0_02.
|
// reproducible in jdk1.6.0_02.
|
||||||
@@ -87,9 +87,9 @@ public class JsConstructExpressionVisitor extends RecursiveJsVisitor {
|
|||||||
// Only visit expressions that won't automatically be surrounded by
|
// Only visit expressions that won't automatically be surrounded by
|
||||||
// parentheses
|
// parentheses
|
||||||
if (precedence < JsPrecedenceVisitor.PRECEDENCE_NEW) {
|
if (precedence < JsPrecedenceVisitor.PRECEDENCE_NEW) {
|
||||||
return node;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.accept(node);
|
super.accept(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
// get parentheses around it.
|
// get parentheses around it.
|
||||||
printPair(x, x.getTestExpression());
|
printPair(x, x.getTestExpression());
|
||||||
spaceOpt();
|
spaceOpt();
|
||||||
questionMark();
|
p.print('?');
|
||||||
spaceOpt();
|
spaceOpt();
|
||||||
printPair(x, x.getThenExpression());
|
printPair(x, x.getThenExpression());
|
||||||
spaceOpt();
|
spaceOpt();
|
||||||
@@ -407,17 +407,17 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
leftParen();
|
leftParen();
|
||||||
accept(x.getCondition());
|
accept(x.getCondition());
|
||||||
rightParen();
|
rightParen();
|
||||||
_nestedPush(x.getBody());
|
nestedPush(x.getBody());
|
||||||
accept(x.getBody());
|
accept(x.getBody());
|
||||||
_nestedPop(x.getBody());
|
nestedPop(x.getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitDoWhile(JsDoWhile x, JsContext context) {
|
public void visitDoWhile(JsDoWhile x, JsContext context) {
|
||||||
p.print(CHARS_DO);
|
p.print(CHARS_DO);
|
||||||
_nestedPush(x.getBody());
|
nestedPush(x.getBody());
|
||||||
accept(x.getBody());
|
accept(x.getBody());
|
||||||
_nestedPop(x.getBody());
|
nestedPop(x.getBody());
|
||||||
if (needSemi) {
|
if (needSemi) {
|
||||||
semi();
|
semi();
|
||||||
newlineOpt();
|
newlineOpt();
|
||||||
@@ -483,9 +483,9 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rightParen();
|
rightParen();
|
||||||
_nestedPush(x.getBody());
|
nestedPush(x.getBody());
|
||||||
accept(x.getBody());
|
accept(x.getBody());
|
||||||
_nestedPop(x.getBody());
|
nestedPop(x.getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -518,9 +518,9 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
accept(x.getObjectExpression());
|
accept(x.getObjectExpression());
|
||||||
|
|
||||||
rightParen();
|
rightParen();
|
||||||
_nestedPush(x.getBody());
|
nestedPush(x.getBody());
|
||||||
accept(x.getBody());
|
accept(x.getBody());
|
||||||
_nestedPop(x.getBody());
|
nestedPop(x.getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -554,9 +554,9 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
accept(x.getIfExpression());
|
accept(x.getIfExpression());
|
||||||
rightParen();
|
rightParen();
|
||||||
JsStatement thenStmt = x.getThenStatement();
|
JsStatement thenStmt = x.getThenStatement();
|
||||||
_nestedPush(thenStmt);
|
nestedPush(thenStmt);
|
||||||
accept(thenStmt);
|
accept(thenStmt);
|
||||||
_nestedPop(thenStmt);
|
nestedPop(thenStmt);
|
||||||
JsStatement elseStatement = x.getElseStatement();
|
JsStatement elseStatement = x.getElseStatement();
|
||||||
if (elseStatement != null) {
|
if (elseStatement != null) {
|
||||||
if (needSemi) {
|
if (needSemi) {
|
||||||
@@ -570,14 +570,14 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
p.print(CHARS_ELSE);
|
p.print(CHARS_ELSE);
|
||||||
boolean elseIf = elseStatement instanceof JsIf;
|
boolean elseIf = elseStatement instanceof JsIf;
|
||||||
if (!elseIf) {
|
if (!elseIf) {
|
||||||
_nestedPush(elseStatement);
|
nestedPush(elseStatement);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
space();
|
space();
|
||||||
}
|
}
|
||||||
accept(elseStatement);
|
accept(elseStatement);
|
||||||
if (!elseIf) {
|
if (!elseIf) {
|
||||||
_nestedPop(elseStatement);
|
nestedPop(elseStatement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -617,7 +617,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
parenPop(x, q, false);
|
parenPop(x, q, false);
|
||||||
p.print('.');
|
p.print('.');
|
||||||
}
|
}
|
||||||
_nameRef(x);
|
nameRef(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -745,9 +745,9 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitRegExp(JsRegExp x, JsContext ctx) {
|
public void visitRegExp(JsRegExp x, JsContext ctx) {
|
||||||
_slash();
|
slash();
|
||||||
p.print(x.getPattern());
|
p.print(x.getPattern());
|
||||||
_slash();
|
slash();
|
||||||
String flags = x.getFlags();
|
String flags = x.getFlags();
|
||||||
if (flags != null) {
|
if (flags != null) {
|
||||||
p.print(flags);
|
p.print(flags);
|
||||||
@@ -774,12 +774,12 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
p.print(CHARS_SWITCH);
|
p.print(CHARS_SWITCH);
|
||||||
spaceOpt();
|
spaceOpt();
|
||||||
leftParen();
|
leftParen();
|
||||||
accept(x.getExpr());
|
accept(x.getExpression());
|
||||||
rightParen();
|
rightParen();
|
||||||
spaceOpt();
|
spaceOpt();
|
||||||
_blockOpen();
|
blockOpen();
|
||||||
acceptList(x.getCases());
|
acceptList(x.getCases());
|
||||||
_blockClose();
|
blockClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -918,7 +918,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
|
|
||||||
boolean needBraces = !x.isGlobalBlock();
|
boolean needBraces = !x.isGlobalBlock();
|
||||||
if (needBraces) {
|
if (needBraces) {
|
||||||
_blockOpen();
|
blockOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
@@ -1000,13 +1000,13 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
p.print('=');
|
p.print('=');
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _blockClose() {
|
private void blockClose() {
|
||||||
p.indentOut();
|
p.indentOut();
|
||||||
p.print('}');
|
p.print('}');
|
||||||
newlineOpt();
|
newlineOpt();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _blockOpen() {
|
private void blockOpen() {
|
||||||
p.print('{');
|
p.print('{');
|
||||||
p.indentIn();
|
p.indentIn();
|
||||||
newlineOpt();
|
newlineOpt();
|
||||||
@@ -1040,11 +1040,11 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
nameDef(hasName.getName());
|
nameDef(hasName.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _nameRef(JsNameRef nameRef) {
|
private void nameRef(JsNameRef nameRef) {
|
||||||
p.print(nameRef.getIdent());
|
p.print(nameRef.getIdent());
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean _nestedPop(JsStatement statement) {
|
private boolean nestedPop(JsStatement statement) {
|
||||||
boolean pop = !(statement instanceof JsBlock);
|
boolean pop = !(statement instanceof JsBlock);
|
||||||
if (pop) {
|
if (pop) {
|
||||||
p.indentOut();
|
p.indentOut();
|
||||||
@@ -1052,7 +1052,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
return pop;
|
return pop;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean _nestedPush(JsStatement statement) {
|
private boolean nestedPush(JsStatement statement) {
|
||||||
boolean push = !(statement instanceof JsBlock);
|
boolean push = !(statement instanceof JsBlock);
|
||||||
if (push) {
|
if (push) {
|
||||||
newlineOpt();
|
newlineOpt();
|
||||||
@@ -1116,10 +1116,6 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
return doPush;
|
return doPush;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void questionMark() {
|
|
||||||
p.print('?');
|
|
||||||
}
|
|
||||||
|
|
||||||
private void rightParen() {
|
private void rightParen() {
|
||||||
p.print(')');
|
p.print(')');
|
||||||
}
|
}
|
||||||
@@ -1140,7 +1136,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _slash() {
|
private void slash() {
|
||||||
p.print('/');
|
p.print('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public final class JsArrayAccess extends JsExpressionImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
arrayExpression = visitor.accept(arrayExpression);
|
visitor.accept(arrayExpression);
|
||||||
indexExpression = visitor.accept(indexExpression);
|
visitor.accept(indexExpression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ package com.google.dart.compiler.backend.js.ast;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a JavaScript binary operation.
|
|
||||||
*/
|
|
||||||
public final class JsBinaryOperation extends JsExpressionImpl {
|
public final class JsBinaryOperation extends JsExpressionImpl {
|
||||||
private JsExpression arg1;
|
private JsExpression arg1;
|
||||||
private JsExpression arg2;
|
private JsExpression arg2;
|
||||||
@@ -76,11 +73,11 @@ public final class JsBinaryOperation extends JsExpressionImpl {
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
if (op.isAssignment()) {
|
if (op.isAssignment()) {
|
||||||
arg1 = visitor.acceptLvalue(arg1);
|
visitor.acceptLvalue(arg1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
arg1 = visitor.accept(arg1);
|
visitor.accept(arg1);
|
||||||
}
|
}
|
||||||
arg2 = visitor.accept(arg2);
|
visitor.accept(arg2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public final class JsCase extends JsSwitchMember {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
caseExpression = visitor.accept(caseExpression);
|
visitor.accept(caseExpression);
|
||||||
super.acceptChildren(visitor, context);
|
super.acceptChildren(visitor, context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ public class JsCatch extends JsNodeImpl implements HasCondition {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
param = visitor.accept(param);
|
visitor.accept(param);
|
||||||
if (condition != null) {
|
if (condition != null) {
|
||||||
condition = visitor.accept(condition);
|
visitor.accept(condition);
|
||||||
}
|
}
|
||||||
body = visitor.accept(body);
|
visitor.accept(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ public final class JsConditional extends JsExpressionImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
testExpression = visitor.accept(testExpression);
|
visitor.accept(testExpression);
|
||||||
thenExpression = visitor.accept(thenExpression);
|
visitor.accept(thenExpression);
|
||||||
elseExpression = visitor.accept(elseExpression);
|
visitor.accept(elseExpression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public final class JsExpressionStatement extends AbstractNode implements JsState
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
expression = visitor.accept(expression);
|
visitor.accept(expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -80,19 +80,19 @@ public class JsFor extends JsNodeImpl implements JsStatement {
|
|||||||
assert (!(initExpression != null && initVars != null));
|
assert (!(initExpression != null && initVars != null));
|
||||||
|
|
||||||
if (initExpression != null) {
|
if (initExpression != null) {
|
||||||
initExpression = visitor.accept(initExpression);
|
visitor.accept(initExpression);
|
||||||
}
|
}
|
||||||
else if (initVars != null) {
|
else if (initVars != null) {
|
||||||
initVars = visitor.accept(initVars);
|
visitor.accept(initVars);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (condition != null) {
|
if (condition != null) {
|
||||||
condition = visitor.accept(condition);
|
visitor.accept(condition);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (incrementExpression != null) {
|
if (incrementExpression != null) {
|
||||||
incrementExpression = visitor.accept(incrementExpression);
|
visitor.accept(incrementExpression);
|
||||||
}
|
}
|
||||||
body = visitor.accept(body);
|
visitor.accept(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,6 @@
|
|||||||
|
|
||||||
package com.google.dart.compiler.backend.js.ast;
|
package com.google.dart.compiler.backend.js.ast;
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a JavaScript for..in statement.
|
|
||||||
*/
|
|
||||||
public class JsForIn extends JsNodeImpl implements JsStatement {
|
public class JsForIn extends JsNodeImpl implements JsStatement {
|
||||||
private JsStatement body;
|
private JsStatement body;
|
||||||
private JsExpression iterExpression;
|
private JsExpression iterExpression;
|
||||||
@@ -59,9 +56,9 @@ public class JsForIn extends JsNodeImpl implements JsStatement {
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
if (iterExpression != null) {
|
if (iterExpression != null) {
|
||||||
iterExpression = visitor.acceptLvalue(iterExpression);
|
visitor.acceptLvalue(iterExpression);
|
||||||
}
|
}
|
||||||
objectExpression = visitor.accept(objectExpression);
|
visitor.accept(objectExpression);
|
||||||
body = visitor.accept(body);
|
visitor.accept(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,6 @@ public final class JsFunction extends JsLiteral implements HasName {
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
visitor.acceptWithInsertRemove(params);
|
visitor.acceptWithInsertRemove(params);
|
||||||
body = visitor.accept(body);
|
visitor.accept(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ public final class JsIf extends JsNodeImpl implements JsStatement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
ifExpression = visitor.accept(ifExpression);
|
visitor.accept(ifExpression);
|
||||||
thenStatement = visitor.accept(thenStatement);
|
visitor.accept(thenStatement);
|
||||||
if (elseStatement != null) {
|
if (elseStatement != null) {
|
||||||
elseStatement = visitor.accept(elseStatement);
|
visitor.accept(elseStatement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArgument
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
qualifier = visitor.accept(qualifier);
|
visitor.accept(qualifier);
|
||||||
visitor.acceptList(arguments);
|
visitor.acceptList(arguments);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,6 @@ public class JsLabel extends JsNodeImpl implements JsStatement, HasName {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
statement = visitor.accept(statement);
|
visitor.accept(statement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public final class JsNameRef extends JsExpressionImpl implements CanBooleanEval,
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
if (qualifier != null) {
|
if (qualifier != null) {
|
||||||
qualifier = visitor.accept(qualifier);
|
visitor.accept(qualifier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public final class JsNew extends JsExpressionImpl.JsExpressionHasArguments {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
constructorExpression = visitor.accept(constructorExpression);
|
visitor.accept(constructorExpression);
|
||||||
visitor.acceptList(arguments);
|
visitor.acceptList(arguments);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,7 @@
|
|||||||
|
|
||||||
package com.google.dart.compiler.backend.js.ast;
|
package com.google.dart.compiler.backend.js.ast;
|
||||||
|
|
||||||
/**
|
|
||||||
* A JavaScript postfix operation.
|
|
||||||
*/
|
|
||||||
public final class JsPostfixOperation extends JsUnaryOperation {
|
public final class JsPostfixOperation extends JsUnaryOperation {
|
||||||
|
|
||||||
public JsPostfixOperation(JsUnaryOperator op) {
|
public JsPostfixOperation(JsUnaryOperator op) {
|
||||||
this(op, null);
|
this(op, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class JsPropertyInitializer extends JsNodeImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
labelExpr = visitor.accept(labelExpr);
|
visitor.accept(labelExpr);
|
||||||
valueExpr = visitor.accept(valueExpr);
|
visitor.accept(valueExpr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public final class JsReturn extends JsNodeImpl implements JsStatement {
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
if (expression != null) {
|
if (expression != null) {
|
||||||
expression = visitor.accept(expression);
|
visitor.accept(expression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
public class JsSwitch extends JsNodeImpl implements JsStatement {
|
public class JsSwitch extends JsNodeImpl implements JsStatement {
|
||||||
|
|
||||||
private final List<JsSwitchMember> cases = new ArrayList<JsSwitchMember>();
|
private final List<JsSwitchMember> cases = new ArrayList<JsSwitchMember>();
|
||||||
private JsExpression expr;
|
private JsExpression expression;
|
||||||
|
|
||||||
public JsSwitch() {
|
public JsSwitch() {
|
||||||
super();
|
super();
|
||||||
@@ -23,12 +23,12 @@ public class JsSwitch extends JsNodeImpl implements JsStatement {
|
|||||||
return cases;
|
return cases;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsExpression getExpr() {
|
public JsExpression getExpression() {
|
||||||
return expr;
|
return expression;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpr(JsExpression expr) {
|
public void setExpression(JsExpression expression) {
|
||||||
this.expr = expr;
|
this.expression = expression;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -38,7 +38,7 @@ public class JsSwitch extends JsNodeImpl implements JsStatement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
expr = visitor.accept(expr);
|
visitor.accept(expression);
|
||||||
visitor.acceptWithInsertRemove(cases);
|
visitor.acceptWithInsertRemove(cases);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ public class JsTry extends JsNodeImpl implements JsStatement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
tryBlock = visitor.accept(tryBlock);
|
visitor.accept(tryBlock);
|
||||||
visitor.acceptWithInsertRemove(catches);
|
visitor.acceptWithInsertRemove(catches);
|
||||||
if (finallyBlock != null) {
|
if (finallyBlock != null) {
|
||||||
finallyBlock = visitor.accept(finallyBlock);
|
visitor.accept(finallyBlock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,6 @@
|
|||||||
|
|
||||||
package com.google.dart.compiler.backend.js.ast;
|
package com.google.dart.compiler.backend.js.ast;
|
||||||
|
|
||||||
/**
|
|
||||||
* A JavaScript prefix or postfix operation.
|
|
||||||
*/
|
|
||||||
public abstract class JsUnaryOperation extends JsExpressionImpl {
|
public abstract class JsUnaryOperation extends JsExpressionImpl {
|
||||||
|
|
||||||
private JsExpression arg;
|
private JsExpression arg;
|
||||||
@@ -45,10 +42,10 @@ public abstract class JsUnaryOperation extends JsExpressionImpl {
|
|||||||
if (op.isModifying()) {
|
if (op.isModifying()) {
|
||||||
// The delete operator is practically like an assignment of undefined, so
|
// The delete operator is practically like an assignment of undefined, so
|
||||||
// for practical purposes we're treating it as an lvalue.
|
// for practical purposes we're treating it as an lvalue.
|
||||||
arg = visitor.acceptLvalue(arg);
|
visitor.acceptLvalue(arg);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
arg = visitor.accept(arg);
|
visitor.accept(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class JsVars extends JsNodeImpl implements JsStatement, Iterable<JsVars.J
|
|||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
if (initExpression != null) {
|
if (initExpression != null) {
|
||||||
initExpression = visitor.accept(initExpression);
|
visitor.accept(initExpression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,9 +83,8 @@ public abstract class JsVisitor {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public <T extends JsNode> T accept(T node) {
|
public <T extends JsNode> void accept(T node) {
|
||||||
doAccept(node, UNMODIFIABLE_CONTEXT);
|
doAccept(node, UNMODIFIABLE_CONTEXT);
|
||||||
return node;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final <T extends JsNode> void acceptList(List<T> collection) {
|
public final <T extends JsNode> void acceptList(List<T> collection) {
|
||||||
@@ -94,9 +93,8 @@ public abstract class JsVisitor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsExpression acceptLvalue(JsExpression expr) {
|
public void acceptLvalue(JsExpression expression) {
|
||||||
doAccept(expr, LVALUE_CONTEXT);
|
doAccept(expression, LVALUE_CONTEXT);
|
||||||
return expr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final <T extends JsNode> void acceptWithInsertRemove(List<T> collection) {
|
public final <T extends JsNode> void acceptWithInsertRemove(List<T> collection) {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class JsWhile extends JsNodeImpl implements JsStatement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
public void acceptChildren(JsVisitor visitor, JsContext context) {
|
||||||
condition = visitor.accept(condition);
|
visitor.accept(condition);
|
||||||
body = visitor.accept(body);
|
visitor.accept(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user