144 Commits

Author SHA1 Message Date
Ruben Ayrapetyan
a0a2ec2cea Replacing items of ecma_object_class_t with corresponding ecma magic strings. 2014-09-26 18:04:42 +04:00
Ruben Ayrapetyan
ba2eeb84af Implementing String.prototype.toString and String.prototype.valueOf built-in routines. 2014-09-25 21:04:24 +04:00
Ruben Ayrapetyan
c235021147 Implementing [[DefaultValue]] general objects' method. 2014-09-25 18:37:38 +04:00
Ruben Ayrapetyan
c2ca158d19 Implementing Array built-in. 2014-09-25 14:58:45 +04:00
Ruben Ayrapetyan
c06c6a5ed8 Introducing ecma_free_property_descriptor. 2014-09-25 14:19:09 +04:00
Ruben Ayrapetyan
679d86dc8f Passing 'this' argument to built-in routines. 2014-09-24 23:19:32 +04:00
Ruben Ayrapetyan
c4ec42635b Implementing String's constructor and [[GetOwnProperty]]. 2014-09-24 21:31:24 +04:00
Ruben Ayrapetyan
25ec2bea17 Refactoring function call operations to return 'normal' completion values instead of 'return' completion values. Removing ECMA_FUNCTION_CALL macro. 2014-09-24 14:27:27 +04:00
Ruben Ayrapetyan
4798807451 Fixing remainder calculation operation (ecma_op_number_remainder). 2014-09-23 17:22:01 +04:00
Ruben Ayrapetyan
1fed738217 Replacing ecma_builtin_is_*_object interfaces with ecma_builtin_is (object, builtin_id), and ecma_builtin_get_*_object with ecma_builtin_get (builtin_id). 2014-09-22 21:46:26 +04:00
Ruben Ayrapetyan
1e642fd527 Implementing ToPropertyDescriptor and FromPropertyDescriptor ECMA operations. 2014-09-22 19:31:35 +04:00
Ruben Ayrapetyan
a3ca61fe0e Setting Function's [[Get]] method to default [[Get]] method as they're behaviours for Function objects are equivalent. 2014-09-22 15:49:49 +04:00
Ruben Ayrapetyan
e55ceb22f5 Implementing [[HasInstance]] for non-bound functions. 2014-09-19 21:14:14 +04:00
Ruben Ayrapetyan
f46853bdd8 Introducing interfaces for invoking built-in functions and constructors.
Implementing property instantiation routine dispatcher for Global object.
Adding instantiation for 'undefined', 'NaN', 'Infinity' and built-in routine
properties of the Global Object. Implementing isNaN and isFinite built-in routines.
2014-09-19 18:10:49 +04:00
Ruben Ayrapetyan
1dd631178f Renaming ecma_get_object_has_non_instantiated_builtins -> ecma_get_object_is_builtin, ecma_set_object_has_non_instantiated_builtins -> ecma_set_object_is_builtin. 2014-09-19 17:51:40 +04:00
Ruben Ayrapetyan
7fc3b178d8 Introducing ecma_is_string_magic, ecma_init and ecma_finalize interfaces, 'magic-string' container type for ecma-strings. Renaming ecma_is_magic_string to ecma_is_zt_string_magic. Moving magic-string related routines to ecma-helpers-string.c. 2014-09-19 12:08:19 +04:00
Ruben Ayrapetyan
9a667596de Implementing constructor of Function object for built-in routines. 2014-09-18 19:48:43 +04:00
Ruben Ayrapetyan
f402e42d2f Moving Global object related routines to libecmabuiltins component. Introducing ecma_init_builtins and ecma_finalize_builtins routines. 2014-09-18 13:55:56 +04:00
Ruben Ayrapetyan
11cf22f06c Introducing 'ecmabuiltins' component and interface for instantiating built-in properties. 2014-09-17 21:12:05 +04:00
Ruben Ayrapetyan
2edc921be7 Introducing has_non_instantiated_built_in_properties flag in ecma_object_t and 'built-in function' object type. 2014-09-17 20:05:15 +04:00
Ruben Ayrapetyan
24fc505440 Introducing ecma_is_magic_string routine. 2014-09-17 18:00:11 +04:00
Ruben Ayrapetyan
59ef3bf074 Little refactoring of control paths in general objects' [[DefineOwnProperty]] to satisfy cppcheck's requirements. 2014-09-17 15:37:12 +04:00
Ruben Ayrapetyan
5df12d2e04 Fixing NULL pointer dereference in PutValue routine. 2014-09-17 15:24:48 +04:00
Ruben Ayrapetyan
fbcd393962 Adding configuration flag indicating whether Global Environment is bound to Global Object or it is simple declarative lexical environment. 2014-09-08 19:16:30 +04:00
Ruben Ayrapetyan
b9fd80ce36 Fixing object declaration and function expression opcode handlers; adding unit test that declares object and operates on the object's properties. 2014-09-04 21:02:29 +04:00
Ruben Ayrapetyan
50371ddf20 Implementing Array construction routine; adding unit test on array operations. 2014-09-03 17:30:03 +04:00
Ruben Ayrapetyan
b275218e63 Fixing [[DefineOwnProperty]] routine of general object. 2014-09-02 22:34:50 +04:00
Ruben Ayrapetyan
d45748a001 Implementing [[Get]] routine for function objects. 2014-09-02 22:34:38 +04:00
Ruben Ayrapetyan
57058c30ef Implementing rest unimplemented cases in ecma comparison routines. 2014-09-02 22:18:28 +04:00
Ruben Ayrapetyan
0a6e1a83f8 Renaming ecma_compare_ecma_string_to_ecma_string to ecma_compare_ecma_strings. 2014-09-02 20:16:41 +04:00
Ruben Ayrapetyan
11d772fda4 Implementing unimplemented cases in ecma comparison routines. 2014-09-02 19:57:55 +04:00
Ruben Ayrapetyan
c581f10b94 Changing return value of ecma_op_abstract_equality_compare to ecma_completion_value_t. 2014-09-02 19:07:43 +04:00
Ruben Ayrapetyan
c9f954ec2e Implementing several unimplemented cases in ecma conversion routines. 2014-09-02 18:49:45 +04:00
Ruben Ayrapetyan
aa86a3643b Implementing remainder operation according to ECMA. Checking that implementations of other arithmetic operations already conform to ECMA and removing corresponding TODOs from them. 2014-09-02 15:09:36 +04:00
Ruben Ayrapetyan
4d9602ba0d Supporting string concatenations that are longer than 64k. 2014-09-01 22:11:54 +04:00
Ruben Ayrapetyan
23b62bce54 Replacing doxygen header for ECMA modules 'addtogroup ecma ---TODO---' -> 'addtogroup ecma ECMA'. 2014-08-29 18:35:44 +04:00
Ruben Ayrapetyan
32f20a02a3 Adding missing may_ref_younger flags updates and assertion check for the flags value. 2014-08-29 18:06:20 +04:00
Ruben Ayrapetyan
1d02085dc6 Packing ecma_object_t to 8 bytes. 2014-08-29 17:38:05 +04:00
Ruben Ayrapetyan
8e14f32806 Introducing getters/setters for ecma_object_t structure. 2014-08-29 15:53:07 +04:00
Ruben Ayrapetyan
f7968e617d Adding several completion value construction and comparison helpers. 2014-08-29 12:51:06 +04:00
Ruben Ayrapetyan
227c09fb3e Adding target counter and depth level to 'break' and 'continue' completion values. 2014-08-28 22:56:29 +04:00
Ruben Ayrapetyan
5d2b535cec Implementing 'with' opcode; replacing 'end_with' opcode with 'meta' opcode of corresponding type. 2014-08-27 21:38:53 +04:00
Ruben Ayrapetyan
2feb159fd8 Implementing 'array_decl' opcode handler. 2014-08-27 18:28:26 +04:00
Ruben Ayrapetyan
76121926d1 Splitting 'delete' opcode to 'delete_var' and 'delete_prop'. Implementing corresponding opcode handlers. 2014-08-27 17:12:59 +04:00
Ruben Ayrapetyan
f8907573dd Implementing 'func_expr_n' opcode handler. 2014-08-26 22:15:40 +04:00
Ruben Ayrapetyan
bf5bda11ed Implementing 'construct_n' opcode handler. 2014-08-26 17:47:14 +04:00
Ruben Ayrapetyan
dc3f529307 Implementing 'typeof' opcode handler. 2014-08-26 12:43:13 +04:00
Ruben Ayrapetyan
704c26ff80 Setting ThisBinding of the Global Environment to the Global Object. 2014-08-26 12:43:10 +04:00
Ruben Ayrapetyan
6fbf3e4eed Implementing accessor properties operations in general objects' [[Get]] and [[Put]] routines. 2014-08-22 21:27:46 +04:00
Ruben Ayrapetyan
90c006771f One more fix in Function objects' [[Construct]] routine 2014-08-22 21:16:43 +04:00