@@ -325,15 +325,15 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
325
325
#define VM_OP_3 (opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type, arg3, arg3_type ) \
326
326
if (opcode == VM_OP_ ## opcode_name_uppercase) \
327
327
{ \
328
- JERRY_STATIC_ASSERT (((arg1_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 ); \
329
- \
330
328
/*
331
329
* See also:
332
330
* The loop below
333
331
*/ \
334
332
\
335
333
JERRY_ASSERT ((opcode == VM_OP_ASSIGNMENT && (arg2_type) == VM_OP_ARG_TYPE_TYPE_OF_NEXT) \
336
334
|| (opcode != VM_OP_ASSIGNMENT && ((arg2_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 )); \
335
+ JERRY_ASSERT ((opcode == VM_OP_META && ((arg1_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) != 0 ) \
336
+ || (opcode != VM_OP_META && ((arg1_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 )); \
337
337
JERRY_STATIC_ASSERT (((arg3_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 ); \
338
338
args_num = 3 ; \
339
339
}
@@ -343,7 +343,8 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
343
343
for (int arg_index = 0 ; arg_index < args_num; arg_index++)
344
344
{
345
345
/*
346
- * This is the only opcode with statically unspecified argument type (checked by assertions above)
346
+ * 'assignment' and 'meta' are the only opcodes with statically unspecified argument type
347
+ * (checked by assertions above)
347
348
*/
348
349
if (opcode == VM_OP_ASSIGNMENT
349
350
&& arg_index == 1
@@ -352,6 +353,15 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
352
353
break ;
353
354
}
354
355
356
+ if (opcode == VM_OP_META
357
+ && (om.op .data .meta .type == OPCODE_META_TYPE_VARG_PROP_DATA
358
+ || om.op .data .meta .type == OPCODE_META_TYPE_VARG_PROP_GETTER
359
+ || om.op .data .meta .type == OPCODE_META_TYPE_VARG_PROP_SETTER)
360
+ && arg_index == 1 )
361
+ {
362
+ continue ;
363
+ }
364
+
355
365
if (om.lit_id [arg_index].packed_value == lit_cp.packed_value )
356
366
{
357
367
om.lit_id [arg_index] = NOT_A_LITERAL;
0 commit comments