@Override public void process(Node externs, Node root) { if (languageOutIsAtLeast(ES6) || !compiler.getOptions().rewritePolyfills) { return; // no rewriting in this case. } this.globals = new GlobalNamespace(compiler, externs, root); hotSwapScript(root, null); }
/** * Some nodes must be visited pre-order in order to rewrite the references to {@code this} * correctly. Everything else is translated post-order in {@link #visit}. */ @Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { switch (n.getType()) { case Token.REST: visitRestParam(n, parent); break; case Token.GETTER_DEF: case Token.SETTER_DEF: if (compiler.getOptions().getLanguageOut() == LanguageMode.ECMASCRIPT3) { cannotConvert(n, "ES5 getters/setters (consider using --language_out=ES5)"); return false; } break; } return true; }
private boolean languageOutIsAtLeast(LanguageMode mode) { return compiler.getOptions().getLanguageOut().compareTo(mode) >= 0; }