Trees
Members list
Type members
Classlikes
Attributes
- Graph
- Supertypes
- Known subtypes
- class FieldDefclass JSFieldDef
Apply an instance method with dynamic dispatch (the default).
Apply an instance method with dynamic dispatch (the default).
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Apply a static method via dynamic import.
Apply a static method via dynamic import.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- object
- Graph
- Supertypes
- class AnyValtrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- ApplyFlags.type
Apply a static method.
Apply a static method.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Apply an instance method with static dispatch (e.g., super calls).
Apply an instance method with static dispatch (e.g., super calls).
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- Known subtypes
- class ArraySelectclass JSGlobalRefclass JSPrivateSelectclass JSSelectclass JSSuperSelectclass RecordSelectclass Selectclass SelectStaticclass VarRef
Binary operation (always preserves pureness).
Binary operation (always preserves pureness).
Attributes
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- object
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Closure with explicit captures.
Closure with explicit captures.
Attributes
- arrow
If
true
, the closure is an Arrow Function (=>
), which does not have anthis
parameter, and cannot be constructed (called withnew
). Iffalse
, it is a regular Function (function
).- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Creates a JavaScript class value.
Creates a JavaScript class value.
Attributes
- captureValues
Actual values for the captured parameters (in the
ClassDef
'sjsClassCaptures.get
)- className
Reference to the
ClassDef
for the class definition, which must havejsClassCaptures.nonEmpty
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass AnyFieldDefclass MemberDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Base class for all nodes in the IR.
Base class for all nodes in the IR.
Usually, one of the direct subclasses of IRNode
should be used instead.
Attributes
- Graph
- Supertypes
- Known subtypes
- class ClassDefclass ClassIdentclass FieldIdentclass JSSpreadclass LabelIdentclass LocalIdentclass MemberDefclass AnyFieldDefclass FieldDefclass JSFieldDefclass JSMethodPropDefclass JSMethodDefclass JSPropertyDefclass JSNativeMemberDefclass MethodDefclass MethodIdentclass ParamDefclass TopLevelExportDefclass TopLevelFieldExportDefclass TopLevelJSClassExportDefclass TopLevelMethodExportDefclass TopLevelModuleExportDefclass Treeclass Applyclass ApplyDynamicImportclass ApplyStaticclass ApplyStaticallyclass ArrayLengthclass ArrayValueclass AsInstanceOfclass Assigntrait AssignLhsclass ArraySelectclass JSGlobalRefclass JSPrivateSelectclass JSSelectclass JSSuperSelectclass RecordSelectclass Selectclass SelectStaticclass VarRefclass BinaryOpclass Blockclass Cloneclass Closureclass CreateJSClassclass Debuggerclass DoWhileclass ForInclass GetClassclass IdentityHashCodeclass Ifclass IsInstanceOfclass JSArrayConstrclass JSBinaryOpclass JSDeleteclass JSFunctionApplyclass JSImportCallclass JSImportMetaclass JSLinkingInfoclass JSMethodApplyclass JSNewclass JSNewTargetclass JSObjectConstrclass JSSuperConstructorCallclass JSSuperMethodCallclass JSTypeOfGlobalRefclass JSUnaryOpclass Labeledtrait Literalclass BooleanLiteralclass ByteLiteralclass CharLiteralclass ClassOfclass DoubleLiteralclass FloatLiteralclass LongLiteraltrait MatchableLiteralclass IntLiteralclass Nullclass StringLiteralclass ShortLiteralclass Undefinedclass LoadJSConstructorclass LoadJSModuleclass LoadModuleclass Matchclass Newclass NewArrayclass RecordValueclass Returnclass SelectJSNativeMemberclass Skipclass StoreModuleclass Thisclass Throwclass Transientclass TryCatchclass TryFinallyclass UnaryOpclass VarDefclass Whiletrait TreeOrJSSpread
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait MatchableLiteraltrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Binary operation (always preserves pureness).
Binary operation (always preserves pureness).
Operations which do not preserve pureness are not allowed in this tree. These are notably +=, -=, *=, /= and %=
Attributes
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- JSBinaryOp.type
delete qualifier[item]
delete qualifier[item]
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass AnyFieldDefclass MemberDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- JSGlobalRef.type
JavaScript dynamic import of the form import(arg)
.
JavaScript dynamic import of the form import(arg)
.
This form is its own node, rather than using something like
JSFunctionApply(JSImport())
because import
is not a first-class term in JavaScript.
ImportCall
is a dedicated syntactic form that cannot be
dissociated.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
JavaScript meta-property import.meta
.
JavaScript meta-property import.meta
.
This form is its own node, rather than using something like
JSSelect(JSImport(), StringLiteral("meta"))
because import
is not a first-class term in JavaScript. import.meta
is a dedicated syntactic form that cannot be dissociated.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass JSMethodPropDefclass MemberDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- Known subtypes
- class JSMethodDefclass JSPropertyDef
Loading specification for a native JS class or object.
Loading specification for a native JS class or object.
Attributes
- Companion:
- object
- Graph
- Supertypes
- Known subtypes
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- JSNativeLoadSpec.type
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
JavaScript meta-property new.target
.
JavaScript meta-property new.target
.
This form is its own node, rather than using something like
JSSelect(JSNew(), StringLiteral("target"))
because new
is not a first-class term in JavaScript. new.target
is a dedicated syntactic form that cannot be dissociated.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass JSMethodPropDefclass MemberDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
...items
, the "spread" operator of ECMAScript 6.
...items
, the "spread" operator of ECMAScript 6.
Attributes
- items
An Array whose items will be spread (not an arbitrary iterable)
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Super constructor call in the constructor of a non-native JS class.
Super constructor call in the constructor of a non-native JS class.
Exactly one such node must appear in the constructor of a
non-native JS class, at the top-level (possibly as a direct child
of a top-level Block
). Any other use of this node is invalid.
Statements before this node, as well as the args
, cannot contain any
This()
node. Statements after this node can use This()
.
After the execution of this node, it is guaranteed that all fields declared in the current class have been created and initialized. Up to that point, accessing any field declared in this class (e.g., through an overridden method called from the super constructor) is undefined behavior.
All in all, the shape of a constructor is therefore:
{
statementsNotUsingThis();
JSSuperConstructorCall(...argsNotUsingThis);
statementsThatMayUseThis()
}
which currently translates to something of the following shape:
{
statementsNotUsingThis();
super(...argsNotUsingThis);
this.privateField1 = 0;
this["publicField2"] = false;
statementsThatMayUseThis()
}
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Calls a method inherited from the given superClass
on receiver
.
Calls a method inherited from the given superClass
on receiver
.
Intuitively, this corresponds to
superClass.prototype[method].call(receiver, ...args)
but retains more structure at the IR level than using an explicit encoding of the above expression.
Given the non-native JS classes
class Bar extends js.Object
class Foo extends Bar
The node
JSSuperBrackerCall(LoadJSConstructor(ClassName("Bar")), receiver, method, args)
which is printed as
super(constructorOf[Bar])::receiver[method](...args)
has the following semantics:
Bar.prototype[method].call(receiver, ...args)
If this happens to be located in an instance method of Foo
, and
receiver
happens to be This()
, this is equivalent to the ES6
statement
super[method](...args)
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Selects a property inherited from the given superClass
on receiver
.
Selects a property inherited from the given superClass
on receiver
.
Given the non-native JS classes
class Bar extends js.Object
class Foo extends Bar
The node
JSSuperBrackerSelect(LoadJSConstructor(ClassName("Bar")), qualifier, item)
which is printed as
super(constructorOf[Bar])::qualifier[item]
has the semantics of an ES6 super reference
super[item]
as if it were in an instance method of Foo
with qualifier
as the
this
value.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Unary operation (always preserves pureness).
Unary operation (always preserves pureness).
Operations which do not preserve pureness are not allowed in this tree. These are notably ++ and --
Attributes
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Marker for literals. Literals are always pure.
Marker for literals. Literals are always pure.
Attributes
- Graph
- Supertypes
- Known subtypes
- class BooleanLiteralclass ByteLiteralclass CharLiteralclass ClassOfclass DoubleLiteralclass FloatLiteralclass LongLiteraltrait MatchableLiteralclass IntLiteralclass Nullclass StringLiteralclass ShortLiteralclass Undefined
Loads the constructor of a JS class (native or not).
Loads the constructor of a JS class (native or not).
className
must represent a non-trait JS class (native or not).
This is used typically to instantiate a JS class, and most importantly if it is a non-native JS class. Given the class
class Foo(x: Int) extends js.Object
The instantiation new Foo(1)
would be represented as
JSNew(LoadJSConstructor(ClassName("Foo")), List(IntLiteral(1)))
This node is also useful to encode o.isInstanceOf[Foo]
:
JSBinaryOp(instanceof, o, LoadJSConstructor(ClassName("Foo")))
If Foo
is non-native, the presence of this node makes it instantiable,
and therefore reachable.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Like LoadModule but for a JS module class.
Like LoadModule but for a JS module class.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
A break-free switch (without fallthrough behavior).
A break-free switch (without fallthrough behavior).
Unlike a JavaScript switch, it can be used in expression position.
It supports alternatives explicitly (hence the List[MatchableLiteral]
in cases), whereas in a switch one would use the fallthrough behavior to
implement alternatives.
(This is not a pattern matching construct like in Scala.)
The selector must be either an int
(IntType
) or a java.lang.String
.
The cases can be any MatchableLiteral
, even if they do not make sense
for the type of the selecter (they simply will never match).
Because +0.0 === -0.0
in JavaScript, and because those semantics are
used in a JS switch
, we have to prevent the selector from ever being
-0.0
. Otherwise, it would be matched by a case IntLiteral(0)
. At the
same time, we must allow at least int
and java.lang.String
to support
all switchable match
es from Scala. Since the latter two have no common
super type that does not allow -0.0
, we really have to special-case
those two types.
This is also why we restrict MatchableLiteral
s to IntLiteral
,
StringLiteral
and Null
. Allowing more cases would only make IR
checking more complicated, without bringing any added value.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Any member of a ClassDef
.
Any member of a ClassDef
.
Partitioned into AnyFieldDef
, MethodDef
and JSMethodPropDef
.
Attributes
- Graph
- Supertypes
- Known subtypes
- class AnyFieldDefclass FieldDefclass JSFieldDefclass JSMethodPropDefclass JSMethodDefclass JSPropertyDefclass JSNativeMemberDefclass MethodDef
Attributes
- Companion:
- object
- Graph
- Supertypes
- class AnyValtrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- MemberFlags.type
Attributes
- Companion:
- object
- Graph
- Supertypes
- class AnyValtrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- MemberNamespace.type
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait MatchableLiteraltrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- object
- Graph
- Supertypes
- class AnyValtrait Matchableclass Any
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- OptimizerHints.type
Attributes
- Graph
- Supertypes
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait MatchableLiteraltrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Companion:
- object
- Graph
- Supertypes
- Known subtypes
- class TopLevelFieldExportDefclass TopLevelJSClassExportDefclass TopLevelMethodExportDefclass TopLevelModuleExportDef
Attributes
- Companion:
- class
- Graph
- Supertypes
- Self type
- TopLevelExportDef.type
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass TopLevelExportDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass TopLevelExportDefclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass TopLevelExportDefclass IRNodeclass Objecttrait Matchableclass Any
Export for a top-level object.
Export for a top-level object.
This exports the singleton instance of the containing module class. The instance is initialized during ES module instantiation.
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass TopLevelExportDefclass IRNodeclass Objecttrait Matchableclass Any
A transient node for custom purposes.
A transient node for custom purposes.
A transient node is never a valid input to the Serializers nor to the linker, but can be used in a transient state for internal purposes.
Attributes
- value
The payload of the transient node, without any specified meaning.
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Node for a statement or expression in the IR.
Node for a statement or expression in the IR.
Attributes
- Graph
- Supertypes
- Known subtypes
- class Applyclass ApplyDynamicImportclass ApplyStaticclass ApplyStaticallyclass ArrayLengthclass ArrayValueclass AsInstanceOfclass Assigntrait AssignLhsclass ArraySelectclass JSGlobalRefclass JSPrivateSelectclass JSSelectclass JSSuperSelectclass RecordSelectclass Selectclass SelectStaticclass VarRefclass BinaryOpclass Blockclass Cloneclass Closureclass CreateJSClassclass Debuggerclass DoWhileclass ForInclass GetClassclass IdentityHashCodeclass Ifclass IsInstanceOfclass JSArrayConstrclass JSBinaryOpclass JSDeleteclass JSFunctionApplyclass JSImportCallclass JSImportMetaclass JSLinkingInfoclass JSMethodApplyclass JSNewclass JSNewTargetclass JSObjectConstrclass JSSuperConstructorCallclass JSSuperMethodCallclass JSTypeOfGlobalRefclass JSUnaryOpclass Labeledtrait Literalclass BooleanLiteralclass ByteLiteralclass CharLiteralclass ClassOfclass DoubleLiteralclass FloatLiteralclass LongLiteraltrait MatchableLiteralclass IntLiteralclass Nullclass StringLiteralclass ShortLiteralclass Undefinedclass LoadJSConstructorclass LoadJSModuleclass LoadModuleclass Matchclass Newclass NewArrayclass RecordValueclass Returnclass SelectJSNativeMemberclass Skipclass StoreModuleclass Thisclass Throwclass Transientclass TryCatchclass TryFinallyclass UnaryOpclass VarDefclass While
A hash of a tree (usually a MethodDef).
A hash of a tree (usually a MethodDef).
Contains a SHA-1 hash.
Attributes
- Graph
- Supertypes
Either a Tree
or a JSSpread
.
Either a Tree
or a JSSpread
.
This is the type of actual arguments to JS applications.
Attributes
- Graph
- Supertypes
- Known subtypes
- class JSSpreadclass Treeclass Applyclass ApplyDynamicImportclass ApplyStaticclass ApplyStaticallyclass ArrayLengthclass ArrayValueclass AsInstanceOfclass Assigntrait AssignLhsclass ArraySelectclass JSGlobalRefclass JSPrivateSelectclass JSSelectclass JSSuperSelectclass RecordSelectclass Selectclass SelectStaticclass VarRefclass BinaryOpclass Blockclass Cloneclass Closureclass CreateJSClassclass Debuggerclass DoWhileclass ForInclass GetClassclass IdentityHashCodeclass Ifclass IsInstanceOfclass JSArrayConstrclass JSBinaryOpclass JSDeleteclass JSFunctionApplyclass JSImportCallclass JSImportMetaclass JSLinkingInfoclass JSMethodApplyclass JSNewclass JSNewTargetclass JSObjectConstrclass JSSuperConstructorCallclass JSSuperMethodCallclass JSTypeOfGlobalRefclass JSUnaryOpclass Labeledtrait Literalclass BooleanLiteralclass ByteLiteralclass CharLiteralclass ClassOfclass DoubleLiteralclass FloatLiteralclass LongLiteraltrait MatchableLiteralclass IntLiteralclass Nullclass StringLiteralclass ShortLiteralclass Undefinedclass LoadJSConstructorclass LoadJSModuleclass LoadModuleclass Matchclass Newclass NewArrayclass RecordValueclass Returnclass SelectJSNativeMemberclass Skipclass StoreModuleclass Thisclass Throwclass Transientclass TryCatchclass TryFinallyclass UnaryOpclass VarDefclass While
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Unary operation (always preserves pureness).
Unary operation (always preserves pureness).
Attributes
- Companion:
- object
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait Literalclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Attributes
- Graph
- Supertypes
- trait Serializabletrait Producttrait Equalstrait AssignLhsclass Treetrait TreeOrJSSpreadclass IRNodeclass Objecttrait Matchableclass Any
Value members
Concrete methods
Tests whether the given name is a valid JavaScript identifier name.
Tests whether the given name is a valid JavaScript identifier name.
This test does not exclude keywords.