Emits a desugared JS tree to a builder
Incremental optimizer.
Incremental optimizer. An incremental optimizer consumes the reachability Analysis produced by an Analyzer, as well as trees for classes, and optimizes them in an incremental way. It maintains state between runs to do a minimal amount of work on every run, based on detecting what parts of the program must be re-optimized, and keeping optimized results from previous runs for the rest.
Checker for the validity of the IR.
Checker for the validity of the IR.
An abstract builder taking IR or JSTrees
A ClassDef after linking.
A ClassDef after linking.
Note that the version in the LinkedClass does not cover staticMethods, memberMethods, abstractMethods and exportedMembers as they have their individual versions. (The collections themselves are not versioned).
Moreover, the version is relative to the identity of a LinkedClass. The definition of identity varies as linked classes progress through the linking pipeline, but it only gets stronger, i.e., if two linked classes are id-different at phase P, then they must also be id-different at phase P+1. The converse is not true. This guarantees that versions can be used reliably to determine at phase P+1 whether a linked class coming from phase P must be reprocessed.
A MethodDef or a PropertyDef after linking.
A MethodDef or a PropertyDef after linking.
Note that the version is relative to the identity of a LinkedMember. The definition of identity varies as linked members progress through the linking pipeline, but it only gets stronger, i.e., if two linked members are id-different at phase P, then they must also be id-different at phase P+1. The converse is not true. This guarantees that versions can be used reliably to determine at phase P+1 whether a linked member coming from phase P must be reprocessed.
Links the information from VirtualScalaJSIRFiles into LinkedClassDefs.
Links the information from VirtualScalaJSIRFiles into LinkedClassDefs. Does a dead code elimination pass.
A Google Closure Error Manager that forwards to a tools.logging.Logger
Does a dead code elimination pass on LinkedClasses
Scala.js Closure optimizer: does advanced optimizations with Closure.
Scala.js optimizer: does type-aware global dce.