Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: dart/compiler/java/com/google/dart/compiler/backend/js/ClosureJsAstTranslator.java

Issue 9353015: Remove dartc optimizing backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix minor test issues Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/compiler/java/com/google/dart/compiler/backend/js/ClosureJsAstTranslator.java
diff --git a/dart/compiler/java/com/google/dart/compiler/backend/js/ClosureJsAstTranslator.java b/dart/compiler/java/com/google/dart/compiler/backend/js/ClosureJsAstTranslator.java
deleted file mode 100644
index 533e8b60f4e28e91084bcef8c7161b6684a51a62..0000000000000000000000000000000000000000
--- a/dart/compiler/java/com/google/dart/compiler/backend/js/ClosureJsAstTranslator.java
+++ /dev/null
@@ -1,724 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.google.dart.compiler.backend.js;
-
-import com.google.common.base.Preconditions;
-import com.google.dart.compiler.Source;
-import com.google.dart.compiler.backend.js.ast.HasName;
-import com.google.dart.compiler.backend.js.ast.JsArrayAccess;
-import com.google.dart.compiler.backend.js.ast.JsArrayLiteral;
-import com.google.dart.compiler.backend.js.ast.JsBinaryOperation;
-import com.google.dart.compiler.backend.js.ast.JsBinaryOperator;
-import com.google.dart.compiler.backend.js.ast.JsBlock;
-import com.google.dart.compiler.backend.js.ast.JsBooleanLiteral;
-import com.google.dart.compiler.backend.js.ast.JsBreak;
-import com.google.dart.compiler.backend.js.ast.JsCase;
-import com.google.dart.compiler.backend.js.ast.JsCatch;
-import com.google.dart.compiler.backend.js.ast.JsConditional;
-import com.google.dart.compiler.backend.js.ast.JsContinue;
-import com.google.dart.compiler.backend.js.ast.JsDebugger;
-import com.google.dart.compiler.backend.js.ast.JsDefault;
-import com.google.dart.compiler.backend.js.ast.JsDoWhile;
-import com.google.dart.compiler.backend.js.ast.JsEmpty;
-import com.google.dart.compiler.backend.js.ast.JsExprStmt;
-import com.google.dart.compiler.backend.js.ast.JsExpression;
-import com.google.dart.compiler.backend.js.ast.JsFor;
-import com.google.dart.compiler.backend.js.ast.JsForIn;
-import com.google.dart.compiler.backend.js.ast.JsFunction;
-import com.google.dart.compiler.backend.js.ast.JsIf;
-import com.google.dart.compiler.backend.js.ast.JsInvocation;
-import com.google.dart.compiler.backend.js.ast.JsLabel;
-import com.google.dart.compiler.backend.js.ast.JsName;
-import com.google.dart.compiler.backend.js.ast.JsNameRef;
-import com.google.dart.compiler.backend.js.ast.JsNew;
-import com.google.dart.compiler.backend.js.ast.JsNode;
-import com.google.dart.compiler.backend.js.ast.JsNullLiteral;
-import com.google.dart.compiler.backend.js.ast.JsNumberLiteral;
-import com.google.dart.compiler.backend.js.ast.JsObjectLiteral;
-import com.google.dart.compiler.backend.js.ast.JsParameter;
-import com.google.dart.compiler.backend.js.ast.JsPostfixOperation;
-import com.google.dart.compiler.backend.js.ast.JsPrefixOperation;
-import com.google.dart.compiler.backend.js.ast.JsProgram;
-import com.google.dart.compiler.backend.js.ast.JsPropertyInitializer;
-import com.google.dart.compiler.backend.js.ast.JsRegExp;
-import com.google.dart.compiler.backend.js.ast.JsReturn;
-import com.google.dart.compiler.backend.js.ast.JsStatement;
-import com.google.dart.compiler.backend.js.ast.JsStringLiteral;
-import com.google.dart.compiler.backend.js.ast.JsSwitch;
-import com.google.dart.compiler.backend.js.ast.JsSwitchMember;
-import com.google.dart.compiler.backend.js.ast.JsThisRef;
-import com.google.dart.compiler.backend.js.ast.JsThrow;
-import com.google.dart.compiler.backend.js.ast.JsTry;
-import com.google.dart.compiler.backend.js.ast.JsUnaryOperator;
-import com.google.dart.compiler.backend.js.ast.JsVars;
-import com.google.dart.compiler.backend.js.ast.JsVars.JsVar;
-import com.google.dart.compiler.backend.js.ast.JsWhile;
-import com.google.dart.compiler.common.HasSymbol;
-import com.google.dart.compiler.common.SourceInfo;
-import com.google.dart.compiler.common.Symbol;
-import com.google.javascript.jscomp.AstValidator;
-import com.google.javascript.rhino.InputId;
-import com.google.javascript.rhino.JSDocInfoBuilder;
-import com.google.javascript.rhino.Node;
-import com.google.javascript.rhino.Token;
-import com.google.javascript.rhino.jstype.SimpleSourceFile;
-import com.google.javascript.rhino.jstype.StaticSourceFile;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * Translate a Dart JS AST to a Closure Compiler AST.
- * @author johnlenz@google.com (John Lenz)
- */
-public class ClosureJsAstTranslator {
- private final Map<Source, StaticSourceFile> sourceCache =
- new HashMap<Source, StaticSourceFile>();
-
- private final boolean validate;
-
- ClosureJsAstTranslator(boolean validate) {
- this.validate = validate;
- }
-
- private StaticSourceFile getClosureSourceFile(Source source) {
- StaticSourceFile closureSourceFile = sourceCache.get(source);
- if (closureSourceFile == null) {
- closureSourceFile = new SimpleSourceFile(source.getName(), false);
- sourceCache.put(source, closureSourceFile);
- }
- return closureSourceFile;
- }
-
- public Node translate(JsProgram program, InputId inputId, Source source) {
- Node script = new Node(Token.SCRIPT);
- script.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
- script.setInputId(inputId);
- script.putProp(Node.SOURCENAME_PROP, source.getName());
- script.setStaticSourceFile(getClosureSourceFile(source));
- for (JsStatement s : program.getGlobalBlock().getStatements()) {
- script.addChildToBack(transform(s));
- }
- // Validate the structural integrity of the AST.
- if (validate) {
- new AstValidator().validateScript(script);
- }
- return script;
- }
-
- private Node transform(JsStatement x) {
- switch (x.getKind()) {
- case BLOCK:
- return transform((JsBlock)x);
- case BREAK:
- return transform((JsBreak)x);
- case CONTINUE:
- return transform((JsContinue)x);
- case DEBUGGER:
- return transform((JsDebugger)x);
- case DO:
- return transform((JsDoWhile)x);
- case EMPTY:
- return transform((JsEmpty)x);
- case EXPR_STMT:
- return transform((JsExprStmt)x);
- case FOR:
- return transform((JsFor)x);
- case FOR_IN:
- return transform((JsForIn)x);
- case IF:
- return transform((JsIf)x);
- case LABEL:
- return transform((JsLabel)x);
- case RETURN:
- return transform((JsReturn)x);
- case SWITCH:
- return transform((JsSwitch)x);
- case THROW:
- return transform((JsThrow)x);
- case TRY:
- return transform((JsTry)x);
- case VARS:
- return transform((JsVars)x);
- case WHILE:
- return transform((JsWhile)x);
- default:
- throw new IllegalStateException(
- "Unexpected statement type: " + x.getClass().getSimpleName());
- }
- }
-
- private Node transform(JsExpression x) {
- assert x != null;
- switch (x.getKind()) {
- case ARRAY:
- return transform((JsArrayLiteral)x);
- case ARRAY_ACCESS:
- return transform((JsArrayAccess)x);
- case BINARY_OP:
- return transform((JsBinaryOperation)x);
- case CONDITIONAL:
- return transform((JsConditional)x);
- case INVOKE:
- return transform((JsInvocation)x);
- case FUNCTION:
- return transform((JsFunction)x);
- case OBJECT:
- return transform((JsObjectLiteral)x);
- case BOOLEAN:
- return transform((JsBooleanLiteral)x);
- case NULL:
- return transform((JsNullLiteral)x);
- case NUMBER:
- return transform((JsNumberLiteral)x);
- case REGEXP:
- return transform((JsRegExp)x);
- case STRING:
- return transform((JsStringLiteral)x);
- case THIS:
- return transform((JsThisRef)x);
- case NAME_REF:
- return transform((JsNameRef)x);
- case NEW:
- return transform((JsNew)x);
- case POSTFIX_OP:
- return transform((JsPostfixOperation)x);
- case PREFIX_OP:
- return transform((JsPrefixOperation)x);
- default:
- throw new IllegalStateException(
- "Unexpected expression type: " + x.getClass().getSimpleName());
- }
- }
-
- private Node transform(JsSwitchMember x) {
- switch (x.getKind()) {
- case CASE:
- return transform((JsCase)x);
- case DEFAULT:
- return transform((JsDefault)x);
- default:
- throw new IllegalStateException(
- "Unexpected switch member type: " + x.getClass().getSimpleName());
- }
- }
-
- private Node transform(JsArrayAccess x) {
- Node n = new Node(Token.GETELEM,
- transform(x.getArrayExpr()),
- transform(x.getIndexExpr()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsArrayLiteral x) {
- Node n = new Node(Token.ARRAYLIT);
- for (Object element : x.getExpressions()) {
- JsExpression arg = (JsExpression) element;
- n.addChildToBack(transform(arg));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsBinaryOperation x) {
- JsBinaryOperator op = x.getOperator();
- Node n = new Node(getTokenForOp(op),
- transform(x.getArg1()),
- transform(x.getArg2()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsBlock x) {
- Node n = new Node(Token.BLOCK);
- for (JsStatement s : x.getStatements()) {
- n.addChildToBack(transform(s));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsBooleanLiteral x) {
- Node n = new Node(x.getValue() ? Token.TRUE : Token.FALSE);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsBreak x) {
- Node n = new Node(Token.BREAK);
-
- JsNameRef label = x.getLabel();
- if (label != null) {
- n.addChildToBack(transformLabel(label));
- }
-
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsCase x) {
- Node n = new Node(Token.CASE);
- n.addChildToBack(transform(x.getCaseExpr()));
-
- Node body = new Node(Token.BLOCK);
- body.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
- applySourceInfo(body, x);
- n.addChildToBack(body);
-
- for (Object element : x.getStmts()) {
- JsStatement stmt = (JsStatement) element;
- body.addChildToBack(transform(stmt));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsCatch x) {
- Node n = new Node(Token.CATCH,
- transformName(x.getParameter().getName()),
- transform(x.getBody()));
- Preconditions.checkState(x.getCondition() == null);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsConditional x) {
- Node n = new Node(Token.HOOK,
- transform(x.getTestExpression()),
- transform(x.getThenExpression()),
- transform(x.getElseExpression()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsContinue x) {
- Node n = new Node(Token.CONTINUE);
-
- JsNameRef label = x.getLabel();
- if (label != null) {
- n.addChildToBack(transformLabel(label));
- }
-
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsDebugger x) {
- Node n = new Node(Token.DEBUGGER);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsDefault x) {
- Node n = new Node(Token.DEFAULT);
-
- Node body = new Node(Token.BLOCK);
- body.putBooleanProp(Node.SYNTHETIC_BLOCK_PROP, true);
- applySourceInfo(body, x);
- n.addChildToBack(body);
-
- for (Object element : x.getStmts()) {
- JsStatement stmt = (JsStatement) element;
- body.addChildToBack(transform(stmt));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsDoWhile x) {
- Node n = new Node(Token.DO,
- transformBody(x.getBody(), x),
- transform(x.getCondition()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsEmpty x) {
- return new Node(Token.EMPTY);
- }
-
- private Node transform(JsExprStmt x) {
- // The Dart JS AST doesn't produce function declarations, instead
- // they are expressions statements:
- Node expr = transform(x.getExpression());
- if (expr.getType() != Token.FUNCTION) {
- return new Node(Token.EXPR_RESULT, expr);
- } else {
- return expr;
- }
- }
-
- private Node transform(JsFor x) {
- Node n = new Node(Token.FOR);
-
- // The init expressions or var decl.
- //
- if (x.getInitExpr() != null) {
- n.addChildToBack(transform(x.getInitExpr()));
- } else if (x.getInitVars() != null) {
- n.addChildToBack(transform(x.getInitVars()));
- } else {
- n.addChildToBack(new Node(Token.EMPTY));
- }
-
- // The loop test.
- //
- if (x.getCondition() != null) {
- n.addChildToBack(transform(x.getCondition()));
- } else {
- n.addChildToBack(new Node(Token.EMPTY));
- }
-
- // The incr expression.
- //
- if (x.getIncrExpr() != null) {
- n.addChildToBack(transform(x.getIncrExpr()));
- } else {
- n.addChildToBack(new Node(Token.EMPTY));
- }
-
- n.addChildToBack(transformBody(x.getBody(), x));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsForIn x) {
- Node n = new Node(Token.FOR);
-
- if (x.getIterVarName() != null) {
- Node expr = new Node(Token.VAR,
- transformName(x.getIterVarName()));
- n.addChildToBack(expr);
- } else {
- // Just a name ref.
- //
- n.addChildToBack(transform(x.getIterExpr()));
- }
-
- n.addChildToBack(transform(x.getObjExpr()));
- n.addChildToBack(transformBody(x.getBody(), x));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsFunction x) {
- Node n = new Node(Token.FUNCTION);
- if (x.getName() != null) {
- n.addChildToBack(getNameNodeFor(x));
- applyOriginalName(n, x);
- } else {
- Node emptyName = Node.newString(Token.NAME, "");
- applySourceInfo(emptyName, x);
- n.addChildToBack(emptyName);
- n.putProp(Node.ORIGINALNAME_PROP, "");
- }
-
- Node params = new Node(Token.LP);
- for (Object element : x.getParameters()) {
- JsParameter param = (JsParameter) element;
- params.addChildToBack(transform(param));
- }
- applySourceInfo(n, x);
- n.addChildToBack(params);
-
- n.addChildToBack(transform(x.getBody()));
-
- if (x.isConstructor()) {
- JSDocInfoBuilder builder = new JSDocInfoBuilder(false);
- builder.recordConstructor();
- n.setJSDocInfo(builder.build(n));
- }
-
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsIf x) {
- Node n = new Node(Token.IF,
- transform(x.getIfExpr()),
- transformBody(x.getThenStmt(), x));
- if (x.getElseStmt() != null) {
- n.addChildToBack(transformBody(x.getElseStmt(), x));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsInvocation x) {
- Node n = new Node(Token.CALL,
- transform(x.getQualifier()));
- for (Object element : x.getArguments()) {
- JsExpression arg = (JsExpression) element;
- n.addChildToBack(transform(arg));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsLabel x) {
- Node n = new Node(Token.LABEL,
- transformLabel(x.getName()),
- transform(x.getStmt()));
-
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsNameRef x) {
- Node n;
- if (x.getQualifier() != null) {
- n = new Node(Token.GETPROP,
- transform(x.getQualifier()),
- transformNameAsString(x.getShortIdent(), x));
- } else {
- n = transformName(x.getShortIdent(), x);
- }
- applyOriginalName(n, x);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsNew x) {
- Node n = new Node(Token.NEW,
- transform(x.getConstructorExpression()));
- for (Object element : x.getArguments()) {
- JsExpression arg = (JsExpression) element;
- n.addChildToBack(transform(arg));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsNullLiteral x) {
- return new Node(Token.NULL);
- }
-
- private Node transform(JsNumberLiteral x) {
- return Node.newNumber(x.getValue());
- }
-
- private Node transform(JsObjectLiteral x) {
- Node n = new Node(Token.OBJECTLIT);
-
- for (Object element : x.getPropertyInitializers()) {
- JsPropertyInitializer propInit = (JsPropertyInitializer) element;
- Node key = transform(propInit.getLabelExpr());
- Preconditions.checkState(key.getType() == Token.STRING);
- key.addChildToBack(transform(propInit.getValueExpr()));
- n.addChildToBack(key);
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsParameter x) {
- return getNameNodeFor(x);
- }
-
- private Node transform(JsPostfixOperation x) {
- Node n = new Node(getTokenForOp(x.getOperator()),
- transform(x.getArg()));
- n.putBooleanProp(Node.INCRDECR_PROP, true);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsPrefixOperation x) {
- Node n = new Node(getTokenForOp(x.getOperator()),
- transform(x.getArg()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsRegExp x) {
- String flags = x.getFlags();
- Node n = new Node(Token.REGEXP,
- Node.newString(x.getPattern()),
- Node.newString(flags != null ? x.getFlags() : ""));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsReturn x) {
- Node n = new Node(Token.RETURN);
- JsExpression result = x.getExpr();
- if (result != null) {
- n.addChildToBack(transform(x.getExpr()));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsStringLiteral x) {
- return Node.newString(x.getValue());
- }
-
- private Node transform(JsSwitch x) {
- Node n = new Node(Token.SWITCH,
- transform(x.getExpr()));
- for (JsSwitchMember member : x.getCases()) {
- n.addChildToBack(transform(member));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsThisRef x) {
- Node n = new Node(Token.THIS);
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsThrow x) {
- Node n = new Node(Token.THROW,
- transform(x.getExpr()));
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsTry x) {
- Node n = new Node(Token.TRY,
- transform(x.getTryBlock()));
-
- Node catches = new Node(Token.BLOCK);
- for (JsCatch catchBlock : x.getCatches()) {
- catches.addChildToBack(transform(catchBlock));
- }
- n.addChildToBack(catches);
-
- JsBlock finallyBlock = x.getFinallyBlock();
- if (finallyBlock != null) {
- n.addChildToBack(transform(finallyBlock));
- }
-
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsVar x) {
- Node n = getNameNodeFor(x);
- JsExpression initExpr = x.getInitExpr();
- if (initExpr != null) {
- n.addChildToBack(transform(initExpr));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsVars x) {
- Node n = new Node(Token.VAR);
- for (JsVar var : x) {
- n.addChildToBack(transform(var));
- }
- return applySourceInfo(n, x);
- }
-
- private Node transform(JsWhile x) {
- Node n = new Node(Token.WHILE,
- transform(x.getCondition()),
- transformBody(x.getBody(), x));
- return applySourceInfo(n, x);
- }
-
- private Node transformBody(JsStatement x, SourceInfo parent) {
- Node n = transform(x);
- if (n.getType() != Token.BLOCK) {
- Node stmt = n;
- n = new Node(Token.BLOCK);
- if (n.getType() != Token.EMPTY) {
- n.addChildToBack(stmt);
- }
- applySourceInfo(n, parent);
- }
- return n;
- }
-
- private Node transformLabel(JsNameRef label) {
- Node n = Node.newString(Token.LABEL_NAME, getName(label));
- return applySourceInfo(n, label);
- }
-
- private Node transformLabel(JsName label) {
- Node n = Node.newString(Token.LABEL_NAME, getName(label));
- return applySourceInfo(n, label.getStaticRef());
- }
-
- private Node transformName(JsName name) {
- Node n = Node.newString(Token.NAME, getName(name));
- return applySourceInfo(n, name.getStaticRef());
- }
-
- private Node transformName(String name, SourceInfo info) {
- Node n = Node.newString(Token.NAME, name);
- return applySourceInfo(n, info);
- }
-
- private Node transformNameAsString(String name, SourceInfo info) {
- Node n = Node.newString(name);
- return applySourceInfo(n, info);
- }
-
- private Node getNameNodeFor(HasName hasName) {
- Node n = Node.newString(Token.NAME, getName(hasName.getName()));
- applyOriginalName(n, (JsNode)hasName);
- return applySourceInfo(n, (SourceInfo)hasName);
- }
-
- private String getName(JsName name) {
- return name.getShortIdent();
- }
-
- private String getName(JsNameRef name) {
- return name.getShortIdent();
- }
-
- private int getTokenForOp(JsUnaryOperator op) {
- switch (op) {
- case BIT_NOT: return Token.BITNOT;
- case DEC: return Token.DEC;
- case DELETE: return Token.DELPROP;
- case INC: return Token.INC;
- case NEG: return Token.NEG;
- case POS: return Token.POS;
- case NOT: return Token.NOT;
- case TYPEOF: return Token.TYPEOF;
- case VOID: return Token.VOID;
- }
- throw new IllegalStateException();
- }
-
- private int getTokenForOp(JsBinaryOperator op) {
- switch (op) {
- case MUL: return Token.MUL;
- case DIV: return Token.DIV;
- case MOD: return Token.MOD;
- case ADD: return Token.ADD;
- case SUB: return Token.SUB;
- case SHL: return Token.LSH;
- case SHR: return Token.RSH;
- case SHRU: return Token.URSH;
- case LT: return Token.LT;
- case LTE: return Token.LE;
- case GT: return Token.GT;
- case GTE: return Token.GE;
- case INSTANCEOF: return Token.INSTANCEOF;
- case INOP: return Token.IN;
- case EQ: return Token.EQ;
- case NEQ: return Token.NE;
- case REF_EQ: return Token.SHEQ;
- case REF_NEQ: return Token.SHNE;
- case BIT_AND: return Token.BITAND;
- case BIT_XOR: return Token.BITXOR;
- case BIT_OR: return Token.BITOR;
- case AND: return Token.AND;
- case OR: return Token.OR;
- case ASG: return Token.ASSIGN;
- case ASG_ADD: return Token.ASSIGN_ADD;
- case ASG_SUB: return Token.ASSIGN_SUB;
- case ASG_MUL: return Token.ASSIGN_MUL;
- case ASG_DIV: return Token.ASSIGN_DIV;
- case ASG_MOD: return Token.ASSIGN_MOD;
- case ASG_SHL: return Token.ASSIGN_LSH;
- case ASG_SHR: return Token.ASSIGN_RSH;
- case ASG_SHRU: return Token.ASSIGN_URSH;
- case ASG_BIT_AND: return Token.ASSIGN_BITAND;
- case ASG_BIT_OR: return Token.ASSIGN_BITOR;
- case ASG_BIT_XOR: return Token.ASSIGN_BITXOR;
- case COMMA: return Token.COMMA;
- }
- return 0;
- }
-
- private Node applyOriginalName(Node n, JsNode x) {
- if (x instanceof HasSymbol) {
- Symbol symbol = ((HasSymbol)x).getSymbol();
- if (symbol != null) {
- String originalName = symbol.getOriginalSymbolName();
- n.putProp(Node.ORIGINALNAME_PROP, originalName);
- }
- }
- return n;
- }
-
- private Node applySourceInfo(Node n, SourceInfo info) {
- if (info != null && info.getSource() != null) {
- n.setStaticSourceFile(getClosureSourceFile(info.getSource()));
- n.setLineno(info.getSourceLine());
- n.setCharno(info.getSourceColumn());
- }
- return n;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698