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:
Zoltan Herczeg
2016-07-06 00:00:03 -07:00
parent fb9b4dd807
commit 41337dbd59
5 changed files with 112 additions and 139 deletions
+1 -19
View File
@@ -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);
/**
* @}