Common configuration given to all phases of the linker.
Core specification for the Scala.js code.
A ClassDef after linking.
A backend of a standard Scala.js linker.
A backend of a standard Scala.js linker.
Produces a JavaScript file with an optional source map.
You probably want to use an instance of interface.Linker, rather than this low-level class.
A frontend for a standard Scala.js linker.
A frontend for a standard Scala.js linker.
Produces a ModuleSet.
You probably want to use an instance of interface.Linker, rather than this low-level class.
Attention: a LinkerFrontend typically does not cache the IR input. It is advisable to do so, unless all IR is already in memory.
A simple in-memory virtual serialized Scala.js IR file.
A set of linked Scala.js modules.
A set of linked Scala.js modules.
The Scala.js linker distinguishes three types of modules:
fs
module.Note that a ModuleSet may contain no modules at all. This happens if there are no public modules.
A versioned thing, accompanied by its version.
A versioned thing, accompanied by its version.
Note that, as used in LinkingUnit
, the version is relative to the
identity of the versioned thing. The definition of identity varies as
items progress through the linking pipeline, but it only gets stronger,
i.e., if two items 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 reliably used to determine at phase P+1 whether the given
item coming from phase P must be reprocessed.
A ClassDef after linking.
Note that the version in the LinkedClass does not cover methods nor 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.