L1_doCall

Invoke a method.

The first operand is an index into the current code's literals, which specifies an A_Bundle which names a method that contains a collection of method definitions that might be invoked. The arguments are expected to already have been pushed. They are popped from the stack and the literal specified by the second operand is pushed. This is the expected type of the send. When the invoked method eventually returns, the proposed return value is checked against the pushed type, and if it agrees then this stack entry is replaced by the returned value. If it disagrees, some sort of runtime exception should take place instead.

Functions

Link copied to clipboard
open override fun dispatch(operationDispatcher: L1OperationDispatcher)

Dispatch this operation through an L1OperationDispatcher.

Link copied to clipboard
fun shortName(): String
Link copied to clipboard
fun writeTo(stream: NybbleOutputStream)

Write this operation to a NybbleOutputStream. Do not output operands.

Properties

Link copied to clipboard
val name: String
Link copied to clipboard
val operandTypes: Array<out L1OperandType>

This operation's collection of operand types.

Link copied to clipboard
val ordinal: Int