Small performance optimizations of the interpreter.
Short summary of the changes: - The ecma_reference_t is removed, and its helper functions are deleted. - The delete operation does not depend on ecma_reference_t anymore. - A new resolve function is added which returns the current value of a named binding in the context chain. - The vm_op_set_value does not perform type conversions when its arguments has the appropriate types. JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -26,26 +26,8 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* ECMA-reference (see also: ECMA-262 v5, 8.7).
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
/** base value */
|
||||
ecma_value_t base;
|
||||
|
||||
/** referenced name */
|
||||
__extension__ jmem_cpointer_t referenced_name_cp : ECMA_POINTER_FIELD_WIDTH;
|
||||
|
||||
/** strict reference flag */
|
||||
unsigned int is_strict : 1;
|
||||
} ecma_reference_t;
|
||||
|
||||
extern ecma_object_t *ecma_op_resolve_reference_base (ecma_object_t *, ecma_string_t *);
|
||||
|
||||
extern ecma_reference_t ecma_op_get_identifier_reference (ecma_object_t *, ecma_string_t *, bool);
|
||||
extern ecma_reference_t ecma_make_reference (ecma_value_t, ecma_string_t *, bool);
|
||||
extern void ecma_free_reference (ecma_reference_t);
|
||||
extern ecma_value_t ecma_op_resolve_reference_value (ecma_object_t *, ecma_string_t *, bool);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
||||
Reference in New Issue
Block a user