@@ -325,15 +325,15 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
325325#define VM_OP_3 (opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type, arg3, arg3_type ) \
326326 if (opcode == VM_OP_ ## opcode_name_uppercase) \
327327 { \
328- JERRY_STATIC_ASSERT (((arg1_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 ); \
329- \
330328 /*
331329 * See also:
332330 * The loop below
333331 */ \
334332 \
335333 JERRY_ASSERT ((opcode == VM_OP_ASSIGNMENT && (arg2_type) == VM_OP_ARG_TYPE_TYPE_OF_NEXT) \
336334 || (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 )); \
337337 JERRY_STATIC_ASSERT (((arg3_type) & VM_OP_ARG_TYPE_TYPE_OF_NEXT) == 0 ); \
338338 args_num = 3 ; \
339339 }
@@ -343,7 +343,8 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
343343 for (int arg_index = 0 ; arg_index < args_num; arg_index++)
344344 {
345345 /*
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)
347348 */
348349 if (opcode == VM_OP_ASSIGNMENT
349350 && arg_index == 1
@@ -352,6 +353,15 @@ dumper_try_replace_identifier_name_with_reg (scopes_tree tree, /**< a function s
352353 break ;
353354 }
354355
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+
355365 if (om.lit_id [arg_index].packed_value == lit_cp.packed_value )
356366 {
357367 om.lit_id [arg_index] = NOT_A_LITERAL;
0 commit comments