private void print(BreakStatement node) throws IOException { writer.append("break"); if (node.getBreakLabel() != null) { writer.append(' ').append(node.getBreakLabel().getString()); } writer.append(';'); }
private void print(ContinueStatement node) throws IOException { writer.append("continue"); if (node.getLabel() != null) { writer.append(' ').append(node.getLabel().getString()); } writer.append(';'); }
@Override public CAstNode visitName(Name n, WalkContext context) { return readName(context, n, n.getString()); }
private String getParentName(AstNode fn) { for(int i = 5; fn != null && i > 0; i--, fn = fn.getParent()) { if (fn instanceof ObjectProperty) { ObjectProperty prop = (ObjectProperty) fn; AstNode label = prop.getLeft(); if (label instanceof Name) { return (((Name)label).getString()); } } } return null; }
@Override public CAstNode visitPropertyGet(PropertyGet node, WalkContext arg) { CAstNode elt = Ast.makeConstant(node.getProperty().getString()); return visitObjectRead(node, node.getTarget(), elt, arg); }
private void print(ContinueStatement node) throws IOException { writer.append("continue"); if (node.getLabel() != null) { writer.append(' ').append(node.getLabel().getString()); } writer.append(';'); }
private void print(BreakStatement node) throws IOException { writer.append("break"); if (node.getBreakLabel() != null) { writer.append(' ').append(node.getBreakLabel().getString()); } writer.append(';'); }
@Override public CAstNode visitObjectLiteral(ObjectLiteral n, WalkContext context) { List<ObjectProperty> props = n.getElements(); CAstNode[] args = new CAstNode[props.size() * 2 + 1]; int i = 0; args[i++] = ((isPrologueScript(context)) ? makeBuiltinNew("Object") : handleNew(context, "Object", null)); for(ObjectProperty prop : props) { AstNode label = prop.getLeft(); args[i++] = (label instanceof Name)? Ast.makeConstant(((Name)prop.getLeft()).getString()): visit(label, context); args[i++] = visit(prop, context); } CAstNode lit = Ast.makeNode(CAstNode.OBJECT_LITERAL, args); context.cfg().map(n, lit); return lit; }
String catchVarName = catches.get(0).getVarName().getString(); CAstNode var = Ast.makeConstant(catchVarName);
assert var instanceof Name || var instanceof VariableDeclaration || var instanceof LetNode : var.getClass() + " " + var; if (var instanceof Name) { name = ((Name)var).getString(); } else { VariableDeclaration decl; assert var instanceof Name || var instanceof VariableDeclaration || var instanceof LetNode : var.getClass() + " " + var; if (var instanceof Name) { name = ((Name)var).getString(); initNode = Ast.makeNode(CAstNode.ASSIGN,