Implementing var_decl opcode.

This commit is contained in:
Ruben Ayrapetyan
2014-07-17 22:02:07 +04:00
parent 383853c116
commit f7abe7190d
6 changed files with 65 additions and 15 deletions
+18 -6
View File
@@ -242,6 +242,22 @@ ecma_MakeThrowValue( ecma_Object_t *exception_p) /**< an object */
ECMA_TARGET_ID_RESERVED);
} /* ecma_MakeThrowValue */
/**
* Check if the completion value is specified normal simple value.
*
* @return true - if the completion type is normal and
* value contains specified simple ecma-value,
* false - otherwise.
*/
bool
ecma_is_completion_value_normal_simple_value(ecma_CompletionValue_t value, /**< completion value */
ecma_SimpleValue_t simple_value) /**< simple value to check for equality with */
{
return ( value.type == ECMA_COMPLETION_TYPE_NORMAL
&& value.value.m_ValueType == ECMA_TYPE_SIMPLE
&& value.value.m_Value == simple_value );
} /* ecma_is_completion_value_normal_simple_value */
/**
* Check if the completion value is normal true.
*
@@ -252,9 +268,7 @@ ecma_MakeThrowValue( ecma_Object_t *exception_p) /**< an object */
bool
ecma_IsCompletionValueNormalTrue( ecma_CompletionValue_t value) /**< completion value */
{
return ( value.type == ECMA_COMPLETION_TYPE_NORMAL
&& value.value.m_ValueType == ECMA_TYPE_SIMPLE
&& value.value.m_Value == ECMA_SIMPLE_VALUE_TRUE );
return ecma_is_completion_value_normal_simple_value( value, ECMA_SIMPLE_VALUE_TRUE);
} /* ecma_IsCompletionValueNormalTrue */
/**
@@ -267,9 +281,7 @@ ecma_IsCompletionValueNormalTrue( ecma_CompletionValue_t value) /**< completion
bool
ecma_IsCompletionValueNormalFalse( ecma_CompletionValue_t value) /**< completion value */
{
return ( value.type == ECMA_COMPLETION_TYPE_NORMAL
&& value.value.m_ValueType == ECMA_TYPE_SIMPLE
&& value.value.m_Value == ECMA_SIMPLE_VALUE_FALSE );
return ecma_is_completion_value_normal_simple_value( value, ECMA_SIMPLE_VALUE_FALSE);
} /* ecma_IsCompletionValueNormalFalse */
/**
+1
View File
@@ -55,6 +55,7 @@ extern void ecma_FreeValue( const ecma_Value_t value);
extern ecma_CompletionValue_t ecma_MakeCompletionValue( ecma_CompletionType_t type, ecma_Value_t value, uint8_t target);
extern ecma_CompletionValue_t ecma_MakeThrowValue( ecma_Object_t *exception_p);
extern bool ecma_is_completion_value_normal_simple_value( ecma_CompletionValue_t value, ecma_SimpleValue_t simple_value);
extern bool ecma_IsCompletionValueNormalFalse( ecma_CompletionValue_t value);
extern bool ecma_IsCompletionValueNormalTrue( ecma_CompletionValue_t value);