Defines the Operations that the BadVirtualMachine can execute.
Enumerator |
---|
Nop | No Operation.
|
DefVar | Define a Variable.
|
DefVarTyped | Define a Typed Variable.
|
LoadVar | Load a Variable.
|
LoadMember | Load a Member of an Object.
|
LoadMemberNullChecked | Load a Member of an Object and check if it is null.
|
Assign | Assign to a Reference.
|
Push | Push a Value onto the Stack.
|
FormatString | Format a String.
|
ClearStack | Clear the Stack.
|
LoadArrayAccess | Load an Array Access.
|
LoadArrayAccessNullChecked | Load an Array Access and check if it is null.
|
LoadArrayAccessReverse | Load an Array Access in reverse order.
|
LoadArrayAccessReverseNullChecked | Load an Array Access in reverse order and check if it is null.
|
Dup | Duplicate the top of the Stack.
|
ArrayInit | Initialize an Array.
|
TableInit | Initialize a Table.
|
HasProperty | Check if an Object has a Property.
|
Swap | Swap the top two Stack Values.
|
Pop | Pop the top of the Stack.
|
TypeOf | Get the Type of an Object.
|
Delete | Delete a Property.
|
InstanceOf | Get the Type of an Object and check if it is an Instance of another Type.
|
Export | Exports a named or default expression.
|
Import | Imports a module from a specified path.
|
Equals | Compare two Objects.
|
NotEquals | Compare two Objects for Inequality.
|
Greater | Compare two Objects for Greater Than.
|
GreaterEquals | Compare two Objects for Greater Than or Equal.
|
Less | Compare two Objects for Less Than.
|
LessEquals | Compare two Objects for Less Than or Equal.
|
And | Logical And two Booleans.
|
Not | Logical Not a Boolean.
|
XOr | Logical XOr two Booleans.
|
AndAssign | Logical And two Booleans and assign the result to the first.
|
XOrAssign | Logical XOr two Booleans and assign the result to the first.
|
Add | Add two Objects.
|
Sub | Subtract two Objects.
|
Mul | Multiply two Objects.
|
Div | Divide two Objects.
|
Mod | Modulo two Objects.
|
AddAssign | Assign the result of an Addition to the first Object.
|
SubAssign | Assign the result of a Subtraction to the first Object.
|
MulAssign | Assign the result of a Multiplication to the first Object.
|
DivAssign | Assign the result of a Division to the first Object.
|
ModAssign | Assign the result of a Modulo to the first Object.
|
PostInc | Postfix Increment.
|
PostDec | Postfix Decrement.
|
PreInc | Prefix Increment.
|
PreDec | Prefix Decrement.
|
Exp | Exponentiate two Objects.
|
Neg | Negate an Object.
|
ExpAssign | Assign the result of an Exponentiation to the first Object.
|
JumpRelative | Jump to a specific Instruction addressed by a relative offset.
|
JumpRelativeIfFalse | Jump to a specific Instruction addressed by a relative offset if the top of the Stack is false.
|
JumpRelativeIfTrue | Jump to a specific Instruction addressed by a relative offset if the top of the Stack is true.
|
JumpRelativeIfNotNull | Jump to a specific Instruction addressed by a relative offset if the top of the Stack is not null.
|
JumpRelativeIfNull | Jump to a specific Instruction addressed by a relative offset if the top of the Stack is null.
|
Invoke | Invoke a Function.
|
New | Create a new Object.
|
Range | Create a new Range Enumerable.
|
CreateScope | Create a new Scope.
|
DestroyScope | Destroy the current scope.
|
AddDisposeFinalizer | Registers a Finalizer for the current scope.
|
Return | Return from a Function.
|
Break | Break from a Loop.
|
Continue | Continue a Loop.
|
Throw | Throw an Exception.
|
SetBreakPointer | Set the Break instruction pointer.
|
SetContinuePointer | Set the Continue instruction pointer.
|
SetThrowPointer | Set the Throw instruction pointer.
|
AquireLock | Aquire a Lock.
|
ReleaseLock | Release a Lock.
|
Eval | Evaluate an Expression.(used if there is no Expression Compiler for the Expression)
|
BinaryUnpack | Unpack the right side of a Binary Operation into the left side.
|
UnaryUnpack | Unpack the right side of a Unary Operation into the current scope.
|
7{
12
17
22
27
32
37
42
47
52
57
62
67
72
77
82
87
92
97
102
107
112
117
122
127
132
137
142
147
152
157
162
167
168
173
178
183
184
189
194
199
204
209
214
219
224
229
234
239
244
249
254
259
264
269
274
279
284
289
294
299
304
309
314
319
324
329
334
339
344
349
354
359
364
369
374
379
384
389}
@ 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.