class
JSCodeGen extends AnyRef
Instance Constructors
-
new
JSCodeGen()(implicit ctx: Context)
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
run(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Main codegen for Scala.js IR.
GenSJSIR creates one instance of
JSCodeGen
per compilation unit. Therun()
method processes the whole compilation unit and generates.sjsir
files for it.There are 4 main levels of translation:
genCompilationUnit()
iterates through all the type definitions in the compilation unit. Each generatedjs.ClassDef
is serialized to an.sjsir
file.genScalaClass()
and other similar methods generate the skeleton of classes.genMethod()
and similar methods generate the declarations of methods.genStatOrExpr()
and everything else generate the bodies of methods.