Skip to content

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 */
Clone this wiki locally