Remove argument names in function prototypes, declared in headers; fix '*' alignment in headers.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
Ruben Ayrapetyan
2015-09-08 16:44:16 +03:00
parent 3b0f61ac52
commit b7c93f170d
56 changed files with 535 additions and 826 deletions
+10 -10
View File
@@ -35,7 +35,7 @@ extern ecma_object_t *ecma_alloc_object (void);
/**
* Dealloc memory from an ecma-object
*/
extern void ecma_dealloc_object (ecma_object_t *object_p);
extern void ecma_dealloc_object (ecma_object_t *);
/**
* Allocate memory for ecma-property
@@ -47,7 +47,7 @@ extern ecma_property_t *ecma_alloc_property (void);
/**
* Dealloc memory from an ecma-property
*/
extern void ecma_dealloc_property (ecma_property_t *property_p);
extern void ecma_dealloc_property (ecma_property_t *);
/**
* Allocate memory for ecma-number
@@ -59,7 +59,7 @@ extern ecma_number_t *ecma_alloc_number (void);
/**
* Dealloc memory from an ecma-number
*/
extern void ecma_dealloc_number (ecma_number_t *number_p);
extern void ecma_dealloc_number (ecma_number_t *);
/**
* Allocate memory for header of a collection
@@ -71,19 +71,19 @@ extern ecma_collection_header_t *ecma_alloc_collection_header (void);
/**
* Dealloc memory from the collection's header
*/
extern void ecma_dealloc_collection_header (ecma_collection_header_t *collection_header_p);
extern void ecma_dealloc_collection_header (ecma_collection_header_t *);
/**
* Allocate memory for non-first chunk of a collection
*
* @return pointer to allocated memory
*/
extern ecma_collection_chunk_t* ecma_alloc_collection_chunk (void);
extern ecma_collection_chunk_t *ecma_alloc_collection_chunk (void);
/**
* Dealloc memory from non-first chunk of a collection
*/
extern void ecma_dealloc_collection_chunk (ecma_collection_chunk_t *non_first_chunk_p);
extern void ecma_dealloc_collection_chunk (ecma_collection_chunk_t *);
/**
* Allocate memory for ecma-string descriptor
@@ -95,7 +95,7 @@ extern ecma_string_t *ecma_alloc_string (void);
/**
* Dealloc memory from ecma-string descriptor
*/
extern void ecma_dealloc_string (ecma_string_t *string_p);
extern void ecma_dealloc_string (ecma_string_t *);
/**
* Allocate memory for label descriptor
@@ -107,7 +107,7 @@ extern ecma_label_descriptor_t *ecma_alloc_label_descriptor (void);
/**
* Dealloc memory from label descriptor
*/
extern void ecma_dealloc_label_descriptor (ecma_label_descriptor_t *label_desc_p);
extern void ecma_dealloc_label_descriptor (ecma_label_descriptor_t *);
/**
* Allocate memory for getter-setter pointer pair
@@ -119,7 +119,7 @@ extern ecma_getter_setter_pointers_t *ecma_alloc_getter_setter_pointers (void);
/**
* Dealloc memory from getter-setter pointer pair
*/
extern void ecma_dealloc_getter_setter_pointers (ecma_getter_setter_pointers_t *pointer_pair_p);
extern void ecma_dealloc_getter_setter_pointers (ecma_getter_setter_pointers_t *);
/**
* Allocate memory for external pointer
@@ -131,7 +131,7 @@ extern ecma_external_pointer_t *ecma_alloc_external_pointer (void);
/**
* Dealloc memory from external pointer
*/
extern void ecma_dealloc_external_pointer (ecma_external_pointer_t *external_pointer_p);
extern void ecma_dealloc_external_pointer (ecma_external_pointer_t *);
#endif /* JERRY_ECMA_ALLOC_H */
+4 -4
View File
@@ -27,11 +27,11 @@
#include "mem-allocator.h"
extern void ecma_gc_init (void);
extern void ecma_init_gc_info (ecma_object_t *object_p);
extern void ecma_ref_object (ecma_object_t *object_p);
extern void ecma_deref_object (ecma_object_t *object_p);
extern void ecma_init_gc_info (ecma_object_t *);
extern void ecma_ref_object (ecma_object_t *);
extern void ecma_deref_object (ecma_object_t *);
extern void ecma_gc_run (void);
extern void ecma_try_to_give_back_some_memory (mem_try_give_memory_back_severity_t severity);
extern void ecma_try_to_give_back_some_memory (mem_try_give_memory_back_severity_t);
#endif /* !ECMA_GC_H */
+2 -2
View File
@@ -559,10 +559,10 @@ typedef struct
ecma_value_t value;
/** [[Get]] */
ecma_object_t* get_p;
ecma_object_t *get_p;
/** [[Set]] */
ecma_object_t* set_p;
ecma_object_t *set_p;
/** [[Writable]] */
bool is_writable;
+157 -211
View File
@@ -53,156 +53,129 @@
#define ECMA_SET_POINTER(field, non_compressed_pointer) MEM_CP_SET_POINTER (field, non_compressed_pointer)
/* ecma-helpers-value.cpp */
extern bool ecma_is_value_empty (ecma_value_t value);
extern bool ecma_is_value_undefined (ecma_value_t value);
extern bool ecma_is_value_null (ecma_value_t value);
extern bool ecma_is_value_boolean (ecma_value_t value);
extern bool ecma_is_value_true (ecma_value_t value);
extern bool ecma_is_value_array_hole (ecma_value_t value);
extern bool ecma_is_value_empty (ecma_value_t);
extern bool ecma_is_value_undefined (ecma_value_t);
extern bool ecma_is_value_null (ecma_value_t);
extern bool ecma_is_value_boolean (ecma_value_t);
extern bool ecma_is_value_true (ecma_value_t);
extern bool ecma_is_value_array_hole (ecma_value_t);
extern bool ecma_is_value_number (ecma_value_t value);
extern bool ecma_is_value_string (ecma_value_t value);
extern bool ecma_is_value_object (ecma_value_t value);
extern bool ecma_is_value_number (ecma_value_t);
extern bool ecma_is_value_string (ecma_value_t);
extern bool ecma_is_value_object (ecma_value_t);
extern void ecma_check_value_type_is_spec_defined (ecma_value_t value);
extern void ecma_check_value_type_is_spec_defined (ecma_value_t);
extern ecma_value_t ecma_make_simple_value (const ecma_simple_value_t value);
extern ecma_value_t ecma_make_number_value (const ecma_number_t* num_p);
extern ecma_value_t ecma_make_string_value (const ecma_string_t* ecma_string_p);
extern ecma_value_t ecma_make_object_value (const ecma_object_t* object_p);
extern ecma_number_t* __attr_pure___ ecma_get_number_from_value (ecma_value_t value);
extern ecma_string_t* __attr_pure___ ecma_get_string_from_value (ecma_value_t value);
extern ecma_object_t* __attr_pure___ ecma_get_object_from_value (ecma_value_t value);
extern ecma_value_t ecma_copy_value (ecma_value_t value, bool do_ref_if_object);
extern void ecma_free_value (ecma_value_t value, bool do_deref_if_object);
extern ecma_value_t ecma_make_number_value (const ecma_number_t *);
extern ecma_value_t ecma_make_string_value (const ecma_string_t *);
extern ecma_value_t ecma_make_object_value (const ecma_object_t *);
extern ecma_number_t *ecma_get_number_from_value (ecma_value_t) __attr_pure___;
extern ecma_string_t *ecma_get_string_from_value (ecma_value_t) __attr_pure___;
extern ecma_object_t *ecma_get_object_from_value (ecma_value_t) __attr_pure___;
extern ecma_value_t ecma_copy_value (ecma_value_t, bool);
extern void ecma_free_value (ecma_value_t, bool);
extern ecma_completion_value_t ecma_make_completion_value (ecma_completion_type_t type,
ecma_value_t value);
extern ecma_completion_value_t ecma_make_simple_completion_value (ecma_simple_value_t simple_value);
extern ecma_completion_value_t ecma_make_normal_completion_value (ecma_value_t value);
extern ecma_completion_value_t ecma_make_throw_completion_value (ecma_value_t value);
extern ecma_completion_value_t ecma_make_throw_obj_completion_value (ecma_object_t *exception_p);
extern ecma_completion_value_t ecma_make_completion_value (ecma_completion_type_t, ecma_value_t);
extern ecma_completion_value_t ecma_make_simple_completion_value (ecma_simple_value_t);
extern ecma_completion_value_t ecma_make_normal_completion_value (ecma_value_t);
extern ecma_completion_value_t ecma_make_throw_completion_value (ecma_value_t);
extern ecma_completion_value_t ecma_make_throw_obj_completion_value (ecma_object_t *);
extern ecma_completion_value_t ecma_make_empty_completion_value (void);
extern ecma_completion_value_t ecma_make_return_completion_value (ecma_value_t value);
extern ecma_completion_value_t ecma_make_return_completion_value (ecma_value_t);
extern ecma_completion_value_t ecma_make_meta_completion_value (void);
extern ecma_completion_value_t ecma_make_jump_completion_value (vm_instr_counter_t target);
extern ecma_value_t ecma_get_completion_value_value (ecma_completion_value_t completion_value);
extern ecma_number_t* __attr_const___
ecma_get_number_from_completion_value (ecma_completion_value_t completion_value);
extern ecma_string_t* __attr_const___
ecma_get_string_from_completion_value (ecma_completion_value_t completion_value);
extern ecma_object_t* __attr_const___
ecma_get_object_from_completion_value (ecma_completion_value_t completion_value);
extern vm_instr_counter_t
ecma_get_jump_target_from_completion_value (ecma_completion_value_t completion_value);
extern ecma_completion_value_t ecma_copy_completion_value (ecma_completion_value_t value);
extern void ecma_free_completion_value (ecma_completion_value_t completion_value);
extern ecma_completion_value_t ecma_make_jump_completion_value (vm_instr_counter_t);
extern ecma_value_t ecma_get_completion_value_value (ecma_completion_value_t);
extern ecma_number_t *ecma_get_number_from_completion_value (ecma_completion_value_t) __attr_const___;
extern ecma_string_t *ecma_get_string_from_completion_value (ecma_completion_value_t) __attr_const___;
extern ecma_object_t *ecma_get_object_from_completion_value (ecma_completion_value_t) __attr_const___;
extern vm_instr_counter_t ecma_get_jump_target_from_completion_value (ecma_completion_value_t);
extern ecma_completion_value_t ecma_copy_completion_value (ecma_completion_value_t);
extern void ecma_free_completion_value (ecma_completion_value_t);
extern bool ecma_is_completion_value_normal (ecma_completion_value_t value);
extern bool ecma_is_completion_value_throw (ecma_completion_value_t value);
extern bool ecma_is_completion_value_return (ecma_completion_value_t value);
extern bool ecma_is_completion_value_meta (ecma_completion_value_t value);
extern bool ecma_is_completion_value_jump (ecma_completion_value_t value);
extern bool ecma_is_completion_value_normal_simple_value (ecma_completion_value_t value,
ecma_simple_value_t simple_value);
extern bool ecma_is_completion_value_normal_true (ecma_completion_value_t value);
extern bool ecma_is_completion_value_normal_false (ecma_completion_value_t value);
extern bool ecma_is_completion_value_empty (ecma_completion_value_t value);
extern bool ecma_is_completion_value_normal (ecma_completion_value_t);
extern bool ecma_is_completion_value_throw (ecma_completion_value_t);
extern bool ecma_is_completion_value_return (ecma_completion_value_t);
extern bool ecma_is_completion_value_meta (ecma_completion_value_t);
extern bool ecma_is_completion_value_jump (ecma_completion_value_t);
extern bool ecma_is_completion_value_normal_simple_value (ecma_completion_value_t, ecma_simple_value_t);
extern bool ecma_is_completion_value_normal_true (ecma_completion_value_t);
extern bool ecma_is_completion_value_normal_false (ecma_completion_value_t);
extern bool ecma_is_completion_value_empty (ecma_completion_value_t);
/* ecma-helpers-string.c */
extern ecma_string_t* ecma_new_ecma_string_from_utf8 (const lit_utf8_byte_t *, lit_utf8_size_t);
extern ecma_string_t* ecma_new_ecma_string_from_code_unit (ecma_char_t);
extern ecma_string_t* ecma_new_ecma_string_from_uint32 (uint32_t uint_number);
extern ecma_string_t* ecma_new_ecma_string_from_number (ecma_number_t number);
extern void ecma_new_ecma_string_on_stack_from_lit_cp (ecma_string_t *string_p,
lit_cpointer_t lit_index);
extern ecma_string_t *ecma_new_ecma_string_from_lit_cp (lit_cpointer_t lit_cp);
extern void ecma_new_ecma_string_on_stack_from_magic_string_id (ecma_string_t *string_p,
lit_magic_string_id_t id);
extern ecma_string_t* ecma_new_ecma_string_from_magic_string_id (lit_magic_string_id_t id);
extern ecma_string_t* ecma_new_ecma_string_from_magic_string_ex_id (lit_magic_string_ex_id_t id);
extern ecma_string_t* ecma_concat_ecma_strings (ecma_string_t *string1_p, ecma_string_t *string2_p);
extern ecma_string_t* ecma_copy_or_ref_ecma_string (ecma_string_t *string_desc_p);
extern void ecma_deref_ecma_string (ecma_string_t *string_p);
extern void ecma_check_that_ecma_string_need_not_be_freed (const ecma_string_t *string_p);
extern ecma_number_t ecma_string_to_number (const ecma_string_t *str_p);
extern bool ecma_string_get_array_index (const ecma_string_t *str_p, uint32_t *index);
extern ecma_string_t *ecma_new_ecma_string_from_utf8 (const lit_utf8_byte_t *, lit_utf8_size_t);
extern ecma_string_t *ecma_new_ecma_string_from_code_unit (ecma_char_t);
extern ecma_string_t *ecma_new_ecma_string_from_uint32 (uint32_t);
extern ecma_string_t *ecma_new_ecma_string_from_number (ecma_number_t);
extern void ecma_new_ecma_string_on_stack_from_lit_cp (ecma_string_t *, lit_cpointer_t);
extern ecma_string_t *ecma_new_ecma_string_from_lit_cp (lit_cpointer_t);
extern void ecma_new_ecma_string_on_stack_from_magic_string_id (ecma_string_t *, lit_magic_string_id_t);
extern ecma_string_t *ecma_new_ecma_string_from_magic_string_id (lit_magic_string_id_t);
extern ecma_string_t *ecma_new_ecma_string_from_magic_string_ex_id (lit_magic_string_ex_id_t);
extern ecma_string_t *ecma_concat_ecma_strings (ecma_string_t *, ecma_string_t *);
extern ecma_string_t *ecma_copy_or_ref_ecma_string (ecma_string_t *);
extern void ecma_deref_ecma_string (ecma_string_t *);
extern void ecma_check_that_ecma_string_need_not_be_freed (const ecma_string_t *);
extern ecma_number_t ecma_string_to_number (const ecma_string_t *);
extern bool ecma_string_get_array_index (const ecma_string_t *, uint32_t *);
extern ssize_t __attr_return_value_should_be_checked___
ecma_string_to_utf8_string (const ecma_string_t *string_desc_p,
lit_utf8_byte_t *buffer_p,
ssize_t buffer_size);
ecma_string_to_utf8_string (const ecma_string_t *, lit_utf8_byte_t *, ssize_t);
extern bool ecma_compare_ecma_strings_equal_hashes (const ecma_string_t *string1_p,
const ecma_string_t *string2_p);
extern bool ecma_compare_ecma_strings (const ecma_string_t *string1_p,
const ecma_string_t *string2_p);
extern bool ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p,
const ecma_string_t *string2_p);
extern ecma_length_t ecma_string_get_length (const ecma_string_t *string_p);
extern lit_utf8_size_t ecma_string_get_size (const ecma_string_t *string_p);
extern ecma_char_t ecma_string_get_char_at_pos (const ecma_string_t *string_p, ecma_length_t index);
extern lit_utf8_byte_t ecma_string_get_byte_at_pos (const ecma_string_t *string_p, lit_utf8_size_t index);
extern bool ecma_compare_ecma_strings_equal_hashes (const ecma_string_t *, const ecma_string_t *);
extern bool ecma_compare_ecma_strings (const ecma_string_t *, const ecma_string_t *);
extern bool ecma_compare_ecma_strings_relational (const ecma_string_t *, const ecma_string_t *);
extern ecma_length_t ecma_string_get_length (const ecma_string_t *);
extern lit_utf8_size_t ecma_string_get_size (const ecma_string_t *);
extern ecma_char_t ecma_string_get_char_at_pos (const ecma_string_t *, ecma_length_t);
extern lit_utf8_byte_t ecma_string_get_byte_at_pos (const ecma_string_t *, lit_utf8_size_t);
extern ecma_string_t* ecma_get_magic_string (lit_magic_string_id_t id);
extern ecma_string_t* ecma_get_magic_string_ex (lit_magic_string_ex_id_t id);
extern bool ecma_is_string_magic (const ecma_string_t *string_p, lit_magic_string_id_t *out_id_p);
extern bool ecma_is_ex_string_magic (const ecma_string_t *string_p, lit_magic_string_ex_id_t *out_id_p);
extern ecma_string_t *ecma_get_magic_string (lit_magic_string_id_t);
extern ecma_string_t *ecma_get_magic_string_ex (lit_magic_string_ex_id_t);
extern bool ecma_is_string_magic (const ecma_string_t *, lit_magic_string_id_t *);
extern bool ecma_is_ex_string_magic (const ecma_string_t *, lit_magic_string_ex_id_t *);
extern lit_string_hash_t ecma_string_hash (const ecma_string_t *string_p);
extern ecma_string_t *ecma_string_substr (const ecma_string_t *string_p, ecma_length_t, ecma_length_t);
extern ecma_string_t *ecma_string_trim (const ecma_string_t *string_p);
extern lit_string_hash_t ecma_string_hash (const ecma_string_t *);
extern ecma_string_t *ecma_string_substr (const ecma_string_t *, ecma_length_t, ecma_length_t);
extern ecma_string_t *ecma_string_trim (const ecma_string_t *);
/* ecma-helpers-number.cpp */
extern const ecma_number_t ecma_number_relative_eps;
extern ecma_number_t ecma_number_make_nan (void);
extern ecma_number_t ecma_number_make_infinity (bool sign);
extern bool ecma_number_is_nan (ecma_number_t num);
extern bool ecma_number_is_negative (ecma_number_t num);
extern bool ecma_number_is_zero (ecma_number_t num);
extern bool ecma_number_is_infinity (ecma_number_t num);
extern ecma_number_t ecma_number_make_infinity (bool);
extern bool ecma_number_is_nan (ecma_number_t);
extern bool ecma_number_is_negative (ecma_number_t);
extern bool ecma_number_is_zero (ecma_number_t);
extern bool ecma_number_is_infinity (ecma_number_t);
extern int32_t
ecma_number_get_fraction_and_exponent (ecma_number_t num,
uint64_t *out_fraction_p,
int32_t *out_exponent_p);
ecma_number_get_fraction_and_exponent (ecma_number_t, uint64_t *, int32_t *);
extern ecma_number_t
ecma_number_make_normal_positive_from_fraction_and_exponent (uint64_t fraction,
int32_t exponent);
ecma_number_make_normal_positive_from_fraction_and_exponent (uint64_t, int32_t);
extern ecma_number_t
ecma_number_make_from_sign_mantissa_and_exponent (bool sign,
uint64_t mantissa,
int32_t exponent);
extern ecma_number_t ecma_number_get_prev (ecma_number_t num);
extern ecma_number_t ecma_number_get_next (ecma_number_t num);
extern ecma_number_t ecma_number_negate (ecma_number_t num);
extern ecma_number_t ecma_number_trunc (ecma_number_t num);
extern ecma_number_t ecma_number_calc_remainder (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_number_add (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_number_substract (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_number_multiply (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_number_divide (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_number_sqrt (ecma_number_t num);
extern ecma_number_t ecma_number_abs (ecma_number_t num);
extern ecma_number_t ecma_number_ln (ecma_number_t num);
extern ecma_number_t ecma_number_exp (ecma_number_t num);
extern void ecma_number_to_decimal (ecma_number_t num,
uint64_t *out_digits_p,
int32_t *out_digits_num_p,
int32_t *out_decimal_exp_p);
ecma_number_make_from_sign_mantissa_and_exponent (bool, uint64_t, int32_t);
extern ecma_number_t ecma_number_get_prev (ecma_number_t);
extern ecma_number_t ecma_number_get_next (ecma_number_t);
extern ecma_number_t ecma_number_negate (ecma_number_t);
extern ecma_number_t ecma_number_trunc (ecma_number_t);
extern ecma_number_t ecma_number_calc_remainder (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_number_add (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_number_substract (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_number_multiply (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_number_divide (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_number_sqrt (ecma_number_t);
extern ecma_number_t ecma_number_abs (ecma_number_t);
extern ecma_number_t ecma_number_ln (ecma_number_t);
extern ecma_number_t ecma_number_exp (ecma_number_t);
extern void ecma_number_to_decimal (ecma_number_t, uint64_t *, int32_t *, int32_t *);
/* ecma-helpers-values-collection.cpp */
extern ecma_collection_header_t *ecma_new_values_collection (const ecma_value_t values_buffer[],
ecma_length_t values_number,
bool do_ref_if_object);
extern void ecma_free_values_collection (ecma_collection_header_t *header_p, bool do_deref_if_object);
extern void ecma_append_to_values_collection (ecma_collection_header_t *header_p,
ecma_value_t v,
bool do_ref_if_object);
extern void ecma_remove_last_value_from_values_collection (ecma_collection_header_t *header_p,
bool do_deref_if_object);
extern ecma_collection_header_t *ecma_new_strings_collection (ecma_string_t *string_ptrs_buffer[],
ecma_length_t strings_number);
extern ecma_collection_header_t *ecma_new_values_collection (const ecma_value_t[], ecma_length_t, bool);
extern void ecma_free_values_collection (ecma_collection_header_t *, bool);
extern void ecma_append_to_values_collection (ecma_collection_header_t *, ecma_value_t, bool);
extern void ecma_remove_last_value_from_values_collection (ecma_collection_header_t *, bool);
extern ecma_collection_header_t *ecma_new_strings_collection (ecma_string_t *[], ecma_length_t);
/**
* Context of ecma-values' collection iterator
@@ -218,111 +191,84 @@ typedef struct
} ecma_collection_iterator_t;
extern void
ecma_collection_iterator_init (ecma_collection_iterator_t *iterator_p,
ecma_collection_header_t *collection_p);
ecma_collection_iterator_init (ecma_collection_iterator_t *, ecma_collection_header_t *);
extern bool
ecma_collection_iterator_next (ecma_collection_iterator_t *iterator_p);
ecma_collection_iterator_next (ecma_collection_iterator_t *);
/* ecma-helpers.cpp */
extern ecma_object_t* ecma_create_object (ecma_object_t *prototype_object_p,
bool is_extensible,
ecma_object_type_t type);
extern ecma_object_t* ecma_create_decl_lex_env (ecma_object_t *outer_lexical_environment_p);
extern ecma_object_t* ecma_create_object_lex_env (ecma_object_t *outer_lexical_environment_p,
ecma_object_t *binding_obj_p,
bool provide_this);
extern bool __attr_pure___ ecma_is_lexical_environment (const ecma_object_t *object_p);
extern bool __attr_pure___ ecma_get_object_extensible (const ecma_object_t *object_p);
extern void ecma_set_object_extensible (ecma_object_t *object_p, bool is_extensible);
extern ecma_object_type_t __attr_pure___ ecma_get_object_type (const ecma_object_t *object_p);
extern void ecma_set_object_type (ecma_object_t *object_p, ecma_object_type_t type);
extern ecma_object_t* __attr_pure___ ecma_get_object_prototype (const ecma_object_t *object_p);
extern bool __attr_pure___ ecma_get_object_is_builtin (const ecma_object_t *object_p);
extern void ecma_set_object_is_builtin (ecma_object_t *object_p,
bool is_builtin);
extern ecma_lexical_environment_type_t __attr_pure___ ecma_get_lex_env_type (const ecma_object_t *object_p);
extern ecma_object_t* __attr_pure___ ecma_get_lex_env_outer_reference (const ecma_object_t *object_p);
extern ecma_property_t* __attr_pure___ ecma_get_property_list (const ecma_object_t *object_p);
extern ecma_object_t* __attr_pure___ ecma_get_lex_env_binding_object (const ecma_object_t *object_p);
extern bool __attr_pure___ ecma_get_lex_env_provide_this (const ecma_object_t *object_p);
extern ecma_object_t *ecma_create_object (ecma_object_t *, bool, ecma_object_type_t);
extern ecma_object_t *ecma_create_decl_lex_env (ecma_object_t *);
extern ecma_object_t *ecma_create_object_lex_env (ecma_object_t *, ecma_object_t *, bool);
extern bool ecma_is_lexical_environment (const ecma_object_t *) __attr_pure___;
extern bool ecma_get_object_extensible (const ecma_object_t *) __attr_pure___;
extern void ecma_set_object_extensible (ecma_object_t *, bool);
extern ecma_object_type_t ecma_get_object_type (const ecma_object_t *) __attr_pure___;
extern void ecma_set_object_type (ecma_object_t *, ecma_object_type_t);
extern ecma_object_t *ecma_get_object_prototype (const ecma_object_t *) __attr_pure___;
extern bool ecma_get_object_is_builtin (const ecma_object_t *) __attr_pure___;
extern void ecma_set_object_is_builtin (ecma_object_t *, bool);
extern ecma_lexical_environment_type_t ecma_get_lex_env_type (const ecma_object_t *) __attr_pure___;
extern ecma_object_t *ecma_get_lex_env_outer_reference (const ecma_object_t *) __attr_pure___;
extern ecma_property_t *ecma_get_property_list (const ecma_object_t *) __attr_pure___;
extern ecma_object_t *ecma_get_lex_env_binding_object (const ecma_object_t *) __attr_pure___;
extern bool ecma_get_lex_env_provide_this (const ecma_object_t *) __attr_pure___;
extern ecma_property_t* ecma_create_internal_property (ecma_object_t *object_p,
ecma_internal_property_id_t property_id);
extern ecma_property_t* ecma_find_internal_property (ecma_object_t *object_p,
ecma_internal_property_id_t property_id);
extern ecma_property_t* ecma_get_internal_property (ecma_object_t *object_p,
ecma_internal_property_id_t property_id);
extern ecma_property_t *ecma_create_internal_property (ecma_object_t *, ecma_internal_property_id_t);
extern ecma_property_t *ecma_find_internal_property (ecma_object_t *, ecma_internal_property_id_t);
extern ecma_property_t *ecma_get_internal_property (ecma_object_t *, ecma_internal_property_id_t);
extern ecma_property_t *ecma_create_named_data_property (ecma_object_t *obj_p,
ecma_string_t *name_p,
bool is_writable,
bool is_enumerable,
bool is_configurable);
extern ecma_property_t *ecma_create_named_accessor_property (ecma_object_t *obj_p,
ecma_string_t *name_p,
ecma_object_t *get_p,
ecma_object_t *set_p,
bool is_enumerable,
bool is_configurable);
extern ecma_property_t *ecma_find_named_property (ecma_object_t *obj_p,
ecma_string_t *name_p);
extern ecma_property_t *ecma_get_named_property (ecma_object_t *obj_p,
ecma_string_t *name_p);
extern ecma_property_t *ecma_get_named_data_property (ecma_object_t *obj_p,
ecma_string_t *name_p);
extern ecma_property_t *
ecma_create_named_data_property (ecma_object_t *, ecma_string_t *, bool, bool, bool);
extern ecma_property_t *
ecma_create_named_accessor_property (ecma_object_t *, ecma_string_t *, ecma_object_t *, ecma_object_t *, bool, bool);
extern ecma_property_t *
ecma_find_named_property (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *
ecma_get_named_property (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *
ecma_get_named_data_property (ecma_object_t *, ecma_string_t *);
extern void ecma_free_property (ecma_object_t *obj_p, ecma_property_t *prop_p);
extern void ecma_free_property (ecma_object_t *, ecma_property_t *);
extern void ecma_delete_property (ecma_object_t *obj_p, ecma_property_t *prop_p);
extern void ecma_delete_property (ecma_object_t *, ecma_property_t *);
extern ecma_value_t ecma_get_named_data_property_value (const ecma_property_t *prop_p);
extern void ecma_set_named_data_property_value (ecma_property_t *prop_p, ecma_value_t value);
extern void ecma_named_data_property_assign_value (ecma_object_t *obj_p,
ecma_property_t *prop_p,
ecma_value_t value);
extern ecma_value_t ecma_get_named_data_property_value (const ecma_property_t *);
extern void ecma_set_named_data_property_value (ecma_property_t *, ecma_value_t);
extern void ecma_named_data_property_assign_value (ecma_object_t *, ecma_property_t *, ecma_value_t);
extern ecma_object_t* ecma_get_named_accessor_property_getter (const ecma_property_t *prop_p);
extern ecma_object_t* ecma_get_named_accessor_property_setter (const ecma_property_t *prop_p);
extern void ecma_set_named_accessor_property_getter (ecma_object_t* object_p,
ecma_property_t *prop_p,
ecma_object_t *getter_p);
extern void ecma_set_named_accessor_property_setter (ecma_object_t* object_p,
ecma_property_t *prop_p,
ecma_object_t *setter_p);
extern bool ecma_is_property_writable (ecma_property_t* prop_p);
extern void ecma_set_property_writable_attr (ecma_property_t* prop_p, bool is_writable);
extern bool ecma_is_property_enumerable (ecma_property_t* prop_p);
extern void ecma_set_property_enumerable_attr (ecma_property_t* prop_p, bool is_enumerable);
extern bool ecma_is_property_configurable (ecma_property_t* prop_p);
extern void ecma_set_property_configurable_attr (ecma_property_t* prop_p, bool is_configurable);
extern ecma_object_t *ecma_get_named_accessor_property_getter (const ecma_property_t *);
extern ecma_object_t *ecma_get_named_accessor_property_setter (const ecma_property_t *);
extern void ecma_set_named_accessor_property_getter (ecma_object_t *, ecma_property_t *, ecma_object_t *);
extern void ecma_set_named_accessor_property_setter (ecma_object_t *, ecma_property_t *, ecma_object_t *);
extern bool ecma_is_property_writable (ecma_property_t *);
extern void ecma_set_property_writable_attr (ecma_property_t *, bool);
extern bool ecma_is_property_enumerable (ecma_property_t *);
extern void ecma_set_property_enumerable_attr (ecma_property_t *, bool);
extern bool ecma_is_property_configurable (ecma_property_t *);
extern void ecma_set_property_configurable_attr (ecma_property_t *, bool);
extern bool ecma_is_property_lcached (ecma_property_t *prop_p);
extern void ecma_set_property_lcached (ecma_property_t *prop_p,
bool is_lcached);
extern bool ecma_is_property_lcached (ecma_property_t *);
extern void ecma_set_property_lcached (ecma_property_t *, bool);
extern ecma_property_descriptor_t ecma_make_empty_property_descriptor (void);
extern void ecma_free_property_descriptor (ecma_property_descriptor_t *prop_desc_p);
extern ecma_property_descriptor_t ecma_get_property_descriptor_from_property (ecma_property_t *prop_p);
extern void ecma_free_property_descriptor (ecma_property_descriptor_t *);
extern ecma_property_descriptor_t ecma_get_property_descriptor_from_property (ecma_property_t *);
/* ecma-helpers-external-pointers.cpp */
extern bool
ecma_create_external_pointer_property (ecma_object_t *obj_p,
ecma_internal_property_id_t id,
ecma_external_pointer_t ptr_value);
ecma_create_external_pointer_property (ecma_object_t *, ecma_internal_property_id_t, ecma_external_pointer_t);
extern bool
ecma_get_external_pointer_value (ecma_object_t *obj_p,
ecma_internal_property_id_t id,
ecma_external_pointer_t *out_pointer_p);
ecma_get_external_pointer_value (ecma_object_t *, ecma_internal_property_id_t, ecma_external_pointer_t *);
extern void
ecma_free_external_pointer_in_property (ecma_property_t *prop_p);
ecma_free_external_pointer_in_property (ecma_property_t *);
/* ecma-helpers-conversion.cpp */
extern ecma_number_t ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, lit_utf8_size_t str_size);
extern ssize_t ecma_uint32_to_utf8_string (uint32_t value, lit_utf8_byte_t *out_buffer_p, ssize_t buffer_size);
extern uint32_t ecma_number_to_uint32 (ecma_number_t value);
extern int32_t ecma_number_to_int32 (ecma_number_t value);
extern ecma_number_t ecma_int32_to_number (int32_t value);
extern ecma_number_t ecma_uint32_to_number (uint32_t value);
extern ecma_number_t ecma_utf8_string_to_number (const lit_utf8_byte_t *, lit_utf8_size_t);
extern ssize_t ecma_uint32_to_utf8_string (uint32_t, lit_utf8_byte_t *, ssize_t);
extern uint32_t ecma_number_to_uint32 (ecma_number_t);
extern int32_t ecma_number_to_int32 (ecma_number_t);
extern ecma_number_t ecma_int32_to_number (int32_t);
extern ecma_number_t ecma_uint32_to_number (uint32_t);
extern lit_utf8_size_t ecma_number_to_utf8_string (ecma_number_t, lit_utf8_byte_t *, ssize_t);
#endif /* !JERRY_ECMA_HELPERS_H */
+3 -3
View File
@@ -25,9 +25,9 @@
extern void ecma_lcache_init (void);
extern void ecma_lcache_invalidate_all (void);
extern void ecma_lcache_insert (ecma_object_t *object_p, ecma_string_t *prop_name_p, ecma_property_t *prop_p);
extern bool ecma_lcache_lookup (ecma_object_t *object_p, const ecma_string_t *prop_name_p, ecma_property_t **prop_p_p);
extern void ecma_lcache_invalidate (ecma_object_t *object_p, ecma_string_t *prop_name_arg_p, ecma_property_t *prop_p);
extern void ecma_lcache_insert (ecma_object_t *, ecma_string_t *, ecma_property_t *);
extern bool ecma_lcache_lookup (ecma_object_t *, const ecma_string_t *, ecma_property_t **);
extern void ecma_lcache_invalidate (ecma_object_t *, ecma_string_t *, ecma_property_t *);
/**
* @}
@@ -26,26 +26,24 @@
* @{
*/
extern ecma_completion_value_t ecma_builtin_helper_object_to_string (const ecma_value_t this_arg);
extern ecma_completion_value_t ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *obj_p, uint32_t index);
extern ecma_completion_value_t ecma_builtin_helper_object_get_properties (ecma_object_t *obj,
bool only_enumerable_properties);
extern ecma_completion_value_t ecma_builtin_helper_array_concat_value (ecma_object_t *obj,
uint32_t *length,
ecma_value_t);
extern uint32_t ecma_builtin_helper_array_index_normalize (ecma_number_t index, uint32_t length);
extern uint32_t ecma_builtin_helper_string_index_normalize (ecma_number_t index, uint32_t length, bool nan_to_zero);
extern ecma_completion_value_t ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t this_arg,
ecma_value_t arg1,
ecma_value_t arg2,
bool firstIndex);
extern ecma_completion_value_t ecma_builtin_helper_def_prop (ecma_object_t *obj_p,
ecma_string_t *index_p,
ecma_value_t value,
bool writable,
bool enumerable,
bool configurable,
bool is_throw);
extern ecma_completion_value_t
ecma_builtin_helper_object_to_string (const ecma_value_t);
extern ecma_completion_value_t
ecma_builtin_helper_get_to_locale_string_at_index (ecma_object_t *, uint32_t);
extern ecma_completion_value_t
ecma_builtin_helper_object_get_properties (ecma_object_t *, bool);
extern ecma_completion_value_t
ecma_builtin_helper_array_concat_value (ecma_object_t *, uint32_t *, ecma_value_t);
extern uint32_t
ecma_builtin_helper_array_index_normalize (ecma_number_t, uint32_t);
extern uint32_t
ecma_builtin_helper_string_index_normalize (ecma_number_t, uint32_t, bool);
extern ecma_completion_value_t
ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t, ecma_value_t,
ecma_value_t, bool);
extern ecma_completion_value_t
ecma_builtin_helper_def_prop (ecma_object_t *, ecma_string_t *, ecma_value_t,
bool, bool, bool, bool);
#ifndef CONFIG_ECMA_COMPACT_PROFILE_DISABLE_DATE_BUILTIN
@@ -84,49 +82,40 @@ typedef enum
} ecma_date_timezone_t;
/* ecma-builtin-helpers-date.cpp */
extern ecma_number_t ecma_date_day (ecma_number_t time);
extern ecma_number_t ecma_date_time_within_day (ecma_number_t time);
extern ecma_number_t ecma_date_days_in_year (ecma_number_t year);
extern ecma_number_t ecma_date_day_from_year (ecma_number_t year);
extern ecma_number_t ecma_date_time_from_year (ecma_number_t year);
extern ecma_number_t ecma_date_year_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_in_leap_year (ecma_number_t time);
extern ecma_number_t ecma_date_day_within_year (ecma_number_t time);
extern ecma_number_t ecma_date_month_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_date_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_week_day (ecma_number_t time);
extern ecma_number_t ecma_date_day (ecma_number_t);
extern ecma_number_t ecma_date_time_within_day (ecma_number_t);
extern ecma_number_t ecma_date_days_in_year (ecma_number_t);
extern ecma_number_t ecma_date_day_from_year (ecma_number_t);
extern ecma_number_t ecma_date_time_from_year (ecma_number_t);
extern ecma_number_t ecma_date_year_from_time (ecma_number_t);
extern ecma_number_t ecma_date_in_leap_year (ecma_number_t);
extern ecma_number_t ecma_date_day_within_year (ecma_number_t);
extern ecma_number_t ecma_date_month_from_time (ecma_number_t);
extern ecma_number_t ecma_date_date_from_time (ecma_number_t);
extern ecma_number_t ecma_date_week_day (ecma_number_t);
extern ecma_number_t ecma_date_local_tza ();
extern ecma_number_t ecma_date_daylight_saving_ta (ecma_number_t time);
extern ecma_number_t ecma_date_local_time (ecma_number_t time);
extern ecma_number_t ecma_date_utc (ecma_number_t time);
extern ecma_number_t ecma_date_hour_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_min_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_sec_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_ms_from_time (ecma_number_t time);
extern ecma_number_t ecma_date_make_time (ecma_number_t hour,
ecma_number_t min,
ecma_number_t sec,
ecma_number_t ms);
extern ecma_number_t ecma_date_make_day (ecma_number_t year,
ecma_number_t month,
ecma_number_t date);
extern ecma_number_t ecma_date_make_date (ecma_number_t day, ecma_number_t time);
extern ecma_number_t ecma_date_time_clip (ecma_number_t time);
extern ecma_number_t ecma_date_timezone_offset (ecma_number_t time);
extern ecma_completion_value_t ecma_date_set_internal_property (ecma_value_t this_arg,
ecma_number_t day,
ecma_number_t time,
ecma_date_timezone_t is_utc);
extern void ecma_date_insert_leading_zeros (ecma_string_t **str_p,
ecma_number_t num,
uint32_t length);
extern ecma_number_t ecma_date_daylight_saving_ta (ecma_number_t);
extern ecma_number_t ecma_date_local_time (ecma_number_t);
extern ecma_number_t ecma_date_utc (ecma_number_t);
extern ecma_number_t ecma_date_hour_from_time (ecma_number_t);
extern ecma_number_t ecma_date_min_from_time (ecma_number_t);
extern ecma_number_t ecma_date_sec_from_time (ecma_number_t);
extern ecma_number_t ecma_date_ms_from_time (ecma_number_t);
extern ecma_number_t ecma_date_make_time (ecma_number_t, ecma_number_t, ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_date_make_day (ecma_number_t, ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_date_make_date (ecma_number_t, ecma_number_t);
extern ecma_number_t ecma_date_time_clip (ecma_number_t);
extern ecma_number_t ecma_date_timezone_offset (ecma_number_t);
extern ecma_completion_value_t ecma_date_set_internal_property (ecma_value_t, ecma_number_t,
ecma_number_t, ecma_date_timezone_t);
extern void ecma_date_insert_leading_zeros (ecma_string_t **, ecma_number_t, uint32_t);
extern ecma_completion_value_t ecma_date_value_to_string (ecma_number_t datetime_num);
extern ecma_completion_value_t ecma_date_value_to_utc_string (ecma_number_t datetime_num);
extern ecma_completion_value_t ecma_date_value_to_iso_string (ecma_number_t datetime_num);
extern ecma_completion_value_t ecma_date_value_to_date_string (ecma_number_t datetime_num);
extern ecma_completion_value_t ecma_date_value_to_time_string (ecma_number_t datetime_num);
extern ecma_completion_value_t ecma_date_get_primitive_value (ecma_value_t this_arg);
extern ecma_completion_value_t ecma_date_value_to_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_utc_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_iso_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_date_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_value_to_time_string (ecma_number_t);
extern ecma_completion_value_t ecma_date_get_primitive_value (ecma_value_t);
#endif /* !CONFIG_ECMA_COMPACT_PROFILE_DISABLE_DATE_BUILTIN */
@@ -153,24 +142,18 @@ typedef struct
ecma_object_t *replacer_function_p;
} ecma_json_stringify_context_t;
extern bool ecma_has_object_value_in_collection (ecma_collection_header_t *collection_p, ecma_value_t object_value);
extern bool ecma_has_string_value_in_collection (ecma_collection_header_t *collection_p, ecma_value_t string_value);
extern bool ecma_has_object_value_in_collection (ecma_collection_header_t *, ecma_value_t);
extern bool ecma_has_string_value_in_collection (ecma_collection_header_t *, ecma_value_t);
extern ecma_string_t *ecma_builtin_helper_json_create_hex_digit_ecma_string (uint8_t value);
extern ecma_string_t *ecma_builtin_helper_json_create_hex_digit_ecma_string (uint8_t);
extern ecma_string_t *
ecma_builtin_helper_json_create_separated_properties (ecma_collection_header_t *partial_p,
ecma_string_t *separator_p);
ecma_builtin_helper_json_create_separated_properties (ecma_collection_header_t *, ecma_string_t *);
extern ecma_completion_value_t
ecma_builtin_helper_json_create_formatted_json (ecma_string_t *left_bracket_p,
ecma_string_t *right_bracket_p,
ecma_string_t *stepback_p,
ecma_collection_header_t *partial_p,
ecma_json_stringify_context_t *context_p);
ecma_builtin_helper_json_create_formatted_json (ecma_string_t *, ecma_string_t *, ecma_string_t *,
ecma_collection_header_t *, ecma_json_stringify_context_t *);
extern ecma_completion_value_t
ecma_builtin_helper_json_create_non_formatted_json (ecma_string_t *left_bracket_p,
ecma_string_t *right_bracket_p,
ecma_collection_header_t *partial_p);
ecma_builtin_helper_json_create_non_formatted_json (ecma_string_t *, ecma_string_t *, ecma_collection_header_t *);
/**
* @}
@@ -97,7 +97,7 @@ SORT_PROPERTY_NAMES_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (void)
* @return pointer property, if one was instantiated,
* NULL - otherwise.
*/
ecma_property_t*
ecma_property_t *
TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (ecma_object_t *obj_p, /**< object */
ecma_string_t *prop_name_p) /**< property's name */
{
@@ -58,14 +58,11 @@
#define ECMA_BUILTIN_ROUTINE_ID_LENGTH_VALUE_WIDTH (8)
/* ecma-builtins.c */
extern ecma_object_t*
ecma_builtin_make_function_object_for_routine (ecma_builtin_id_t builtin_id,
uint16_t routine_id,
uint8_t length_prop_num_value);
extern ecma_object_t *
ecma_builtin_make_function_object_for_routine (ecma_builtin_id_t, uint16_t, uint8_t);
extern int32_t
ecma_builtin_bin_search_for_magic_string_id_in_array (const lit_magic_string_id_t ids[],
ecma_length_t array_length,
lit_magic_string_id_t key);
ecma_builtin_bin_search_for_magic_string_id_in_array (const lit_magic_string_id_t[],
ecma_length_t, lit_magic_string_id_t);
#define BUILTIN(builtin_id, \
object_type, \
@@ -74,19 +71,19 @@ ecma_builtin_bin_search_for_magic_string_id_in_array (const lit_magic_string_id_
is_static, \
lowercase_name) \
extern ecma_completion_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_call (const ecma_value_t *arguments_list_p, \
ecma_length_t arguments_list_len); \
ecma_builtin_ ## lowercase_name ## _dispatch_call (const ecma_value_t *, \
ecma_length_t); \
extern ecma_completion_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_construct (const ecma_value_t *arguments_list_p, \
ecma_length_t arguments_list_len); \
ecma_builtin_ ## lowercase_name ## _dispatch_construct (const ecma_value_t *, \
ecma_length_t); \
extern ecma_completion_value_t \
ecma_builtin_ ## lowercase_name ## _dispatch_routine (uint16_t builtin_routine_id, \
ecma_value_t this_arg_value, \
const ecma_value_t arguments_list[], \
ecma_length_t arguments_number); \
extern ecma_property_t* \
ecma_builtin_ ## lowercase_name ## _try_to_instantiate_property (ecma_object_t *obj_p, \
ecma_string_t *prop_name_p); \
const ecma_value_t [], \
ecma_length_t); \
extern ecma_property_t * \
ecma_builtin_ ## lowercase_name ## _try_to_instantiate_property (ecma_object_t *, \
ecma_string_t *); \
extern void \
ecma_builtin_ ## lowercase_name ## _sort_property_names (void);
#include "ecma-builtins.inc.h"
@@ -39,18 +39,13 @@ extern void ecma_init_builtins (void);
extern void ecma_finalize_builtins (void);
extern ecma_completion_value_t
ecma_builtin_dispatch_call (ecma_object_t *obj_p,
ecma_value_t this_arg,
ecma_collection_header_t *arg_collection_p);
ecma_builtin_dispatch_call (ecma_object_t *, ecma_value_t, ecma_collection_header_t *);
extern ecma_completion_value_t
ecma_builtin_dispatch_construct (ecma_object_t *obj_p,
ecma_collection_header_t *arg_collection_p);
extern ecma_property_t*
ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p,
ecma_string_t *string_p);
ecma_builtin_dispatch_construct (ecma_object_t *, ecma_collection_header_t *);
extern ecma_property_t *
ecma_builtin_try_to_instantiate_property (ecma_object_t *, ecma_string_t *);
extern bool
ecma_builtin_is (ecma_object_t *obj_p,
ecma_builtin_id_t builtin_id);
extern ecma_object_t*
ecma_builtin_get (ecma_builtin_id_t builtin_id);
ecma_builtin_is (ecma_object_t *, ecma_builtin_id_t);
extern ecma_object_t *
ecma_builtin_get (ecma_builtin_id_t);
#endif /* !ECMA_BUILTINS_H */
@@ -26,15 +26,10 @@
*/
extern ecma_completion_value_t
ecma_op_create_array_object (const ecma_value_t *arguments_list_p,
ecma_length_t arguments_list_len,
bool is_treat_single_arg_as_length);
ecma_op_create_array_object (const ecma_value_t *, ecma_length_t, bool);
extern ecma_completion_value_t
ecma_op_array_object_define_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
const ecma_property_descriptor_t* property_desc_p,
bool is_throw);
ecma_op_array_object_define_own_property (ecma_object_t *, ecma_string_t *, const ecma_property_descriptor_t *, bool);
/**
* @}
@@ -25,7 +25,7 @@
* @{
*/
extern ecma_completion_value_t ecma_op_create_boolean_object (ecma_value_t arg);
extern ecma_completion_value_t ecma_op_create_boolean_object (ecma_value_t);
/**
* @}
+3 -7
View File
@@ -26,13 +26,9 @@
* @{
*/
extern ecma_completion_value_t ecma_op_abstract_equality_compare (ecma_value_t x,
ecma_value_t y);
extern bool ecma_op_strict_equality_compare (ecma_value_t x,
ecma_value_t y);
extern ecma_completion_value_t ecma_op_abstract_relational_compare (ecma_value_t x,
ecma_value_t y,
bool left_first);
extern ecma_completion_value_t ecma_op_abstract_equality_compare (ecma_value_t, ecma_value_t);
extern bool ecma_op_strict_equality_compare (ecma_value_t, ecma_value_t);
extern ecma_completion_value_t ecma_op_abstract_relational_compare (ecma_value_t, ecma_value_t, bool);
/**
* @}
+9 -12
View File
@@ -37,19 +37,16 @@ typedef enum
ECMA_PREFERRED_TYPE_STRING /**< String */
} ecma_preferred_type_hint_t;
extern ecma_completion_value_t ecma_op_check_object_coercible (ecma_value_t value);
extern bool ecma_op_same_value (ecma_value_t x,
ecma_value_t y);
extern ecma_completion_value_t ecma_op_to_primitive (ecma_value_t value,
ecma_preferred_type_hint_t preferred_type);
extern ecma_completion_value_t ecma_op_to_boolean (ecma_value_t value);
extern ecma_completion_value_t ecma_op_to_number (ecma_value_t value);
extern ecma_completion_value_t ecma_op_to_string (ecma_value_t value);
extern ecma_completion_value_t ecma_op_to_object (ecma_value_t value);
extern ecma_completion_value_t ecma_op_check_object_coercible (ecma_value_t);
extern bool ecma_op_same_value (ecma_value_t, ecma_value_t);
extern ecma_completion_value_t ecma_op_to_primitive (ecma_value_t, ecma_preferred_type_hint_t);
extern ecma_completion_value_t ecma_op_to_boolean (ecma_value_t);
extern ecma_completion_value_t ecma_op_to_number (ecma_value_t);
extern ecma_completion_value_t ecma_op_to_string (ecma_value_t);
extern ecma_completion_value_t ecma_op_to_object (ecma_value_t);
extern ecma_object_t* ecma_op_from_property_descriptor (const ecma_property_descriptor_t* src_prop_desc_p);
extern ecma_completion_value_t ecma_op_to_property_descriptor (ecma_value_t obj_value,
ecma_property_descriptor_t *out_prop_desc_p);
extern ecma_object_t *ecma_op_from_property_descriptor (const ecma_property_descriptor_t *);
extern ecma_completion_value_t ecma_op_to_property_descriptor (ecma_value_t, ecma_property_descriptor_t *);
/**
* @}
+2 -7
View File
@@ -25,15 +25,10 @@
*/
extern ecma_completion_value_t
ecma_op_eval (ecma_string_t *code_p,
bool is_direct,
bool is_called_from_strict_mode_code);
ecma_op_eval (ecma_string_t *, bool, bool);
extern ecma_completion_value_t
ecma_op_eval_chars_buffer (const jerry_api_char_t *code_p,
size_t code_buffer_size,
bool is_direct,
bool is_called_from_strict_mode_code);
ecma_op_eval_chars_buffer (const jerry_api_char_t *, size_t, bool, bool);
/**
* @}
+10 -12
View File
@@ -44,18 +44,16 @@ typedef enum
ECMA_ERROR_URI /**< URIError */
} ecma_standard_error_t;
extern ecma_object_t *ecma_new_standard_error (ecma_standard_error_t error_type);
extern ecma_object_t *ecma_new_standard_error_with_message (ecma_standard_error_t error_type,
ecma_string_t *message_string_p);
extern ecma_completion_value_t ecma_raise_standard_error (ecma_standard_error_t error_type,
const lit_utf8_byte_t *msg_p);
extern ecma_completion_value_t ecma_raise_common_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_eval_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_range_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_reference_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_syntax_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_type_error (const char *msg_p);
extern ecma_completion_value_t ecma_raise_uri_error (const char *msg_p);
extern ecma_object_t *ecma_new_standard_error (ecma_standard_error_t);
extern ecma_object_t *ecma_new_standard_error_with_message (ecma_standard_error_t, ecma_string_t *);
extern ecma_completion_value_t ecma_raise_standard_error (ecma_standard_error_t, const lit_utf8_byte_t *);
extern ecma_completion_value_t ecma_raise_common_error (const char *);
extern ecma_completion_value_t ecma_raise_eval_error (const char *);
extern ecma_completion_value_t ecma_raise_range_error (const char *);
extern ecma_completion_value_t ecma_raise_reference_error (const char *);
extern ecma_completion_value_t ecma_raise_syntax_error (const char *);
extern ecma_completion_value_t ecma_raise_type_error (const char *);
extern ecma_completion_value_t ecma_raise_uri_error (const char *);
/**
* @}
@@ -26,52 +26,35 @@
* @{
*/
extern bool ecma_op_is_callable (ecma_value_t value);
extern bool ecma_is_constructor (ecma_value_t value);
extern bool ecma_op_is_callable (ecma_value_t);
extern bool ecma_is_constructor (ecma_value_t);
extern ecma_object_t*
ecma_op_create_function_object (ecma_collection_header_t *formal_params_collection_p,
ecma_object_t *scope_p,
bool is_strict,
bool do_instantiate_arguments_object,
const bytecode_data_header_t *bytecode_data_p,
vm_instr_counter_t first_opcode_idx);
extern ecma_object_t*
ecma_op_create_external_function_object (ecma_external_pointer_t code_p);
extern ecma_object_t *
ecma_op_create_function_object (ecma_collection_header_t *, ecma_object_t *,
bool, bool, const bytecode_data_header_t *, vm_instr_counter_t);
extern ecma_object_t *
ecma_op_create_external_function_object (ecma_external_pointer_t);
extern ecma_completion_value_t
ecma_op_function_call (ecma_object_t *func_obj_p,
ecma_value_t this_arg_value,
ecma_collection_header_t *arg_collection_p);
ecma_op_function_call (ecma_object_t *, ecma_value_t, ecma_collection_header_t *);
extern ecma_property_t*
ecma_op_function_object_get_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_property_t *
ecma_op_function_object_get_own_property (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t
ecma_op_function_call_array_args (ecma_object_t *func_obj_p,
ecma_value_t this_arg_value,
const ecma_value_t* arguments_list_p,
ecma_length_t arguments_list_len);
ecma_op_function_call_array_args (ecma_object_t *, ecma_value_t, const ecma_value_t *, ecma_length_t);
extern ecma_completion_value_t
ecma_op_function_construct (ecma_object_t *func_obj_p,
ecma_collection_header_t *arg_collection_p);
ecma_op_function_construct (ecma_object_t *, ecma_collection_header_t *);
extern ecma_completion_value_t
ecma_op_function_has_instance (ecma_object_t *func_obj_p,
ecma_value_t value);
ecma_op_function_has_instance (ecma_object_t *, ecma_value_t);
extern ecma_completion_value_t
ecma_op_function_declaration (ecma_object_t *lex_env_p,
ecma_string_t *function_name_p,
const bytecode_data_header_t *bytecode_data_p,
vm_instr_counter_t function_code_opcode_idx,
ecma_collection_header_t *formal_params_collection_p,
bool is_strict,
bool do_instantiate_arguments_object,
bool is_configurable_bindings);
ecma_op_function_declaration (ecma_object_t *, ecma_string_t *, const bytecode_data_header_t *, vm_instr_counter_t,
ecma_collection_header_t *, bool, bool, bool);
/**
* @}
+15 -33
View File
@@ -36,50 +36,32 @@
extern void ecma_init_environment (void);
extern void ecma_finalize_environment (void);
extern ecma_object_t* ecma_get_global_environment (void);
extern bool ecma_is_lexical_environment_global (ecma_object_t *lex_env_p);
extern ecma_object_t *ecma_get_global_environment (void);
extern bool ecma_is_lexical_environment_global (ecma_object_t *);
/**
* @}
*/
/* ECMA-262 v5, 8.7.1 and 8.7.2 */
extern ecma_completion_value_t ecma_op_get_value_lex_env_base (ecma_object_t *ref_base_lex_env_p,
ecma_string_t *var_name_string_p,
bool is_strict);
extern ecma_completion_value_t ecma_op_get_value_object_base (ecma_reference_t ref);
extern ecma_completion_value_t ecma_op_put_value_lex_env_base (ecma_object_t *ref_base_lex_env_p,
ecma_string_t *var_name_string_p,
bool is_strict,
ecma_value_t value);
extern ecma_completion_value_t ecma_op_put_value_object_base (ecma_reference_t ref,
ecma_value_t value);
extern ecma_completion_value_t ecma_op_get_value_lex_env_base (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t ecma_op_get_value_object_base (ecma_reference_t);
extern ecma_completion_value_t ecma_op_put_value_lex_env_base (ecma_object_t *, ecma_string_t *, bool, ecma_value_t);
extern ecma_completion_value_t ecma_op_put_value_object_base (ecma_reference_t, ecma_value_t);
/* ECMA-262 v5, Table 17. Abstract methods of Environment Records */
extern bool ecma_op_has_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p);
extern ecma_completion_value_t ecma_op_create_mutable_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p,
bool is_deletable);
extern ecma_completion_value_t ecma_op_set_mutable_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p,
ecma_value_t value,
bool is_strict);
extern ecma_completion_value_t ecma_op_get_binding_value (ecma_object_t *lex_env_p,
ecma_string_t *name_p,
bool is_strict);
extern ecma_completion_value_t ecma_op_delete_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p);
extern ecma_completion_value_t ecma_op_implicit_this_value (ecma_object_t *lex_env_p);
extern bool ecma_op_has_binding (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_create_mutable_binding (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t ecma_op_set_mutable_binding (ecma_object_t *, ecma_string_t *, ecma_value_t, bool);
extern ecma_completion_value_t ecma_op_get_binding_value (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t ecma_op_delete_binding (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_implicit_this_value (ecma_object_t *);
/* ECMA-262 v5, Table 18. Additional methods of Declarative Environment Records */
extern void ecma_op_create_immutable_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p);
extern void ecma_op_initialize_immutable_binding (ecma_object_t *lex_env_p,
ecma_string_t *name_p,
ecma_value_t value);
extern void ecma_op_create_immutable_binding (ecma_object_t *, ecma_string_t *);
extern void ecma_op_initialize_immutable_binding (ecma_object_t *, ecma_string_t *, ecma_value_t);
extern ecma_object_t* ecma_op_create_global_environment (ecma_object_t *glob_obj_p);
extern ecma_object_t *ecma_op_create_global_environment (ecma_object_t *);
/**
* @}
@@ -27,7 +27,7 @@
* @{
*/
extern ecma_number_t ecma_op_number_remainder (ecma_number_t left_num, ecma_number_t right_num);
extern ecma_number_t ecma_op_number_remainder (ecma_number_t, ecma_number_t);
/**
* @}
@@ -25,7 +25,7 @@
* @{
*/
extern ecma_completion_value_t ecma_op_create_number_object (ecma_value_t arg);
extern ecma_completion_value_t ecma_op_create_number_object (ecma_value_t);
/**
* @}
@@ -19,24 +19,18 @@
#include "ecma-globals.h"
#include "ecma-helpers.h"
extern ecma_object_t*
ecma_op_create_arguments_object (ecma_object_t *func_obj_p,
ecma_object_t *lex_env_p,
ecma_collection_header_t *formal_params_p,
ecma_collection_header_t *arg_collection_p,
bool is_strict);
extern ecma_object_t *
ecma_op_create_arguments_object (ecma_object_t *, ecma_object_t *,
ecma_collection_header_t *, ecma_collection_header_t *, bool);
extern ecma_completion_value_t ecma_op_arguments_object_get (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_property_t *ecma_op_arguments_object_get_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_completion_value_t ecma_op_arguments_object_delete (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
bool is_throw);
extern ecma_completion_value_t
ecma_op_arguments_object_define_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
const ecma_property_descriptor_t* property_desc_p,
bool is_throw);
ecma_op_arguments_object_get (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *
ecma_op_arguments_object_get_own_property (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t
ecma_op_arguments_object_delete (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t
ecma_op_arguments_object_define_own_property (ecma_object_t *, ecma_string_t *,
const ecma_property_descriptor_t *, bool);
#endif /* !ECMA_OBJECTS_ARGUMENTS_H */
@@ -27,31 +27,18 @@
*/
extern ecma_object_t *ecma_op_create_object_object_noarg (void);
extern ecma_completion_value_t ecma_op_create_object_object_arg (ecma_value_t value);
extern ecma_object_t *ecma_op_create_object_object_noarg_and_set_prototype (ecma_object_t *object_prototype_p);
extern ecma_completion_value_t ecma_op_create_object_object_arg (ecma_value_t);
extern ecma_object_t *ecma_op_create_object_object_noarg_and_set_prototype (ecma_object_t *);
extern ecma_completion_value_t ecma_op_general_object_get (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_property_t *ecma_op_general_object_get_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_property_t *ecma_op_general_object_get_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_completion_value_t ecma_op_general_object_put (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
ecma_value_t value,
bool is_throw);
extern bool ecma_op_general_object_can_put (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_completion_value_t ecma_op_general_object_delete (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
bool is_throw);
extern ecma_completion_value_t ecma_op_general_object_default_value (ecma_object_t *obj_p,
ecma_preferred_type_hint_t hint);
extern ecma_completion_value_t ecma_op_general_object_get (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *ecma_op_general_object_get_own_property (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *ecma_op_general_object_get_property (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_general_object_put (ecma_object_t *, ecma_string_t *, ecma_value_t, bool);
extern bool ecma_op_general_object_can_put (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_general_object_delete (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t ecma_op_general_object_default_value (ecma_object_t *, ecma_preferred_type_hint_t);
extern ecma_completion_value_t
ecma_op_general_object_define_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
const ecma_property_descriptor_t* property_desc_p,
bool is_throw);
ecma_op_general_object_define_own_property (ecma_object_t *, ecma_string_t *, const ecma_property_descriptor_t *, bool);
/**
* @}
+11 -20
View File
@@ -26,28 +26,19 @@
* @{
*/
extern ecma_completion_value_t ecma_op_object_get (ecma_object_t *obj_p, ecma_string_t *property_name_p);
extern ecma_property_t *ecma_op_object_get_own_property (ecma_object_t *obj_p, ecma_string_t *property_name_p);
extern ecma_property_t *ecma_op_object_get_property (ecma_object_t *obj_p, ecma_string_t *property_name_p);
extern ecma_completion_value_t ecma_op_object_put (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
ecma_value_t value,
bool is_throw);
extern bool ecma_op_object_can_put (ecma_object_t *obj_p, ecma_string_t *property_name_p);
extern ecma_completion_value_t ecma_op_object_delete (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
bool is_throw);
extern ecma_completion_value_t ecma_op_object_default_value (ecma_object_t *obj_p, ecma_preferred_type_hint_t hint);
extern ecma_completion_value_t ecma_op_object_get (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *ecma_op_object_get_own_property (ecma_object_t *, ecma_string_t *);
extern ecma_property_t *ecma_op_object_get_property (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_object_put (ecma_object_t *, ecma_string_t *, ecma_value_t, bool);
extern bool ecma_op_object_can_put (ecma_object_t *, ecma_string_t *);
extern ecma_completion_value_t ecma_op_object_delete (ecma_object_t *, ecma_string_t *, bool);
extern ecma_completion_value_t ecma_op_object_default_value (ecma_object_t *, ecma_preferred_type_hint_t);
extern ecma_completion_value_t
ecma_op_object_define_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p,
const ecma_property_descriptor_t* property_desc_p,
bool is_throw);
extern ecma_completion_value_t ecma_op_object_has_instance (ecma_object_t *obj_p,
ecma_value_t value);
extern bool ecma_op_object_is_prototype_of (ecma_object_t *base_p, ecma_object_t *target_p);
ecma_op_object_define_own_property (ecma_object_t *, ecma_string_t *, const ecma_property_descriptor_t *, bool);
extern ecma_completion_value_t ecma_op_object_has_instance (ecma_object_t *, ecma_value_t);
extern bool ecma_op_object_is_prototype_of (ecma_object_t *, ecma_object_t *);
extern lit_magic_string_id_t ecma_object_get_class_name (ecma_object_t *obj_p);
extern lit_magic_string_id_t ecma_object_get_class_name (ecma_object_t *);
/**
* @}
+4 -9
View File
@@ -43,16 +43,11 @@ typedef struct
unsigned int is_strict : 1;
} ecma_reference_t;
extern ecma_object_t* ecma_op_resolve_reference_base (ecma_object_t *lex_env_p,
ecma_string_t *name_p);
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 *lex_env_p,
ecma_string_t *name_p,
bool is_strict);
extern ecma_reference_t ecma_make_reference (ecma_value_t base,
ecma_string_t *name_p,
bool is_strict);
extern void ecma_free_reference (ecma_reference_t ref);
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);
/**
* @}
@@ -51,27 +51,21 @@ typedef struct
} re_matcher_ctx_t;
extern ecma_completion_value_t
ecma_op_create_regexp_object (ecma_string_t *pattern_p, ecma_string_t *flags_str_p);
ecma_op_create_regexp_object (ecma_string_t *, ecma_string_t *);
extern ecma_completion_value_t
ecma_regexp_exec_helper (ecma_value_t, ecma_value_t, bool);
extern ecma_char_t
re_canonicalize (ecma_char_t ch,
bool is_ignorecase);
re_canonicalize (ecma_char_t, bool);
extern void
re_set_result_array_properties (ecma_object_t *array_obj_p,
ecma_string_t *input_str_p,
uint32_t num_of_elements,
int32_t index);
re_set_result_array_properties (ecma_object_t *, ecma_string_t *, uint32_t, int32_t);
extern ecma_completion_value_t
re_parse_regexp_flags (ecma_string_t *flags_str_p, uint8_t *flags_p);
re_parse_regexp_flags (ecma_string_t *, uint8_t *);
extern void
re_initialize_props (ecma_object_t *re_obj_p,
ecma_string_t *source_p,
uint8_t flags);
re_initialize_props (ecma_object_t *, ecma_string_t *, uint8_t);
/**
* @}
@@ -26,12 +26,10 @@
*/
extern ecma_completion_value_t
ecma_op_create_string_object (const ecma_value_t *arguments_list_p,
ecma_length_t arguments_list_len);
ecma_op_create_string_object (const ecma_value_t *, ecma_length_t);
extern ecma_property_t*
ecma_op_string_object_get_own_property (ecma_object_t *obj_p,
ecma_string_t *property_name_p);
extern ecma_property_t *
ecma_op_string_object_get_own_property (ecma_object_t *, ecma_string_t *);
/**
* @}
+36 -79
View File
@@ -80,7 +80,7 @@ typedef uint8_t jerry_api_char_t;
/**
* Pointer to an array of character values
*/
typedef jerry_api_char_t* jerry_api_char_ptr_t;
typedef jerry_api_char_t *jerry_api_char_ptr_t;
/**
* Jerry's size
@@ -141,135 +141,92 @@ typedef bool (*jerry_external_handler_t) (const jerry_api_object_t *function_obj
typedef void (*jerry_object_free_callback_t) (const uintptr_t native_p);
extern EXTERN_C ssize_t
jerry_api_string_to_char_buffer (const jerry_api_string_t *string_p,
jerry_api_char_t *buffer_p,
ssize_t buffer_size);
jerry_api_string_to_char_buffer (const jerry_api_string_t *, jerry_api_char_t *, ssize_t);
extern EXTERN_C
jerry_api_string_t* jerry_api_acquire_string (jerry_api_string_t *string_p);
jerry_api_string_t *jerry_api_acquire_string (jerry_api_string_t *);
extern EXTERN_C
void jerry_api_release_string (jerry_api_string_t *string_p);
void jerry_api_release_string (jerry_api_string_t *);
extern EXTERN_C
jerry_api_object_t* jerry_api_acquire_object (jerry_api_object_t *object_p);
jerry_api_object_t *jerry_api_acquire_object (jerry_api_object_t *);
extern EXTERN_C
void jerry_api_release_object (jerry_api_object_t *object_p);
void jerry_api_release_object (jerry_api_object_t *);
extern EXTERN_C
void jerry_api_release_value (jerry_api_value_t *value_p);
void jerry_api_release_value (jerry_api_value_t *);
extern EXTERN_C
jerry_api_string_t *jerry_api_create_string (const jerry_api_char_t *v);
jerry_api_string_t *jerry_api_create_string (const jerry_api_char_t *);
extern EXTERN_C
jerry_api_string_t *jerry_api_create_string_sz (const jerry_api_char_t *, jerry_api_size_t);
extern EXTERN_C
jerry_api_object_t* jerry_api_create_object (void);
jerry_api_object_t *jerry_api_create_object (void);
extern EXTERN_C
jerry_api_object_t* jerry_api_create_array_object (jerry_api_size_t);
jerry_api_object_t *jerry_api_create_array_object (jerry_api_size_t);
extern EXTERN_C
bool jerry_api_set_array_index_value (jerry_api_object_t *array_obj_p,
jerry_api_length_t index,
jerry_api_value_t *value_p);
bool jerry_api_set_array_index_value (jerry_api_object_t *, jerry_api_length_t, jerry_api_value_t *);
extern EXTERN_C
bool jerry_api_get_array_index_value (jerry_api_object_t *array_obj_p,
jerry_api_length_t index,
jerry_api_value_t *value_p);
bool jerry_api_get_array_index_value (jerry_api_object_t *, jerry_api_length_t, jerry_api_value_t *);
extern EXTERN_C
jerry_api_object_t* jerry_api_create_error (jerry_api_error_t error_type,
const jerry_api_char_t *message_p);
jerry_api_object_t *jerry_api_create_error (jerry_api_error_t, const jerry_api_char_t *);
extern EXTERN_C
jerry_api_object_t* jerry_api_create_error_sz (jerry_api_error_t error_type,
const jerry_api_char_t *message_p,
jerry_api_size_t message_size);
jerry_api_object_t *jerry_api_create_error_sz (jerry_api_error_t, const jerry_api_char_t *, jerry_api_size_t);
extern EXTERN_C
jerry_api_object_t* jerry_api_create_external_function (jerry_external_handler_t handler_p);
jerry_api_object_t *jerry_api_create_external_function (jerry_external_handler_t);
extern EXTERN_C
bool jerry_api_is_function (const jerry_api_object_t *object_p);
bool jerry_api_is_function (const jerry_api_object_t *);
extern EXTERN_C
bool jerry_api_is_constructor (const jerry_api_object_t *object_p);
bool jerry_api_is_constructor (const jerry_api_object_t *);
extern EXTERN_C
bool jerry_api_add_object_field (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
jerry_api_size_t field_name_size,
const jerry_api_value_t *field_value_p,
bool is_writable);
bool jerry_api_add_object_field (jerry_api_object_t *, const jerry_api_char_t *, jerry_api_size_t,
const jerry_api_value_t *, bool);
extern EXTERN_C
bool jerry_api_delete_object_field (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
jerry_api_size_t field_name_size);
bool jerry_api_delete_object_field (jerry_api_object_t *, const jerry_api_char_t *, jerry_api_size_t);
extern EXTERN_C
bool jerry_api_get_object_field_value (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
jerry_api_value_t *field_value_p);
bool jerry_api_get_object_field_value (jerry_api_object_t *, const jerry_api_char_t *, jerry_api_value_t *);
extern EXTERN_C
bool jerry_api_get_object_field_value_sz (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
jerry_api_size_t field_name_size,
jerry_api_value_t *field_value_p);
bool jerry_api_get_object_field_value_sz (jerry_api_object_t *, const jerry_api_char_t *, jerry_api_size_t,
jerry_api_value_t *);
extern EXTERN_C
bool jerry_api_set_object_field_value (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
const jerry_api_value_t *field_value_p);
bool jerry_api_set_object_field_value (jerry_api_object_t *, const jerry_api_char_t *, const jerry_api_value_t *);
extern EXTERN_C
bool jerry_api_set_object_field_value_sz (jerry_api_object_t *object_p,
const jerry_api_char_t *field_name_p,
jerry_api_size_t field_name_size,
const jerry_api_value_t *field_value_p);
bool jerry_api_set_object_field_value_sz (jerry_api_object_t *, const jerry_api_char_t *, jerry_api_size_t,
const jerry_api_value_t *);
extern EXTERN_C
bool jerry_api_get_object_native_handle (jerry_api_object_t *object_p, uintptr_t* out_handle_p);
bool jerry_api_get_object_native_handle (jerry_api_object_t *, uintptr_t *);
extern EXTERN_C
void jerry_api_set_object_native_handle (jerry_api_object_t *object_p,
uintptr_t handle,
jerry_object_free_callback_t freecb_p);
void jerry_api_set_object_native_handle (jerry_api_object_t *, uintptr_t, jerry_object_free_callback_t);
extern EXTERN_C
bool jerry_api_call_function (jerry_api_object_t *function_object_p,
jerry_api_object_t *this_arg_p,
jerry_api_value_t *retval_p,
const jerry_api_value_t args_p[],
uint16_t args_count);
bool jerry_api_call_function (jerry_api_object_t *, jerry_api_object_t *, jerry_api_value_t *,
const jerry_api_value_t[], uint16_t);
extern EXTERN_C
bool jerry_api_construct_object (jerry_api_object_t *function_object_p,
jerry_api_value_t *retval_p,
const jerry_api_value_t args_p[],
uint16_t args_count);
bool jerry_api_construct_object (jerry_api_object_t *, jerry_api_value_t *, const jerry_api_value_t[], uint16_t);
extern EXTERN_C
jerry_completion_code_t jerry_api_eval (const jerry_api_char_t *source_p,
size_t source_size,
bool is_direct,
bool is_strict,
jerry_api_value_t *retval_p);
jerry_completion_code_t jerry_api_eval (const jerry_api_char_t *, size_t, bool, bool, jerry_api_value_t *);
extern EXTERN_C
jerry_api_object_t* jerry_api_get_global (void);
jerry_api_object_t *jerry_api_get_global (void);
extern EXTERN_C
void jerry_register_external_magic_strings (const jerry_api_char_ptr_t* ex_str_items,
uint32_t count,
const jerry_api_length_t* str_lengths);
void jerry_register_external_magic_strings (const jerry_api_char_ptr_t *, uint32_t, const jerry_api_length_t *);
extern EXTERN_C
size_t jerry_parse_and_save_snapshot (const jerry_api_char_t* source_p,
size_t source_size,
bool is_for_global_or_eval,
uint8_t *buffer_p,
size_t buffer_size);
size_t jerry_parse_and_save_snapshot (const jerry_api_char_t *, size_t, bool, uint8_t *, size_t);
extern EXTERN_C
jerry_completion_code_t jerry_exec_snapshot (const void *snapshot_p,
size_t snapshot_size,
bool is_copy,
jerry_api_value_t *retval_p);
jerry_completion_code_t jerry_exec_snapshot (const void *, size_t, bool, jerry_api_value_t *);
/**
* @}
+2 -6
View File
@@ -24,14 +24,10 @@
#include "jerry-api.h"
extern ecma_completion_value_t
jerry_dispatch_external_function (ecma_object_t *function_object_p,
ecma_external_pointer_t handler_p,
ecma_value_t this_arg_value,
ecma_collection_header_t *arg_collection_p);
jerry_dispatch_external_function (ecma_object_t *, ecma_external_pointer_t, ecma_value_t, ecma_collection_header_t *);
extern void
jerry_dispatch_object_free_callback (ecma_external_pointer_t freecb_p,
ecma_external_pointer_t native_p);
jerry_dispatch_object_free_callback (ecma_external_pointer_t, ecma_external_pointer_t);
extern bool
jerry_is_abort_on_fail (void);
+8 -10
View File
@@ -78,19 +78,17 @@ extern FILE *jerry_log_file;
*/
typedef void (*jerry_error_callback_t) (jerry_fatal_code_t);
extern EXTERN_C void jerry_init (jerry_flag_t flags);
extern EXTERN_C void jerry_init (jerry_flag_t);
extern EXTERN_C void jerry_cleanup (void);
extern EXTERN_C void jerry_get_memory_limits (size_t *out_data_bss_brk_limit_p, size_t *out_stack_limit_p);
extern EXTERN_C void jerry_reg_err_callback (jerry_error_callback_t callback);
extern EXTERN_C void jerry_get_memory_limits (size_t *, size_t *);
extern EXTERN_C void jerry_reg_err_callback (jerry_error_callback_t);
extern EXTERN_C bool jerry_parse (const jerry_api_char_t * source_p, size_t source_size);
extern EXTERN_C bool jerry_parse (const jerry_api_char_t *, size_t);
extern EXTERN_C jerry_completion_code_t jerry_run (void);
extern EXTERN_C jerry_completion_code_t
jerry_run_simple (const jerry_api_char_t *script_source,
size_t script_source_size,
jerry_flag_t flags);
jerry_run_simple (const jerry_api_char_t *, size_t, jerry_flag_t);
#ifdef CONFIG_JERRY_ENABLE_CONTEXTS
/** \addtogroup jerry Jerry run contexts-related interface
@@ -102,10 +100,10 @@ jerry_run_simple (const jerry_api_char_t *script_source,
*/
typedef struct jerry_ctx_t jerry_ctx_t;
extern EXTERN_C jerry_ctx_t* jerry_new_ctx (void);
extern EXTERN_C void jerry_cleanup_ctx (jerry_ctx_t* ctx_p);
extern EXTERN_C jerry_ctx_t *jerry_new_ctx (void);
extern EXTERN_C void jerry_cleanup_ctx (jerry_ctx_t *);
extern EXTERN_C void jerry_push_ctx (jerry_ctx_t *ctx_p);
extern EXTERN_C void jerry_push_ctx (jerry_ctx_t *);
extern EXTERN_C void jerry_pop_ctx (void);
/**
+2 -3
View File
@@ -16,8 +16,7 @@
#ifndef JERRY_BIT_FIELDS_H
#define JERRY_BIT_FIELDS_H
extern uint64_t __attr_const___ jrt_extract_bit_field (uint64_t value, size_t lsb, size_t width);
extern uint64_t __attr_const___ jrt_set_bit_field_value (uint64_t value, uint64_t bit_field_value,
size_t lsb, size_t width);
extern uint64_t __attr_const___ jrt_extract_bit_field (uint64_t, size_t, size_t);
extern uint64_t __attr_const___ jrt_set_bit_field_value (uint64_t, uint64_t, size_t, size_t);
#endif /* !JERRY_BIT_FIELDS_H */
+6 -9
View File
@@ -82,12 +82,9 @@
*/
extern uint32_t jerry_unreferenced_expression;
extern void __noreturn jerry_assert_fail (const char *assertion, const char *file, const char *function,
const uint32_t line);
extern void __noreturn jerry_unreachable (const char *comment, const char *file, const char *function,
const uint32_t line);
extern void __noreturn jerry_unimplemented (const char *comment, const char *file, const char *function,
const uint32_t line);
extern void __noreturn jerry_assert_fail (const char *, const char *, const char *, const uint32_t);
extern void __noreturn jerry_unreachable (const char *, const char *, const char *, const uint32_t);
extern void __noreturn jerry_unimplemented (const char *, const char *, const char *, const uint32_t);
#if !defined (JERRY_NDEBUG) || !defined (JERRY_DISABLE_HEAVY_DEBUG)
#define JERRY_ASSERT(x) do { if (__builtin_expect (!(x), 0)) { \
@@ -186,12 +183,12 @@ template<typename... values> extern void jerry_ref_unused_variables (const value
/**
* Exit
*/
extern void __noreturn jerry_fatal (jerry_fatal_code_t code);
extern void __noreturn jerry_fatal (jerry_fatal_code_t);
/**
* sizeof, offsetof, ...
*/
#define JERRY_SIZE_OF_STRUCT_MEMBER(struct_name, member_name) sizeof (((struct_name*)NULL)->member_name)
#define JERRY_SIZE_OF_STRUCT_MEMBER(struct_name, member_name) sizeof (((struct_name *)NULL)->member_name)
/**
* Alignment
@@ -224,7 +221,7 @@ extern void __noreturn jerry_fatal (jerry_fatal_code_t code);
* It is proposed to use placement new operator. Generally it is available via #include <new>,
* To fix the unavailability of the header in some configurations placement new operator is implemented here.
*/
inline void* operator new (size_t, void* where)
inline void *operator new (size_t, void *where)
{
return where;
} /* operator new */
+6 -15
View File
@@ -133,7 +133,7 @@ public:
bool is_equal (lit_charset_record_t *);
bool is_equal_utf8_string (const lit_utf8_byte_t *, lit_utf8_size_t);
uint32_t dump_for_snapshot (uint8_t *buffer_p, size_t buffer_size, size_t *in_out_buffer_offset_p);
uint32_t dump_for_snapshot (uint8_t *, size_t, size_t *);
private:
/**
* Set record's size (the value of the 'length' field in the header)
@@ -397,9 +397,7 @@ public:
return it.read<ecma_number_t> ();
} /* get_number */
uint32_t dump_for_snapshot (uint8_t *buffer_p,
size_t buffer_size,
size_t *in_out_buffer_offset_p) const;
uint32_t dump_for_snapshot (uint8_t *, size_t, size_t *) const;
private:
/**
* Set record's size (the value of the 'length' field in the header)
@@ -474,17 +472,10 @@ typedef struct
} lit_mem_to_snapshot_id_map_entry_t;
extern bool
lit_dump_literals_for_snapshot (uint8_t *buffer_p,
size_t buffer_size,
size_t *in_out_buffer_offset_p,
lit_mem_to_snapshot_id_map_entry_t **out_map_p,
uint32_t *out_map_num_p,
uint32_t *out_lit_table_size_p);
extern bool lit_load_literals_from_snapshot (const uint8_t *lit_table_p,
uint32_t lit_table_size,
lit_mem_to_snapshot_id_map_entry_t **out_map_p,
uint32_t *out_map_num_p,
bool is_copy);
lit_dump_literals_for_snapshot (uint8_t *, size_t, size_t *, lit_mem_to_snapshot_id_map_entry_t **,
uint32_t *, uint32_t *);
extern bool lit_load_literals_from_snapshot (const uint8_t *, uint32_t, lit_mem_to_snapshot_id_map_entry_t **,
uint32_t *, bool);
#endif /* JERRY_ENABLE_SNAPSHOT */
+6 -16
View File
@@ -52,27 +52,17 @@ extern lit_utf8_size_t lit_get_magic_string_size (lit_magic_string_id_t);
extern const lit_utf8_byte_t *lit_get_magic_string_ex_utf8 (lit_magic_string_ex_id_t);
extern lit_utf8_size_t lit_get_magic_string_ex_size (lit_magic_string_ex_id_t);
extern void lit_magic_strings_ex_set (const lit_utf8_byte_t **,
uint32_t count,
const lit_utf8_size_t *);
extern void lit_magic_strings_ex_set (const lit_utf8_byte_t **, uint32_t, const lit_utf8_size_t *);
extern bool lit_is_utf8_string_magic (const lit_utf8_byte_t *,
lit_utf8_size_t,
lit_magic_string_id_t *);
extern bool lit_is_ex_utf8_string_magic (const lit_utf8_byte_t *,
lit_utf8_size_t,
lit_magic_string_ex_id_t *);
extern bool lit_is_utf8_string_magic (const lit_utf8_byte_t *, lit_utf8_size_t, lit_magic_string_id_t *);
extern bool lit_is_ex_utf8_string_magic (const lit_utf8_byte_t *, lit_utf8_size_t, lit_magic_string_ex_id_t *);
extern bool lit_compare_utf8_string_and_magic_string (const lit_utf8_byte_t *,
lit_utf8_size_t,
extern bool lit_compare_utf8_string_and_magic_string (const lit_utf8_byte_t *, lit_utf8_size_t,
lit_magic_string_id_t);
extern bool lit_compare_utf8_string_and_magic_string_ex (const lit_utf8_byte_t *,
lit_utf8_size_t,
extern bool lit_compare_utf8_string_and_magic_string_ex (const lit_utf8_byte_t *, lit_utf8_size_t,
lit_magic_string_ex_id_t);
extern lit_utf8_byte_t *lit_copy_magic_string_to_buffer (lit_magic_string_id_t,
lit_utf8_byte_t *buffer_p,
ssize_t buffer_size);
extern lit_utf8_byte_t *lit_copy_magic_string_to_buffer (lit_magic_string_id_t, lit_utf8_byte_t *, ssize_t);
#endif /* LIT_MAGIC_STRINGS_H */
+4 -11
View File
@@ -172,20 +172,13 @@ lit_utf8_size_t lit_code_point_to_utf8 (lit_code_point_t, lit_utf8_byte_t *);
lit_code_point_t lit_convert_surrogate_pair_to_code_point (ecma_char_t, ecma_char_t);
/* comparison */
bool lit_compare_utf8_strings (const lit_utf8_byte_t *,
lit_utf8_size_t,
const lit_utf8_byte_t *,
lit_utf8_size_t);
bool lit_compare_utf8_strings (const lit_utf8_byte_t *, lit_utf8_size_t, const lit_utf8_byte_t *, lit_utf8_size_t);
bool lit_compare_utf8_strings_relational (const lit_utf8_byte_t *string1_p,
lit_utf8_size_t,
const lit_utf8_byte_t *string2_p,
lit_utf8_size_t);
bool lit_compare_utf8_strings_relational (const lit_utf8_byte_t *, lit_utf8_size_t,
const lit_utf8_byte_t *, lit_utf8_size_t);
/* read code point from buffer */
lit_utf8_size_t lit_read_code_point_from_utf8 (const lit_utf8_byte_t *,
lit_utf8_size_t,
lit_code_point_t *);
lit_utf8_size_t lit_read_code_point_from_utf8 (const lit_utf8_byte_t *, lit_utf8_size_t, lit_code_point_t *);
/* print */
void lit_put_ecma_char (ecma_char_t);
+1 -1
View File
@@ -24,7 +24,7 @@
* @{
*/
extern void mem_run_try_to_give_memory_back_callbacks (mem_try_give_memory_back_severity_t severity);
extern void mem_run_try_to_give_memory_back_callbacks (mem_try_give_memory_back_severity_t);
/**
* @}
+5 -5
View File
@@ -120,13 +120,13 @@ typedef void (*mem_try_give_memory_back_callback_t) (mem_try_give_memory_back_se
}
extern void mem_init (void);
extern void mem_finalize (bool is_show_mem_stats);
extern void mem_finalize (bool);
extern uintptr_t mem_compress_pointer (const void *pointer);
extern void* mem_decompress_pointer (uintptr_t compressed_pointer);
extern uintptr_t mem_compress_pointer (const void *);
extern void *mem_decompress_pointer (uintptr_t);
extern void mem_register_a_try_give_memory_back_callback (mem_try_give_memory_back_callback_t callback);
extern void mem_unregister_a_try_give_memory_back_callback (mem_try_give_memory_back_callback_t callback);
extern void mem_register_a_try_give_memory_back_callback (mem_try_give_memory_back_callback_t);
extern void mem_unregister_a_try_give_memory_back_callback (mem_try_give_memory_back_callback_t);
#ifdef MEM_STATS
extern void mem_stats_reset_peak (void);
+10 -10
View File
@@ -41,16 +41,16 @@ typedef enum
extern void mem_heap_init (void);
extern void mem_heap_finalize (void);
extern void* mem_heap_alloc_block (size_t size_in_bytes, mem_heap_alloc_term_t alloc_term);
extern void* mem_heap_alloc_chunked_block (mem_heap_alloc_term_t alloc_term);
extern void mem_heap_free_block (void *ptr);
extern void* mem_heap_get_chunked_block_start (void *ptr);
extern void *mem_heap_alloc_block (size_t, mem_heap_alloc_term_t);
extern void *mem_heap_alloc_chunked_block (mem_heap_alloc_term_t);
extern void mem_heap_free_block (void *);
extern void *mem_heap_get_chunked_block_start (void *);
extern size_t mem_heap_get_chunked_block_data_size (void);
extern uintptr_t mem_heap_compress_pointer (const void *pointer);
extern void* mem_heap_decompress_pointer (uintptr_t compressed_pointer);
extern bool mem_is_heap_pointer (const void *pointer);
extern size_t __attr_pure___ mem_heap_recommend_allocation_size (size_t minimum_allocation_size);
extern void mem_heap_print (bool dump_block_headers, bool dump_block_data, bool dump_stats);
extern uintptr_t mem_heap_compress_pointer (const void *);
extern void *mem_heap_decompress_pointer (uintptr_t);
extern bool mem_is_heap_pointer (const void *);
extern size_t __attr_pure___ mem_heap_recommend_allocation_size (size_t);
extern void mem_heap_print (bool, bool, bool);
#ifdef MEM_STATS
/**
@@ -79,7 +79,7 @@ typedef struct
size_t global_peak_waste_bytes; /**< non-resettable peak bytes waste */
} mem_heap_stats_t;
extern void mem_heap_get_stats (mem_heap_stats_t *out_heap_stats_p);
extern void mem_heap_get_stats (mem_heap_stats_t *);
extern void mem_heap_stats_reset_peak (void);
#endif /* MEM_STATS */
+3 -3
View File
@@ -31,8 +31,8 @@
extern void mem_pools_init (void);
extern void mem_pools_finalize (void);
extern uint8_t* mem_pools_alloc (void);
extern void mem_pools_free (uint8_t *chunk_p);
extern uint8_t *mem_pools_alloc (void);
extern void mem_pools_free (uint8_t *);
extern void mem_pools_collect_empty (void);
#ifdef MEM_STATS
@@ -63,7 +63,7 @@ typedef struct
size_t free_chunks;
} mem_pools_stats_t;
extern void mem_pools_get_stats (mem_pools_stats_t *out_pools_stats_p);
extern void mem_pools_get_stats (mem_pools_stats_t *);
extern void mem_pools_stats_reset_peak (void);
#endif /* MEM_STATS */
@@ -18,7 +18,7 @@
#include "jrt.h"
typedef uint8_t* array_list;
typedef uint8_t *array_list;
#define null_list NULL
array_list array_list_init (uint8_t);
@@ -27,7 +27,7 @@
#include "mem-heap.h"
typedef void* hash_table;
typedef void *hash_table;
#define null_hash NULL
hash_table hash_table_init (uint8_t, uint8_t, uint16_t, uint16_t (*hash) (void *));
@@ -18,7 +18,7 @@
#include "jrt.h"
typedef uint8_t* linked_list;
typedef uint8_t *linked_list;
#define null_list NULL
linked_list linked_list_init (uint16_t);
@@ -28,24 +28,13 @@ typedef struct
lit_cpointer_t **buckets;
} lit_id_hash_table;
lit_id_hash_table *lit_id_hash_table_init (uint8_t*, size_t, size_t, size_t);
lit_id_hash_table *lit_id_hash_table_init (uint8_t *, size_t, size_t, size_t);
size_t lit_id_hash_table_get_size_for_table (size_t, size_t);
void lit_id_hash_table_free (lit_id_hash_table *);
void lit_id_hash_table_insert (lit_id_hash_table *, vm_idx_t, vm_instr_counter_t, lit_cpointer_t);
lit_cpointer_t lit_id_hash_table_lookup (lit_id_hash_table *, vm_idx_t, vm_instr_counter_t);
uint32_t lit_id_hash_table_dump_for_snapshot (uint8_t *buffer_p,
size_t buffer_size,
size_t *in_out_buffer_offset_p,
lit_id_hash_table *table_p,
const lit_mem_to_snapshot_id_map_entry_t *lit_map_p,
uint32_t literals_num,
vm_instr_counter_t instrs_num);
bool lit_id_hash_table_load_from_snapshot (size_t blocks_count,
uint32_t idx_num_total,
const uint8_t *idx_to_lit_map_p,
size_t idx_to_lit_map_size,
const lit_mem_to_snapshot_id_map_entry_t *lit_map_p,
uint32_t literals_num,
uint8_t *buffer_for_hash_table_p,
size_t buffer_for_hash_table_size);
uint32_t lit_id_hash_table_dump_for_snapshot (uint8_t *, size_t, size_t *, lit_id_hash_table *,
const lit_mem_to_snapshot_id_map_entry_t *, uint32_t, vm_instr_counter_t);
bool lit_id_hash_table_load_from_snapshot (size_t, uint32_t, const uint8_t *, size_t,
const lit_mem_to_snapshot_id_map_entry_t *, uint32_t, uint8_t *, size_t);
#endif /* LIT_ID_HASH_TABLE */
+2 -2
View File
@@ -86,8 +86,8 @@ void jsp_early_error_check_for_syntax_errors_in_formal_param_list (bool, locus);
void jsp_early_error_check_delete (bool, locus);
jmp_buf * jsp_early_error_get_early_error_longjmp_label (void);
void __attribute__((noreturn)) jsp_early_error_raise_error (jsp_early_error_t type);
jmp_buf *jsp_early_error_get_early_error_longjmp_label (void);
void __attribute__((noreturn)) jsp_early_error_raise_error (jsp_early_error_t);
jsp_early_error_t jsp_early_error_get_type (void);
#endif /* JSP_EARLY_ERROR_H */
+6 -6
View File
@@ -69,19 +69,19 @@ extern void jsp_label_finalize (void);
extern void jsp_label_remove_all_labels (void);
extern void jsp_label_push (jsp_label_t *out_label_p, jsp_label_type_flag_t type_mask, token id);
extern void jsp_label_rewrite_jumps_and_pop (jsp_label_t *label_p, vm_instr_counter_t break_tgt_oc);
extern void jsp_label_push (jsp_label_t *, jsp_label_type_flag_t, token);
extern void jsp_label_rewrite_jumps_and_pop (jsp_label_t *, vm_instr_counter_t);
extern jsp_label_t *jsp_label_find (jsp_label_type_flag_t type_mask, token id, bool *out_is_simply_jumpable_p);
extern jsp_label_t *jsp_label_find (jsp_label_type_flag_t, token, bool *);
extern void jsp_label_add_jump (jsp_label_t *label_p, bool is_simply_jumpable, bool is_break);
extern void jsp_label_setup_continue_target (jsp_label_t *outermost_label_p, vm_instr_counter_t tgt_oc);
extern void jsp_label_add_jump (jsp_label_t *, bool, bool);
extern void jsp_label_setup_continue_target (jsp_label_t *, vm_instr_counter_t);
extern bool jsp_label_raise_nested_jumpable_border (void);
extern void jsp_label_remove_nested_jumpable_border (void);
extern jsp_label_t *jsp_label_mask_set (void);
extern void jsp_label_restore_set (jsp_label_t *masked_label_set_list_p);
extern void jsp_label_restore_set (jsp_label_t *);
/**
* @}
+1 -1
View File
@@ -28,7 +28,7 @@
extern void jsp_mm_init (void);
extern void jsp_mm_finalize (void);
extern size_t jsp_mm_recommend_size (size_t);
extern void * jsp_mm_alloc (size_t);
extern void *jsp_mm_alloc (size_t);
extern void jsp_mm_free (void *);
extern void jsp_mm_free_all (void);
+1 -1
View File
@@ -183,7 +183,7 @@ const char *lexer_token_type_to_string (token_type);
void lexer_set_strict_mode (bool);
extern bool lexer_are_tokens_with_same_identifier (token id1, token id2);
extern bool lexer_are_tokens_with_same_identifier (token, token);
extern bool lexer_is_no_escape_sequences_in_token_string (token);
+4 -7
View File
@@ -440,11 +440,9 @@ void dumper_set_break_target (void);
void dumper_set_continue_target (void);
void dumper_set_next_interation_target (void);
vm_instr_counter_t
dump_simple_or_nested_jump_for_rewrite (bool is_simple_jump,
vm_instr_counter_t next_jump_for_tg_oc);
dump_simple_or_nested_jump_for_rewrite (bool, vm_instr_counter_t);
vm_instr_counter_t
rewrite_simple_or_nested_jump_and_get_next (vm_instr_counter_t jump_oc,
vm_instr_counter_t target_oc);
rewrite_simple_or_nested_jump_and_get_next (vm_instr_counter_t, vm_instr_counter_t);
void dump_continue_iterations_check (jsp_operand_t);
void start_dumping_case_clauses (void);
@@ -481,13 +479,12 @@ bool dumper_variable_declaration_exists (lit_cpointer_t);
void dump_variable_declaration (lit_cpointer_t);
vm_instr_counter_t dump_scope_code_flags_for_rewrite (void);
void rewrite_scope_code_flags (vm_instr_counter_t scope_code_flags_oc,
opcode_scope_code_flags_t scope_flags);
void rewrite_scope_code_flags (vm_instr_counter_t, opcode_scope_code_flags_t);
void dump_reg_var_decl_for_rewrite (void);
void rewrite_reg_var_decl (void);
void dump_ret (void);
void dump_retval (jsp_operand_t op);
void dump_retval (jsp_operand_t);
#endif /* OPCODES_DUMPER_H */
+1 -1
View File
@@ -79,7 +79,7 @@ typedef struct
bool contains_functions: 1; /**< flag, indicating that the scope contains a function declaration / expression */
} scopes_tree_int;
typedef scopes_tree_int * scopes_tree;
typedef scopes_tree_int *scopes_tree;
scopes_tree scopes_tree_init (scopes_tree, scope_type_t);
void scopes_tree_free (scopes_tree);
+6 -15
View File
@@ -26,7 +26,7 @@
#define NOT_A_LITERAL (lit_cpointer_t::null_cp ())
void serializer_init ();
void serializer_set_show_instrs (bool show_instrs);
void serializer_set_show_instrs (bool);
op_meta serializer_get_op_meta (vm_instr_counter_t);
op_meta serializer_get_var_decl (vm_instr_counter_t);
vm_instr_t serializer_get_instr (const bytecode_data_header_t *, vm_instr_counter_t);
@@ -48,22 +48,13 @@ void serializer_free (void);
/*
* Snapshot-related
*/
bool serializer_dump_bytecode_with_idx_map (uint8_t *buffer_p,
size_t buffer_size,
size_t *in_out_buffer_offset_p,
const bytecode_data_header_t *bytecode_data_p,
const lit_mem_to_snapshot_id_map_entry_t *lit_map_p,
uint32_t literals_num,
uint32_t *out_bytecode_size_p,
uint32_t *out_idx_to_lit_map_size_p);
bool serializer_dump_bytecode_with_idx_map (uint8_t *, size_t, size_t *, const bytecode_data_header_t *,
const lit_mem_to_snapshot_id_map_entry_t *, uint32_t,
uint32_t *, uint32_t *);
const bytecode_data_header_t *
serializer_load_bytecode_with_idx_map (const uint8_t *bytecode_and_idx_map_p,
uint32_t bytecode_size,
uint32_t idx_to_lit_map_size,
const lit_mem_to_snapshot_id_map_entry_t *lit_map_p,
uint32_t literals_num,
bool is_copy);
serializer_load_bytecode_with_idx_map (const uint8_t *, uint32_t, uint32_t,
const lit_mem_to_snapshot_id_map_entry_t *, uint32_t, bool);
#endif /* JERRY_ENABLE_SNAPSHOT */
#endif /* SERIALIZER_H */
+3 -3
View File
@@ -96,13 +96,13 @@ typedef struct
} re_compiler_ctx_t;
ecma_completion_value_t
re_compile_bytecode (re_bytecode_t **out_bytecode_p, ecma_string_t *pattern_str_p, uint8_t flags);
re_compile_bytecode (re_bytecode_t **, ecma_string_t *, uint8_t);
re_opcode_t
re_get_opcode (re_bytecode_t **bc_p);
re_get_opcode (re_bytecode_t **);
uint32_t
re_get_value (re_bytecode_t **bc_p);
re_get_value (re_bytecode_t **);
#endif /* CONFIG_ECMA_COMPACT_PROFILE_DISABLE_REGEXP_BUILTIN */
#endif /* RE_COMPILER_H */
+2 -4
View File
@@ -89,12 +89,10 @@ typedef struct
typedef void (*re_char_class_callback) (void *re_ctx_p, uint32_t start, uint32_t end);
ecma_completion_value_t
re_parse_char_class (re_parser_ctx_t *parser_ctx_p,
re_char_class_callback append_char_class,
void *re_ctx_p, re_token_t *out_token_p);
re_parse_char_class (re_parser_ctx_t *, re_char_class_callback, void *, re_token_t *);
ecma_completion_value_t
re_parse_next_token (re_parser_ctx_t *parser_ctx_p, re_token_t *out_token_p);
re_parse_next_token (re_parser_ctx_t *, re_token_t *);
#endif /* CONFIG_ECMA_COMPACT_PROFILE_DISABLE_REGEXP_BUILTIN */
#endif /* RE_PARSER_H */
+4 -4
View File
@@ -62,7 +62,7 @@ public:
node_t *get_last (void) const;
node_t *get_prev (node_t *) const;
node_t *get_next (node_t *node_p) const;
node_t *get_next (node_t *) const;
node_t *append_new (void);
node_t *insert_new (node_t *);
@@ -70,7 +70,7 @@ public:
void remove (node_t *);
node_t *get_node_from_pointer (void *) const;
uint8_t* get_data_space (node_t *) const;
uint8_t *get_data_space (node_t *) const;
static size_t get_data_space_size (void);
@@ -83,8 +83,8 @@ private:
void assert_list_is_correct (void) const;
void assert_node_is_correct (const node_t *) const;
node_t* head_p; /**< head node of list */
node_t* tail_p; /**< tail node of list */
node_t *head_p; /**< head node of list */
node_t *tail_p; /**< tail node of list */
};
/**
+22 -24
View File
@@ -89,7 +89,7 @@ public:
typedef uint8_t type_t;
type_t get_type (void) const;
void set_type (type_t type);
void set_type (type_t);
/**
* Dynamic storage-specific extended compressed pointer
@@ -117,8 +117,8 @@ public:
uint16_t packed_value;
};
static cpointer_t compress (record_t *pointer_p);
static record_t *decompress (cpointer_t pointer_cp);
static cpointer_t compress (record_t *);
static record_t *decompress (cpointer_t);
static cpointer_t null_cp ();
@@ -139,11 +139,11 @@ public:
protected:
void check_this (void) const;
uint32_t get_field (uint32_t field_pos, uint32_t field_width) const;
void set_field (uint32_t field_pos, uint32_t field_width, size_t value);
uint32_t get_field (uint32_t, uint32_t) const;
void set_field (uint32_t, uint32_t, size_t);
record_t *get_pointer (uint32_t field_pos, uint32_t field_width) const;
void set_pointer (uint32_t field_pos, uint32_t field_width, record_t* pointer_p);
record_t *get_pointer (uint32_t, uint32_t) const;
void set_pointer (uint32_t, uint32_t, record_t *);
/**
* Offset of a derived record's fields, in bits
@@ -152,7 +152,7 @@ public:
};
record_t *get_first (void);
record_t *get_next (record_t *rec_p);
record_t *get_next (record_t *);
private:
friend class rcs_record_iterator_t;
@@ -167,12 +167,10 @@ private:
*/
rcs_chunked_list_t _chunk_list;
void alloc_record_in_place (record_t* place_p,
size_t free_size,
record_t* next_record_p);
void alloc_record_in_place (record_t *, size_t, record_t *);
void init_free_record (record_t *free_rec_p, size_t size, record_t *prev_rec_p);
bool is_record_free (record_t *record_p);
void init_free_record (record_t *, size_t, record_t *);
bool is_record_free (record_t *);
protected:
/**
@@ -207,14 +205,14 @@ protected:
return rec_p;
} /* alloc_record */
record_t *alloc_space_for_record (size_t bytes, record_t **out_prev_rec_p);
void free_record (record_t *record_p);
record_t *alloc_space_for_record (size_t, record_t **);
void free_record (record_t *);
virtual record_t *get_prev (record_t *rec_p);
virtual record_t *get_prev (record_t *);
virtual void set_prev (record_t *rec_p, record_t *prev_rec_p);
virtual void set_prev (record_t *, record_t *);
virtual size_t get_record_size (record_t *rec_p);
virtual size_t get_record_size (record_t *);
void assert_state_is_correct (void);
}; /* rcs_recordset_t */
@@ -273,7 +271,7 @@ protected:
* increment current position so that 'size' bytes would be skipped. */
} access_t;
void access (access_t access_type, void *data, size_t size);
void access (access_t, void *, size_t);
public:
/**
@@ -338,8 +336,8 @@ public:
} /* reset */
private:
rcs_record_t* _record_start_p; /**< start of current record */
uint8_t* _current_pos_p; /**< pointer to current offset in current record */
rcs_record_t *_record_start_p; /**< start of current record */
uint8_t *_current_pos_p; /**< pointer to current offset in current record */
size_t _current_offset; /**< current offset */
rcs_recordset_t *_recordset_p; /**< recordset containing the record */
}; /* rcs_record_iterator_t */
@@ -351,10 +349,10 @@ class rcs_free_record_t : public rcs_record_t
{
public:
size_t get_size (void) const;
void set_size (size_t size);
void set_size (size_t);
rcs_record_t* get_prev (void) const;
void set_prev (rcs_record_t* prev_rec_p);
rcs_record_t *get_prev (void) const;
void set_prev (rcs_record_t *);
private:
/**
* Offset of 'length' field, in bits
+3 -7
View File
@@ -34,13 +34,9 @@
#include "ecma-try-catch-macro.h"
#include "serializer.h"
bool is_reg_variable (vm_frame_ctx_t *frame_ctx_p, vm_idx_t var_idx);
bool is_reg_variable (vm_frame_ctx_t *, vm_idx_t);
ecma_completion_value_t get_variable_value (vm_frame_ctx_t *, vm_idx_t, bool);
ecma_completion_value_t set_variable_value (vm_frame_ctx_t *, vm_instr_counter_t, vm_idx_t, ecma_value_t);
ecma_completion_value_t vm_fill_varg_list (vm_frame_ctx_t *frame_ctx_p,
ecma_length_t args_number,
ecma_collection_header_t *args_values_p);
extern void vm_fill_params_list (vm_frame_ctx_t *frame_ctx_p,
ecma_length_t params_number,
ecma_collection_header_t *formal_params_collection_p);
ecma_completion_value_t vm_fill_varg_list (vm_frame_ctx_t *, ecma_length_t, ecma_collection_header_t *);
extern void vm_fill_params_list (vm_frame_ctx_t *, ecma_length_t, ecma_collection_header_t *);
#endif /* OPCODES_ECMA_SUPPORT_H */
+7 -7
View File
@@ -203,7 +203,7 @@ typedef struct
* process (see also: OPCODE_CALL_FLAGS_DIRECT_CALL_TO_EVAL_FORM) */
vm_idx_t min_reg_idx; /**< minimum idx used for register identification */
vm_idx_t max_reg_idx; /**< maximum idx used for register identification */
ecma_number_t* tmp_num_p; /**< an allocated number (to reduce temporary allocations) */
ecma_number_t *tmp_num_p; /**< an allocated number (to reduce temporary allocations) */
vm_stack_frame_t stack_frame; /**< stack frame associated with the context */
#ifdef MEM_STATS
@@ -233,8 +233,8 @@ typedef struct
const vm_instr_counter_t end_oc; /**< instruction counter of the last instruction of the scope */
} vm_run_scope_t;
vm_instr_counter_t vm_calc_instr_counter_from_idx_idx (const vm_idx_t oc_idx_1, const vm_idx_t oc_idx_2);
vm_instr_counter_t vm_read_instr_counter_from_meta (opcode_meta_type expected_type, vm_frame_ctx_t *int_data);
vm_instr_counter_t vm_calc_instr_counter_from_idx_idx (const vm_idx_t, const vm_idx_t);
vm_instr_counter_t vm_read_instr_counter_from_meta (opcode_meta_type, vm_frame_ctx_t *);
typedef struct vm_instr_t
{
@@ -290,13 +290,13 @@ typedef enum
} vm_op_t;
#define VM_OP_0(opcode_name, opcode_name_uppercase) \
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t*);
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t *);
#define VM_OP_1(opcode_name, opcode_name_uppercase, arg1, arg1_type) \
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t*);
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t *);
#define VM_OP_2(opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type) \
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t*);
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t *);
#define VM_OP_3(opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type, arg3, arg3_type) \
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t*);
ecma_completion_value_t opfunc_##opcode_name (vm_instr_t, vm_frame_ctx_t *);
#include "vm-opcodes.inc.h"
+9 -12
View File
@@ -57,20 +57,17 @@ typedef struct vm_stack_frame_t
extern void vm_stack_init (void);
extern void vm_stack_finalize (void);
extern vm_stack_frame_t*
extern vm_stack_frame_t *
vm_stack_get_top_frame (void);
extern void
vm_stack_add_frame (vm_stack_frame_t *frame_p,
ecma_value_t *regs_p,
int32_t regs_num,
int32_t local_vars_regs_num);
extern void vm_stack_free_frame (vm_stack_frame_t *frame_p);
extern ecma_value_t vm_stack_frame_get_reg_value (vm_stack_frame_t *frame_p, int32_t reg_index);
extern void vm_stack_frame_set_reg_value (vm_stack_frame_t *frame_p, int32_t reg_index, ecma_value_t value);
extern void vm_stack_push_value (vm_stack_frame_t *frame_p, ecma_value_t value);
extern ecma_value_t vm_stack_top_value (vm_stack_frame_t *frame_p);
extern void vm_stack_pop (vm_stack_frame_t *frame_p);
extern void vm_stack_pop_multiple (vm_stack_frame_t *frame_p, uint32_t number);
vm_stack_add_frame (vm_stack_frame_t *, ecma_value_t *, int32_t, int32_t);
extern void vm_stack_free_frame (vm_stack_frame_t *);
extern ecma_value_t vm_stack_frame_get_reg_value (vm_stack_frame_t *, int32_t);
extern void vm_stack_frame_set_reg_value (vm_stack_frame_t *, int32_t, ecma_value_t);
extern void vm_stack_push_value (vm_stack_frame_t *, ecma_value_t);
extern ecma_value_t vm_stack_top_value (vm_stack_frame_t *);
extern void vm_stack_pop (vm_stack_frame_t *);
extern void vm_stack_pop_multiple (vm_stack_frame_t *, uint32_t);
/**
* @}
+9 -13
View File
@@ -20,27 +20,23 @@
#include "jrt.h"
#include "opcodes.h"
extern void vm_init (const bytecode_data_header_t *program_p, bool dump_mem_stats);
extern void vm_init (const bytecode_data_header_t *, bool);
extern void vm_finalize (void);
extern jerry_completion_code_t vm_run_global (void);
extern ecma_completion_value_t vm_run_eval (const bytecode_data_header_t *bytecode_data_p,
bool is_direct);
extern ecma_completion_value_t vm_loop (vm_frame_ctx_t *frame_ctx_p, vm_run_scope_t *run_scope_p);
extern ecma_completion_value_t vm_run_from_pos (const bytecode_data_header_t *header_p,
vm_instr_counter_t start_pos,
ecma_value_t this_binding_value,
ecma_object_t *lex_env_p,
bool is_strict,
bool is_eval_code);
extern ecma_completion_value_t vm_run_eval (const bytecode_data_header_t *, bool);
extern vm_instr_t vm_get_instr (const vm_instr_t*, vm_instr_counter_t counter);
extern opcode_scope_code_flags_t vm_get_scope_flags (const vm_instr_t*, vm_instr_counter_t counter);
extern ecma_completion_value_t vm_loop (vm_frame_ctx_t *, vm_run_scope_t *);
extern ecma_completion_value_t vm_run_from_pos (const bytecode_data_header_t *, vm_instr_counter_t,
ecma_value_t, ecma_object_t *, bool, bool);
extern vm_instr_t vm_get_instr (const vm_instr_t *, vm_instr_counter_t);
extern opcode_scope_code_flags_t vm_get_scope_flags (const vm_instr_t *, vm_instr_counter_t);
extern bool vm_is_strict_mode (void);
extern bool vm_is_direct_eval_form_call (void);
extern ecma_value_t vm_get_this_binding (void);
extern ecma_object_t* vm_get_lex_env (void);
extern ecma_object_t *vm_get_lex_env (void);
#endif /* VM_H */