Reduce the memory consumption of function objects. (#1954)

Several properties of strict and bound functions are moved to
lazy property instantiation. The memory consumption of bound
functions are also reduced when only a this is present.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2017-08-30 14:17:35 +02:00
committed by Dániel Bátyai
parent 82a94d0f88
commit e897858c64
10 changed files with 275 additions and 232 deletions
@@ -30,8 +30,7 @@ bool ecma_op_is_callable (ecma_value_t value);
bool ecma_is_constructor (ecma_value_t value);
ecma_object_t *
ecma_op_create_function_object (ecma_object_t *scope_p, bool is_decl_in_strict_mode,
const ecma_compiled_code_t *bytecode_data_p);
ecma_op_create_function_object (ecma_object_t *scope_p, const ecma_compiled_code_t *bytecode_data_p);
void
ecma_op_function_list_lazy_property_names (bool separate_enumerable,
@@ -39,7 +38,7 @@ ecma_op_function_list_lazy_property_names (bool separate_enumerable,
ecma_collection_header_t *non_enum_collection_p);
ecma_property_t *
ecma_op_function_try_lazy_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p);
ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p);
ecma_object_t *
ecma_op_create_external_function_object (ecma_external_handler_t handler_cb);
@@ -55,6 +54,9 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, const ecma_value_t *argum
ecma_value_t
ecma_op_function_has_instance (ecma_object_t *func_obj_p, ecma_value_t value);
ecma_property_t *
ecma_op_bound_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p);
/**
* @}
* @}