Dotty Documentation



[-] Constructors

[-] Members

[+] class GenSJSIR

Generates Scala.js IR files for the compilation unit.

[+] class JSCodeGen

Main codegen for Scala.js IR.

[[GenSJSIR]] creates one instance of JSCodeGen per compilation unit. The run() 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 generated js.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.
[+] object JSCodeGen
[+] final class JSDefinitions
[+] object JSDefinitions
[+] object JSEncoding

Encoding of symbol names for JavaScript

Some issues that this encoding solves: * Overloading: encode the full signature in the JS name * Same scope for fields and methods of a class * Global access to classes and modules (by their full name)

[+] object JSInterop

Management of the interoperability with JavaScript.

[+] class JSPositions

Conversion utilities from dotty Positions to IR Positions.

[+] class JSPrimitives
[+] object JSPrimitives
[+] class ScopedVar
[+] object ScopedVar