sealed
case class
JSSuperMethodCall(superClass: Tree, receiver: Tree, method: Tree, args: List[TreeOrJSSpread])(implicit pos: Position) extends Tree with Product with Serializable
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
final
def
isInstanceOf[T0]: Boolean
-
val
method: Tree
-
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
implicit
val
pos: Position
-
val
receiver: Tree
-
def
show: String
-
val
superClass: Tree
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Calls a method inherited from the given
superClass
onreceiver
.Intuitively, this corresponds to
but retains more structure at the IR level than using an explicit encoding of the above expression.
Given the non-native JS classes
The node
JSSuperBrackerCall(LoadJSConstructor(ClassName("Bar")), receiver, method, args)
which is printed as
super(constructorOf[Bar])::receiver[method](...args)
has the following semantics:
If this happens to be located in an instance method of
Foo
, *and*receiver
happens to beThis()
, this is equivalent to the ES6 statementsuper[method](...args)