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)
Name given to the local Scala.js environment variable
Signature separator string (between parameter types)
Encodes a [[Types.TypeRef]], such as in an encoded method signature.
Computes the internal name for a type.
Also mangles names that would collide with these mangled names.
Patches the result type of a method symbol to sanitize it.
For some reason, dotc thinks that the
isConstructor method (for classes or traits) is the enclosing class
or trait, but the bodies and usages act as if the result type was
This method returns
UnitType for constructor methods, and otherwise