From 6aee69d6df4f56c46f23b9e19d2eba02d9407a4c Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Fri, 12 Dec 2014 16:34:59 +0300 Subject: [PATCH] Fix native_call opcode dumping --- src/libjsparser/opcodes-dumper.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/libjsparser/opcodes-dumper.c b/src/libjsparser/opcodes-dumper.c index 1211565c9..7c6111d1b 100644 --- a/src/libjsparser/opcodes-dumper.c +++ b/src/libjsparser/opcodes-dumper.c @@ -342,6 +342,29 @@ create_op_meta_for_obj (opcode_t (*getop) (idx_t, idx_t), operand *obj) return res; } +static op_meta +create_op_meta_for_native_call (operand res, operand obj) +{ + JERRY_ASSERT (is_native_call (obj)); + op_meta ret; + switch (res.type) + { + case OPERAND_TMP: + { + const opcode_t opcode = getop_native_call (res.data.uid, name_to_native_call_id (obj), INVALID_VALUE); + ret = create_op_meta_000 (opcode); + break; + } + case OPERAND_LITERAL: + { + const opcode_t opcode = getop_native_call (LITERAL_TO_REWRITE, name_to_native_call_id (obj), INVALID_VALUE); + ret = create_op_meta_100 (opcode, res.data.lit_id); + break; + } + } + return ret; +} + static op_meta create_op_meta_for_vlt (varg_list_type vlt, operand *res, operand *obj) { @@ -355,7 +378,7 @@ create_op_meta_for_vlt (varg_list_type vlt, operand *res, operand *obj) JERRY_ASSERT (obj != NULL); if (is_native_call (*obj)) { - ret = create_op_meta_for_res_and_obj (getop_native_call, res, obj); + ret = create_op_meta_for_native_call (*res, *obj); } else {