private static boolean isConditionalExpression(Node n) { switch (n.getToken()) { case AND: case OR: case HOOK: return true; default: return false; } }
@Override public boolean apply(Node n) { return n.getToken() == type; } });
@Override public boolean apply(Node n) { return n.getToken() == type; } }
@Override public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent) { return include == nodeTypes.contains(n.getToken()); } }
@Override public void visit(NodeTraversal t, Node n, Node parent) { switch (n.getToken()) { case FOR_OF: visitForOf(n, parent); break; default: break; } }
private Node stripBang(Node typeNode) { if (typeNode.getToken() == Token.BANG) { typeNode = typeNode.getFirstChild(); } return typeNode; }
private static boolean isHoistScopeRootNode(Node n) { switch (n.getToken()) { case FUNCTION: case MODULE_BODY: case ROOT: case SCRIPT: return true; default: return NodeUtil.isFunctionBlock(n); } }
private static boolean isDeclarationParent(Node parent) { switch (parent.getToken()) { case DECLARE: case EXPORT: return true; default: return isStatementParent(parent); } }
@Override public void visit(NodeTraversal t, Node n, Node parent) { switch (n.getToken()) { case NAME: maybeRewriteBadGoogJsImportRef(t, n, parent); break; default: break; } } }
protected Token declarationType() { for (Node current = nameNode; current != null; current = current.getParent()) { if (DECLARATION_TYPES.contains(current.getToken())) { return current.getToken(); } } checkState( isImplicit(), "The nameNode for %s must be a descendant of one of: %s", this, DECLARATION_TYPES); return null; }
public static boolean isUndefined(Node n) { switch (n.getToken()) { case VOID: return true; case NAME: return n.getString().equals("undefined"); default: break; } return false; }
public static Node block(Node stmt) { checkState(mayBeStatement(stmt), "Block node cannot contain %s", stmt.getToken()); Node block = new Node(Token.BLOCK, stmt); return block; }
private String getPropName(Node n) { switch (n.getToken()) { case GETPROP: return n.getLastChild().getString(); case MEMBER_FUNCTION_DEF: return n.getString(); default: break; } throw new RuntimeException("Unexpected node type: " + n); }
private boolean isCandidateNode(Node n) { switch(n.getToken()) { case GETPROP: return n.getFirstChild().isQualifiedName(); case NAME: return !n.getString().isEmpty(); default: return false; } }
private static boolean isKnownGlobalObjectReference(Node n) { switch (n.getToken()) { case NAME: return n.getString().equals("Object"); case GETPROP: return n.matchesQualifiedName("$jscomp.global.Object") || n.matchesQualifiedName("$jscomp$global.Object"); default: return false; } }
private int precedence(Node n) { if (n.isCast()) { return precedence(n.getFirstChild()); } return NodeUtil.precedence(n.getToken()); }
private void validateNewDotTarget(Node n) { if (n.getToken() == Token.NEW_TARGET) { Node parent = n; while ((parent = parent.getParent()) != null) { if (parent.isFunction()) { return; } } errorReporter.error(UNEXPECTED_NEW_DOT_TARGET, sourceName, n.getLineno(), n.getCharno()); } }
static boolean isNaN(Node n) { return (n.isName() && n.getString().equals("NaN")) || (n.getToken() == Token.DIV && n.getFirstChild().isNumber() && n.getFirstChild().getDouble() == 0 && n.getLastChild().isNumber() && n.getLastChild().getDouble() == 0) || n.matchesQualifiedName(NUMBER_NAN); }
private void validateObjectPatternComputedPropKey(Token type, Node n) { validateFeature(Feature.COMPUTED_PROPERTIES, n); validateNodeType(Token.COMPUTED_PROP, n); validateChildCount(n); validateExpression(n.getFirstChild()); if (n.getLastChild().isDefaultValue()) { validateDefaultValue(type, n.getLastChild()); } else { validateLHS(n.getLastChild().getToken(), n.getLastChild()); } }