mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Introducing ecma_MakeThrowValue constructor for throw completion values.
This commit is contained in:
parent
cdde0900e3
commit
56f731a3f2
@ -114,6 +114,23 @@ ecma_MakeCompletionValue(ecma_CompletionType_t type, /**< type */
|
||||
return (ecma_CompletionValue_t) { .type = type, .value = value, .target = target };
|
||||
} /* ecma_MakeCompletionValue */
|
||||
|
||||
/**
|
||||
* Throw completion value constructor.
|
||||
*/
|
||||
ecma_CompletionValue_t
|
||||
ecma_MakeThrowValue( ecma_Object_t *exception_p) /**< an object */
|
||||
{
|
||||
JERRY_ASSERT( exception_p != NULL && !exception_p->m_IsLexicalEnvironment );
|
||||
|
||||
ecma_Value_t exception;
|
||||
exception.m_ValueType = ECMA_TYPE_OBJECT;
|
||||
ecma_SetPointer( exception.m_Value, exception_p);
|
||||
|
||||
return ecma_MakeCompletionValue(ECMA_COMPLETION_TYPE_THROW,
|
||||
exception,
|
||||
ECMA_TARGET_ID_RESERVED);
|
||||
} /* ecma_MakeThrowValue */
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
|
||||
@ -41,18 +41,21 @@ extern void* ecma_DecompressPointer(uintptr_t compressedPointer);
|
||||
#define ecma_SetPointer( field, nonCompressedPointer) \
|
||||
(field) = ecma_CompressPointer( nonCompressedPointer) & ( ( 1u << ECMA_POINTER_FIELD_WIDTH ) - 1)
|
||||
|
||||
extern ecma_Value_t ecma_MakeSimpleValue( ecma_SimpleValue_t value);
|
||||
extern ecma_Value_t ecma_MakeObjectValue( ecma_Object_t* object_p);
|
||||
extern ecma_CompletionValue_t ecma_MakeCompletionValue( ecma_CompletionType_t type, ecma_Value_t value, uint8_t target);
|
||||
|
||||
/* ecma-helpers-value.c */
|
||||
extern bool ecma_IsUndefinedValue( ecma_Value_t value);
|
||||
extern bool ecma_IsNullValue( ecma_Value_t value);
|
||||
extern bool ecma_IsBooleanValue( ecma_Value_t value);
|
||||
extern bool ecma_IsValueTrue( ecma_Value_t value);
|
||||
|
||||
extern ecma_Value_t ecma_MakeSimpleValue( ecma_SimpleValue_t value);
|
||||
extern ecma_Value_t ecma_MakeObjectValue( ecma_Object_t* object_p);
|
||||
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 ecma_Object_t* ecma_CreateObject( ecma_Object_t *pPrototypeObject, bool isExtensible);
|
||||
extern ecma_Object_t* ecma_CreateLexicalEnvironment( ecma_Object_t *pOuterLexicalEnvironment, ecma_LexicalEnvironmentType_t type);
|
||||
|
||||
/* ecma-helpers.c */
|
||||
extern ecma_Property_t* ecma_CreateInternalProperty(ecma_Object_t *pObject, ecma_InternalPropertyId_t propertyId);
|
||||
extern ecma_Property_t* ecma_FindInternalProperty(ecma_Object_t *pObject, ecma_InternalPropertyId_t propertyId);
|
||||
extern ecma_Property_t* ecma_GetInternalProperty(ecma_Object_t *pObject, ecma_InternalPropertyId_t propertyId);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user