|
245 | 245 | CBC_FORWARD_BRANCH (CBC_BRANCH_IF_STRICT_EQUAL, -1, \
|
246 | 246 | VM_OC_BRANCH_IF_STRICT_EQUAL) \
|
247 | 247 | \
|
248 |
| - /* Basic opcodes. */ \ |
| 248 | + /* Basic opcodes. Note: These 4 opcodes must me in this order */ \ |
249 | 249 | CBC_OPCODE (CBC_PUSH_LITERAL, CBC_HAS_LITERAL_ARG, 1, \
|
250 | 250 | VM_OC_PUSH | VM_OC_GET_LITERAL) \
|
251 | 251 | CBC_OPCODE (CBC_PUSH_TWO_LITERALS, CBC_HAS_LITERAL_ARG | CBC_HAS_LITERAL_ARG2, 2, \
|
252 | 252 | VM_OC_PUSH_TWO | VM_OC_GET_LITERAL_LITERAL) \
|
| 253 | + CBC_OPCODE (CBC_PUSH_THIS_LITERAL, CBC_HAS_LITERAL_ARG, 2, \ |
| 254 | + VM_OC_PUSH_TWO | VM_OC_GET_THIS_LITERAL) \ |
253 | 255 | CBC_OPCODE (CBC_PUSH_THREE_LITERALS, CBC_HAS_LITERAL_ARG2, 3, \
|
254 | 256 | VM_OC_PUSH_THREE | VM_OC_GET_LITERAL_LITERAL) \
|
255 | 257 | CBC_OPCODE (CBC_PUSH_UNDEFINED, CBC_NO_FLAG, 1, \
|
|
262 | 264 | VM_OC_PUSH_NULL | VM_OC_PUT_STACK) \
|
263 | 265 | CBC_OPCODE (CBC_PUSH_THIS, CBC_NO_FLAG, 1, \
|
264 | 266 | VM_OC_PUSH_THIS | VM_OC_PUT_STACK) \
|
265 |
| - CBC_OPCODE (CBC_PUSH_THIS_LITERAL, CBC_HAS_LITERAL_ARG, 2, \ |
266 |
| - VM_OC_PUSH_TWO | VM_OC_GET_THIS_LITERAL) \ |
267 | 267 | CBC_OPCODE (CBC_PUSH_NUMBER_0, CBC_NO_FLAG, 1, \
|
268 | 268 | VM_OC_PUSH_0 | VM_OC_PUT_STACK) \
|
269 | 269 | CBC_OPCODE (CBC_PUSH_NUMBER_POS_BYTE, CBC_HAS_BYTE_ARG, 1, \
|
270 | 270 | VM_OC_PUSH_POS_BYTE | VM_OC_PUT_STACK) \
|
271 | 271 | CBC_OPCODE (CBC_PUSH_NUMBER_NEG_BYTE, CBC_HAS_BYTE_ARG, 1, \
|
272 | 272 | VM_OC_PUSH_NEG_BYTE | VM_OC_PUT_STACK) \
|
| 273 | + /* Note: These 4 opcodes must me in this order */ \ |
273 | 274 | CBC_OPCODE (CBC_PUSH_PROP, CBC_NO_FLAG, -1, \
|
274 | 275 | VM_OC_PROP_GET | VM_OC_GET_STACK_STACK | VM_OC_PUT_STACK) \
|
275 | 276 | CBC_OPCODE (CBC_PUSH_PROP_LITERAL, CBC_HAS_LITERAL_ARG, 0, \
|
|
280 | 281 | VM_OC_PROP_GET | VM_OC_GET_THIS_LITERAL | VM_OC_PUT_STACK) \
|
281 | 282 | CBC_OPCODE (CBC_PUSH_IDENT_REFERENCE, CBC_HAS_LITERAL_ARG, 3, \
|
282 | 283 | VM_OC_IDENT_REFERENCE | VM_OC_PUT_STACK) \
|
| 284 | + /* Note: These 4 opcodes must me in this order */ \ |
283 | 285 | CBC_OPCODE (CBC_PUSH_PROP_REFERENCE, CBC_NO_FLAG, 1, \
|
284 | 286 | VM_OC_PROP_REFERENCE | VM_OC_PUT_STACK) \
|
285 | 287 | CBC_OPCODE (CBC_PUSH_PROP_LITERAL_REFERENCE, CBC_HAS_LITERAL_ARG, 2, \
|
|
0 commit comments