Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–150 unchanged (150 lines)
151
152 @Override
153 public void exitScope(NodeTraversal t) {}
154
155 @Override
156 public void process(Node externs, Node root) {
157 (new NodeTraversal(compiler, this)).traverse(root);
158 }
159
160 @Override
161 public void visit(NodeTraversal t, Node n, Node parent) {
162 // TODO(user): While the helpers do a subtree traversal on the AST, the
163 // compiler pass itself only traverse the AST to look for function
…lines 164–493 unchanged (330 lines)

After

…lines 1–150 unchanged (150 lines)
151
152 @Override
153 public void exitScope(NodeTraversal t) {}
154
155 @Override
156 public void process(Node externs, Node root) {
157 (new NodeTraversal(compiler, this)).traverseRoots(externs, root);
158 }
159
160 @Override
161 public void visit(NodeTraversal t, Node n, Node parent) {
162 // TODO(user): While the helpers do a subtree traversal on the AST, the
163 // compiler pass itself only traverse the AST to look for function
…lines 164–493 unchanged (330 lines)

Before

program
block_comment "/*\n * Copyright 2009 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "ControlFlowGraph"
. "."
identifier "AbstractCfgNodeTraversalCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "ControlFlowGraph"
. "."
identifier "Branch"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "DataFlowAnalysis"
. "."
identifier "FlowState"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "MustBeReachingVariableDef"
. "."
identifier "MustDef"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "AbstractPostOrderCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "AbstractShallowCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "ScopedCallback"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
block_comment "/**\n * Inline variables when possible. Using the information"...
class_declaration
class "class"
identifier "FlowSensitiveInlineVariables"
superclass
extends "extends"
type_identifier "AbstractPostOrderCallback"
super_interfaces
implements "implements"
type_list
type_identifier "CompilerPass"
, ","
type_identifier "ScopedCallback"
class_body
{ "{"
block_comment "/**\n * Implementation:\n *\n * This pass first perform a"...
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
line_comment "// These two pieces of data is persistent in the whole execu"...
line_comment "// scope."
field_declaration
modifiers
private "private"
generic_type
type_identifier "ControlFlowGraph"
type_arguments
< "<"
type_identifier "Node"
> ">"
variable_declarator
identifier "cfg"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "Candidate"
> ">"
variable_declarator
identifier "candidates"
; ";"
field_declaration
modifiers
private "private"
type_identifier "MustBeReachingVariableDef"
variable_declarator
identifier "reachingDef"
; ";"
field_declaration
modifiers
private "private"
type_identifier "MaybeReachingVariableUse"
variable_declarator
identifier "reachingUses"
; ";"
field_declaration (+194 nodes collapsed)
constructor_declaration (+22 nodes collapsed)
method_declaration (+290 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
void_type "void"
identifier "exitScope"
formal_parameters
( "("
formal_parameter
type_identifier "NodeTraversal"
identifier "t"
) ")"
block
{ "{"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
void_type "void"
identifier "process"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "externs"
, ","
formal_parameter
type_identifier "Node"
identifier "root"
) ")"
block
{ "{"
expression_statement
method_invocation
parenthesized_expression
( "("
object_creation_expression
new "new"
type_identifier "NodeTraversal"
argument_list
( "("
identifier "compiler"
, ","
this "this"
) ")"
) ")"
. "."
identifier "traverse"
argument_list
( "("
identifier "root"
) ")"
; ";"
} "}"
method_declaration (+30 nodes collapsed)
block_comment "/**\n * Gathers a list of possible candidates for inlining "...
class_declaration (+368 nodes collapsed)
block_comment "/**\n * Models the connection between a definition and a us"...
class_declaration (+1286 nodes collapsed)
block_comment "/**\n * Given an expression by its root and sub-expression "...
method_declaration (+116 nodes collapsed)
block_comment "/**\n * Given an expression by its root and sub-expression "...
method_declaration (+128 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2009 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Lists"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "ControlFlowGraph"
. "."
identifier "AbstractCfgNodeTraversalCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "ControlFlowGraph"
. "."
identifier "Branch"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "DataFlowAnalysis"
. "."
identifier "FlowState"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "MustBeReachingVariableDef"
. "."
identifier "MustDef"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "AbstractPostOrderCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "AbstractShallowCallback"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "NodeTraversal"
. "."
identifier "ScopedCallback"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "List"
; ";"
block_comment "/**\n * Inline variables when possible. Using the information"...
class_declaration
class "class"
identifier "FlowSensitiveInlineVariables"
superclass
extends "extends"
type_identifier "AbstractPostOrderCallback"
super_interfaces
implements "implements"
type_list
type_identifier "CompilerPass"
, ","
type_identifier "ScopedCallback"
class_body
{ "{"
block_comment "/**\n * Implementation:\n *\n * This pass first perform a"...
field_declaration
modifiers
private "private"
final "final"
type_identifier "AbstractCompiler"
variable_declarator
identifier "compiler"
; ";"
line_comment "// These two pieces of data is persistent in the whole execu"...
line_comment "// scope."
field_declaration
modifiers
private "private"
generic_type
type_identifier "ControlFlowGraph"
type_arguments
< "<"
type_identifier "Node"
> ">"
variable_declarator
identifier "cfg"
; ";"
field_declaration
modifiers
private "private"
generic_type
type_identifier "List"
type_arguments
< "<"
type_identifier "Candidate"
> ">"
variable_declarator
identifier "candidates"
; ";"
field_declaration
modifiers
private "private"
type_identifier "MustBeReachingVariableDef"
variable_declarator
identifier "reachingDef"
; ";"
field_declaration
modifiers
private "private"
type_identifier "MaybeReachingVariableUse"
variable_declarator
identifier "reachingUses"
; ";"
field_declaration (+194 nodes collapsed)
constructor_declaration (+22 nodes collapsed)
method_declaration (+290 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
void_type "void"
identifier "exitScope"
formal_parameters
( "("
formal_parameter
type_identifier "NodeTraversal"
identifier "t"
) ")"
block
{ "{"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
void_type "void"
identifier "process"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "externs"
, ","
formal_parameter
type_identifier "Node"
identifier "root"
) ")"
block
{ "{"
expression_statement
method_invocation
parenthesized_expression
( "("
object_creation_expression
new "new"
type_identifier "NodeTraversal"
argument_list
( "("
identifier "compiler"
, ","
this "this"
) ")"
) ")"
. "."
identifier "traverseRoots"
argument_list
( "("
identifier "externs"
, ","
identifier "root"
) ")"
; ";"
} "}"
method_declaration (+30 nodes collapsed)
block_comment "/**\n * Gathers a list of possible candidates for inlining "...
class_declaration (+368 nodes collapsed)
block_comment "/**\n * Models the connection between a definition and a us"...
class_declaration (+1286 nodes collapsed)
block_comment "/**\n * Given an expression by its root and sub-expression "...
method_declaration (+116 nodes collapsed)
block_comment "/**\n * Given an expression by its root and sub-expression "...
method_declaration (+128 nodes collapsed)
} "}"