Contains the Virtual Machine Implementation.
BadOpCode
Defines the Operations that the BadVirtualMachine can execute.
@ Export
Exports a named or default expression.
@ ReleaseLock
Release a Lock.
@ New
Create a new Object.
@ LoadArrayAccessReverseNullChecked
Load an Array Access in reverse order and check if it is null.
@ Pop
Pop the top of the Stack.
@ Equals
Compare two Objects.
@ Dup
Duplicate the top of the Stack.
@ Assign
Assign to a Reference.
@ Less
Compare two Objects for Less Than.
@ XOr
Logical XOr two Booleans.
@ ArrayInit
Initialize an Array.
@ XOrAssign
Logical XOr two Booleans and assign the result to the first.
@ SubAssign
Assign the result of a Subtraction to the first Object.
@ SetBreakPointer
Set the Break instruction pointer.
@ ModAssign
Assign the result of a Modulo to the first Object.
@ NotEquals
Compare two Objects for Inequality.
@ Eval
Evaluate an Expression.(used if there is no Expression Compiler for the Expression)
@ InstanceOf
Get the Type of an Object and check if it is an Instance of another Type.
@ LoadArrayAccessNullChecked
Load an Array Access and check if it is null.
@ PostDec
Postfix Decrement.
@ DefVar
Define a Variable.
@ AquireLock
Aquire a Lock.
@ LoadArrayAccessReverse
Load an Array Access in reverse order.
@ SetThrowPointer
Set the Throw instruction pointer.
@ Mul
Multiply two Objects.
@ DefVarTyped
Define a Typed Variable.
@ DestroyScope
Destroy the current scope.
@ LoadMemberNullChecked
Load a Member of an Object and check if it is null.
@ PreInc
Prefix Increment.
@ UnaryUnpack
Unpack the right side of a Unary Operation into the current scope.
@ Import
Imports a module from a specified path.
@ GreaterEquals
Compare two Objects for Greater Than or Equal.
@ JumpRelativeIfFalse
Jump to a specific Instruction addressed by a relative offset if the top of the Stack is false.
@ CreateScope
Create a new Scope.
@ JumpRelativeIfNotNull
Jump to a specific Instruction addressed by a relative offset if the top of the Stack is not null.
@ Greater
Compare two Objects for Greater Than.
@ Swap
Swap the top two Stack Values.
@ Range
Create a new Range Enumerable.
@ HasProperty
Check if an Object has a Property.
@ AndAssign
Logical And two Booleans and assign the result to the first.
@ Throw
Throw an Exception.
@ PostInc
Postfix Increment.
@ ExpAssign
Assign the result of an Exponentiation to the first Object.
@ Return
Return from a Function.
@ TypeOf
Get the Type of an Object.
@ Push
Push a Value onto the Stack.
@ JumpRelative
Jump to a specific Instruction addressed by a relative offset.
@ Continue
Continue a Loop.
@ PreDec
Prefix Decrement.
@ DivAssign
Assign the result of a Division to the first Object.
@ Not
Logical Not a Boolean.
@ LoadVar
Load a Variable.
@ AddAssign
Assign the result of an Addition to the first Object.
@ ClearStack
Clear the Stack.
@ JumpRelativeIfNull
Jump to a specific Instruction addressed by a relative offset if the top of the Stack is null.
@ Invoke
Invoke a Function.
@ TableInit
Initialize a Table.
@ And
Logical And two Booleans.
@ MulAssign
Assign the result of a Multiplication to the first Object.
@ Exp
Exponentiate two Objects.
@ JumpRelativeIfTrue
Jump to a specific Instruction addressed by a relative offset if the top of the Stack is true.
@ AddDisposeFinalizer
Registers a Finalizer for the current scope.
@ FormatString
Format a String.
@ LessEquals
Compare two Objects for Less Than or Equal.
@ LoadArrayAccess
Load an Array Access.
@ Break
Break from a Loop.
@ BinaryUnpack
Unpack the right side of a Binary Operation into the left side.
@ Sub
Subtract two Objects.
@ SetContinuePointer
Set the Continue instruction pointer.
@ Delete
Delete a Property.
@ LoadMember
Load a Member of an Object.