-
Notifications
You must be signed in to change notification settings - Fork 46
OP Code Table
Yazhong Liu edited this page Jan 19, 2019
·
4 revisions
000 VM_OC_POP, /**< pop from stack */
001 VM_OC_POP_BLOCK, /**< pop block */
002 VM_OC_PUSH, /**< push one element */
003 VM_OC_PUSH_TWO, /**< push two elements onto the stack */
004 VM_OC_PUSH_THREE, /**< push three elements onto the stack */
005 VM_OC_PUSH_UNDEFINED, /**< push undefined value */
006 VM_OC_PUSH_TRUE, /**< push true value */
007 VM_OC_PUSH_FALSE, /**< push false value */
008 VM_OC_PUSH_NULL, /**< push null value */
009 VM_OC_PUSH_THIS, /**< push this */
010 VM_OC_PUSH_NUMBER_0, /**< push number zero */
011 VM_OC_PUSH_NUMBER_POS_BYTE, /**< push number between 1 and 256 */
012 VM_OC_PUSH_NUMBER_NEG_BYTE, /**< push number between -1 and -256 */
013 VM_OC_PUSH_OBJECT, /**< push object */
014 VM_OC_PUSH_NAMED_FUNC_EXPR, /**< push named function expression */
015 VM_OC_SET_PROPERTY, /**< set property */
016 VM_OC_SET_COMPUTED_PROPERTY, /**< set computed property */
017 VM_OC_SET_GETTER, /**< set getter */
018 VM_OC_SET_SETTER, /**< set setter */
019 VM_OC_PUSH_UNDEFINED_BASE, /**< push undefined base */
020 VM_OC_PUSH_ARRAY, /**< push array */
021 VM_OC_PUSH_ELISON, /**< push elison */
022 VM_OC_APPEND_ARRAY, /**< append array */
023 VM_OC_IDENT_REFERENCE, /**< ident reference */
024 VM_OC_PROP_REFERENCE, /**< prop reference */
025 VM_OC_PROP_GET, /**< prop get */
026 VM_OC_PROP_PRE_INCR, /**< prefix increment of a property */
027 VM_OC_PROP_PRE_DECR, /**< prop prefix decrement of a property */
028 VM_OC_PROP_POST_INCR, /**< prop postfix increment of a property */
029 VM_OC_PROP_POST_DECR, /**< prop postfix decrement of a property */
030 VM_OC_PRE_INCR, /**< prefix increment */
031 VM_OC_PRE_DECR, /**< prefix decrement */
032 VM_OC_POST_INCR, /**< postfix increment */
033 VM_OC_POST_DECR, /**< postfix decrement */
034 VM_OC_PROP_DELETE, /**< delete property */
035 VM_OC_DELETE, /**< delete */
036 VM_OC_ASSIGN, /**< assign */
037 VM_OC_ASSIGN_PROP, /**< assign property */
038 VM_OC_ASSIGN_PROP_THIS, /**< assign prop this */
039 VM_OC_RET, /**< return */
040 VM_OC_THROW, /**< throw */
041 VM_OC_THROW_REFERENCE_ERROR, /**< throw reference error */
042 VM_OC_EVAL, /**< eval */
043 VM_OC_CALL, /**< call */
044 VM_OC_NEW, /**< new */
045 VM_OC_JUMP, /**< jump */
046 VM_OC_BRANCH_IF_STRICT_EQUAL, /**< branch if stric equal */
047 VM_OC_BRANCH_IF_TRUE, /**< branch if true */
048 VM_OC_BRANCH_IF_FALSE, /**< branch if false */
049 VM_OC_BRANCH_IF_LOGICAL_TRUE, /**< branch if logical true */
050 VM_OC_BRANCH_IF_LOGICAL_FALSE, /**< branch if logical false */
051 VM_OC_PLUS, /**< unary plus */
052 VM_OC_MINUS, /**< unary minus */
053 VM_OC_NOT, /**< not */
054 VM_OC_BIT_NOT, /**< bitwise not */
055 VM_OC_VOID, /**< void */
056 VM_OC_TYPEOF_IDENT, /**< typeof identifier */
057 VM_OC_TYPEOF, /**< typeof */
058 VM_OC_ADD, /**< binary add */
059 VM_OC_SUB, /**< binary sub */
060 VM_OC_MUL, /**< mul */
061 VM_OC_DIV, /**< div */
062 VM_OC_MOD, /**< mod */
063 VM_OC_EQUAL, /**< equal */
064 VM_OC_NOT_EQUAL, /**< not equal */
065 VM_OC_STRICT_EQUAL, /**< strict equal */
066 VM_OC_STRICT_NOT_EQUAL, /**< strict not equal */
067 VM_OC_LESS, /**< less */
068 VM_OC_GREATER, /**< greater */
069 VM_OC_LESS_EQUAL, /**< less equal */
070 VM_OC_GREATER_EQUAL, /**< greater equal */
071 VM_OC_IN, /**< in */
072 VM_OC_INSTANCEOF, /**< instanceof */
073 VM_OC_BIT_OR, /**< bitwise or */
074 VM_OC_BIT_XOR, /**< bitwise xor */
075 VM_OC_BIT_AND, /**< bitwise and */
076 VM_OC_LEFT_SHIFT, /**< left shift */
077 VM_OC_RIGHT_SHIFT, /**< right shift */
078 VM_OC_UNS_RIGHT_SHIFT, /**< unsigned right shift */
079 VM_OC_WITH, /**< with */
080 VM_OC_FOR_IN_CREATE_CONTEXT, /**< for in create context */
081 VM_OC_FOR_IN_GET_NEXT, /**< get next */
082 VM_OC_FOR_IN_HAS_NEXT, /**< has next */
083 VM_OC_TRY, /**< try */
084 VM_OC_CATCH, /**< catch */
085 VM_OC_FINALLY, /**< finally */
086 VM_OC_CONTEXT_END, /**< context end */
087 VM_OC_JUMP_AND_EXIT_CONTEXT, /**< jump and exit context */
088 VM_OC_CLASS_HERITAGE, /**< create a super class context */
089 VM_OC_CLASS_INHERITANCE, /**< inherit properties from the 'super' class */
090 VM_OC_PUSH_CLASS_CONSTRUCTOR, /**< push class constructor */
091 VM_OC_SET_CLASS_CONSTRUCTOR, /**< set class constructor to the given function literal */
092 VM_OC_PUSH_IMPL_CONSTRUCTOR, /**< create implicit class constructor */
093 VM_OC_CLASS_EXPR_CONTEXT_END, /**< class expression heritage context end */
094 VM_OC_CLASS_EVAL, /**< eval inside a class */
095 VM_OC_SUPER_CALL, /**< call the 'super' constructor */
096 VM_OC_SUPER_PROP_REFERENCE, /**< resolve super property reference */
097 VM_OC_PUSH_SUPER, /**< push resolvable super reference */
098 VM_OC_PUSH_CONSTRUCTOR_SUPER, /**< push 'super' inside a class constructor */
099 VM_OC_PUSH_CONSTRUCTOR_THIS, /**< push 'this' inside a class constructor */
100 VM_OC_CONSTRUCTOR_RET, /**< explicit return from a class constructor */
101 VM_OC_BREAKPOINT_ENABLED, /**< enabled breakpoint for debugger */
102 VM_OC_BREAKPOINT_DISABLED, /**< disabled breakpoint for debugger */
103 VM_OC_NONE, /**< a special opcode for unsupported byte codes */