org.scalajs.core.tools.optimizer
Required Scala.js Semantics
Should positions be considered when comparing tree hashes
Class in the class hierarchy (not an interface).
Class in the class hierarchy (not an interface). A class may be a module class. A class knows its superclass and the interfaces it implements. It also maintains a list of its direct subclasses, so that the instances of Class form a tree of the class hierarchy.
Type of a class or interface.
Type of a class or interface. Types are created on demand when a method is called on a given ClassType.
Fully concurrency safe unless otherwise noted.
Base class for Class and TraitImpl.
A method implementation.
A method implementation. It must be concrete, and belong either to a Class or a TraitImpl.
A single instance is **not** concurrency safe (unless otherwise noted in a method comment). However, the global state modifications are concurrency safe.
Namespace for static members of a class.
Thing from which a MethodImpl can unregister itself from.
Optimizer part: process all methods that need reoptimizing.
Optimizer part: process all methods that need reoptimizing. PROCESS PASS ONLY. (This IS the process pass).
Schedule a method for processing in the PROCESS PASS
Schedule a method for processing in the PROCESS PASS
Update the incremental analyzer with a new run.
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.