abstract class LinkerBackend extends AnyRef
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.
- Alphabetic
- By Inheritance
- LinkerBackend
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new LinkerBackend()
Abstract Value Members
- abstract val coreSpec: CoreSpec
Core specification that this linker backend implements.
- abstract def emit(unit: LinkingUnit, output: LinkerOutput, logger: Logger)(implicit ec: ExecutionContext): Future[Unit]
Emit the given LinkingUnit to the target output.
Emit the given LinkingUnit to the target output.
The linking unit given to
emit
must:- have the same
coreSpec
as this linker backend, and - contain the symbols listed in symbolRequirements.
- unit
LinkingUnit to emit
- output
File to write to
- logger
Logger to use
- have the same
- abstract def injectedIRFiles: Seq[IRFile]
Additional IR files to inject for linking, mandated by this back-end.
Additional IR files to inject for linking, mandated by this back-end.
Example: the standard emitter back-end injects
RuntimeLong.sjsir
and its companion object, unless it usesBigInt
s to implementLong
s. - abstract val symbolRequirements: SymbolRequirement
Symbols this backend needs to be present in the linking unit.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def verifyUnit(unit: LinkingUnit): Unit
Verify that a LinkingUnit can be processed by this LinkerBackend.
Verify that a LinkingUnit can be processed by this LinkerBackend.
Currently, this only tests that the linking unit core specification matches coreSpec.
In the future, this test could be extended to test symbolRequirements too.
- Attributes
- protected
- Exceptions thrown
java.lang.IllegalArgumentException
if there is a mismatch
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()