Evaluation of expressions passed in arguments lists just before corresponding 'varg' opcodes.

This commit is contained in:
Ruben Ayrapetyan
2014-08-26 21:39:54 +04:00
parent 6f58335f23
commit 6cfcedb053
4 changed files with 142 additions and 84 deletions
+4 -2
View File
@@ -104,8 +104,10 @@ typedef enum
ECMA_COMPLETION_TYPE_BREAK, /**< block completed with break */
ECMA_COMPLETION_TYPE_CONTINUE, /**< block completed with continue */
ECMA_COMPLETION_TYPE_THROW, /**< block completed with throw */
ECMA_COMPLETION_TYPE_EXIT /**< implementation-defined completion type
for finishing script execution */
ECMA_COMPLETION_TYPE_EXIT, /**< implementation-defined completion type
for finishing script execution */
ECMA_COMPLETION_TYPE_VARG /**< implementation-defined completion type
for varg (argument value specifier opcode) */
} ecma_completion_type_t;
/**
+1
View File
@@ -370,6 +370,7 @@ ecma_free_completion_value (ecma_completion_value_t completion_value) /**< compl
case ECMA_COMPLETION_TYPE_NORMAL:
case ECMA_COMPLETION_TYPE_THROW:
case ECMA_COMPLETION_TYPE_RETURN:
case ECMA_COMPLETION_TYPE_VARG:
{
ecma_free_value (completion_value.value, true);
break;