Commit Graph
100 Commits
Author SHA1 Message Date
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 dafbaa742e Adding configuration option for ECMA exception support. 2014-09-08 19:09:34 +04:00
Ruben Ayrapetyan 4d34bab9a0 Adding memory leak checks to unit tests. 2014-09-05 20:35:33 +04:00
Ruben Ayrapetyan c5dd81cf76 Fixing memory leak in opfunc_throw. 2014-09-05 20:28:02 +04:00
Ruben Ayrapetyan 5a9d4563ec Fixing performance degradation that occured in commit 9b040f31d2a2e1e4d43dd347d5e81282997dd2b5. 2014-09-05 16:27:43 +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 5630352f36 Adding arm-linux-perf notes ref to tools/pull.sh and tools/log.sh. 2014-09-04 17:29:54 +04:00
Ruben Ayrapetyan 3bb990d782 Fixing LIBC_MUSL build for ARM Linux host (adjusting heap limit under LIBC_MUSL). 2014-09-04 16:47:39 +04:00
Ruben Ayrapetyan 31b5451b50 Moving label descriptor from ecma_completion_value_t to separate structure on heap (fixing performance degradation that occured in commit 5d92544db57203603a6ed53b5c18562065a70b77). 2014-09-04 14:27:40 +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 76de0e9a06 Improving precision of ecma_number_to_string in case number can be represented as UInt32. 2014-09-03 15:05:58 +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 3dc9a5838a Fixing ecma_uint32_to_string helper. 2014-09-02 21:55:04 +04:00
Ruben Ayrapetyan 9acbaafc8e Implementing ecma-strings relational comparison helper. 2014-09-02 21:10:50 +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 afc21fad8e Simple implementation of string concatenations comparison. 2014-09-02 13:31:56 +04:00
Ruben Ayrapetyan 4d9602ba0d Supporting string concatenations that are longer than 64k. 2014-09-01 22:11:54 +04:00
Ruben Ayrapetyan 813831a23b Decimal conversion of Number to zt-string (still not precise enough). Zt-string copy and length calculation helpers. 2014-09-01 21:12:02 +04:00
Ruben Ayrapetyan e35f54fe86 Implementing ECMA String to Number conversion helper. 2014-08-29 22:46:38 +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 32d111fecf Changing pool's chunk size to 8 bytes. Adding configurable value for minimum chunks in a pool allocated by pools' manager: CONFIG_MEM_LEAST_CHUNK_NUMBER_IN_POOL = 32. 2014-08-29 18:21:22 +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 164350b369 Introducing constructor for label completion values (for 'break' and 'continue' completion types). 2014-08-28 23:08:31 +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 16cbe0c63b Removing try_get_string_by_idx and get_number_by_idx. 2014-08-28 21:19:44 +04:00
Ruben Ayrapetyan b36f997ef2 Determining if global code is strict code by checking if first opcode is 'meta' opcode of OPCODE_META_TYPE_STRICT_CODE type; setting 'configurableBindings' in 'var_decl' opcode to true if current code is eval code. 2014-08-28 20:29:42 +04:00
Ruben Ayrapetyan b529fc2da9 Processing unhandled exception by exiting engine with ERR_UNHANDLED_EXCEPTION; determining if function's code is strict by checking for appearance of 'meta' opcode of OPCODE_META_TYPE_STRICT_CODE type at the beginning of the function's code. 2014-08-28 20:21:47 +04:00
Ruben Ayrapetyan ddb2e6e9d5 Introducing and implementing 'throw' and 'try' opcode handlers. 2014-08-28 18:57:34 +04:00
Ruben Ayrapetyan 647f6b3c67 Renaming OPCODE_META_TYPE_OPCODE_COUNTER -> OPCODE_META_TYPE_FUNCTION_END. 2014-08-28 16:49:03 +04:00
Ruben Ayrapetyan 9d45f68370 Introducing 'opcode counter' type for 'meta' opcode; replacing 'jmp_down' opcodes that are used as pointers only with 'meta' opcodes of the introduced type. 2014-08-28 15:17:49 +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 f08c242156 Implementing 'obj_decl' opcode; replacing 'prop', 'prop_get_decl', 'prop_set_decl' with 'meta' opcodes of corresponding types. 2014-08-27 20:43:31 +04:00
Ruben Ayrapetyan d286a93e2c Replacing 'varg' opcode with 'meta' opcode with corresponding type. 2014-08-27 19:35:56 +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 05185bb2e9 Implementing 'native_call' opcode handler. 2014-08-27 15:38:31 +04:00
Ruben Ayrapetyan bc2f827447 Implementing 'unreachable' handler for 'meta' opcode. 2014-08-27 13:45:27 +04:00
Ruben Ayrapetyan f8907573dd Implementing 'func_expr_n' opcode handler. 2014-08-26 22:15:40 +04:00
Ruben Ayrapetyan 6cfcedb053 Evaluation of expressions passed in arguments lists just before corresponding 'varg' opcodes. 2014-08-26 21:39:54 +04:00
Ruben Ayrapetyan 6f58335f23 Replacing 'varg_list' (3 args) with 'varg' (1 arg). 2014-08-26 20:50:41 +04:00
Ruben Ayrapetyan 32ba30ddef Extracting interpreter loop from run_int_from_pos. 2014-08-26 20:20:33 +04:00
Ruben Ayrapetyan bf5bda11ed Implementing 'construct_n' opcode handler. 2014-08-26 17:47:14 +04:00
Ruben Ayrapetyan 9573b7234d Implementing 'func_decl_n' and 'func_call_n' opcodes' handlers. 2014-08-26 17:30:23 +04:00
Ruben Ayrapetyan 02f31fbcfb Adding 'func_expr_n' opcode; replacing arg1 and arg2 of 'func_decl_n' opcode with arg_list. 2014-08-26 15:58:57 +04:00
Ruben Ayrapetyan 7a80b7f4f1 Renaming 'construct_decl' opcode to 'construct_n'. 2014-08-26 12:50:23 +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 9a203c580e Implementing 'this' opcode handler. 2014-08-26 12:17:29 +04:00
Ruben Ayrapetyan 38fdcba69c Implementing opfunc_addition with a string-operand. 2014-08-26 11:26:47 +04:00
Ruben Ayrapetyan c72555d25f Introducing new type of ecma-string: concatenation of two ecma-strings (comparison is not implemented). loop_arithmetics_1kk.js: 2.8968 -> 2.8464. 2014-08-26 11:11:20 +04:00
Ruben Ayrapetyan d0963f6d3d Fixing deref and comparison for uint32-represented ecma-strings. loop_arithmetics_1kk.js: 2.8448 -> 2.9056. 2014-08-26 11:06:06 +04:00
Ruben Ayrapetyan 2194f80d71 Revert "Fixing deref and comparison for uint32-represented ecma-strings."
This reverts commit c3adae65625c4fcf25049a3a67e1f1862b443c35.
2014-08-26 11:05:19 +04:00
Ruben Ayrapetyan 6ca0942b74 Fixing deref and comparison for uint32-represented ecma-strings. 2014-08-26 10:26:47 +04:00
Ruben Ayrapetyan aeb363075b Adding const qualifier to ecma_string_t* in ecma-string comparison and property search routines. 2014-08-25 20:28:26 +04:00
Ruben Ayrapetyan ebfacc82d3 Removing is_length_valid from ecma-string descriptor. 2014-08-25 20:11:24 +04:00
Ruben Ayrapetyan 8998189bc0 Storing Number as UInt32 in ecma-string if the Number may be represented as UInt32. Calculating length for Number-represented ecma-strings in ecma-string constructor. loop_arithmetics_1kk.js: 2.9112 -> 2.8536. 2014-08-25 20:03:33 +04:00
Ruben Ayrapetyan 57965bf160 Moving {get,set}_variable_value and do_strict_eval_arguments_check from opcodes-ecma-support.h to opcodes-helpers-variables.c. loop_arithmetics_1kk.js: 3.0848 -> 2.9584. 2014-08-25 18:54:46 +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
Ruben Ayrapetyan e6c10655c5 Fixing Function objects'[[Construct]] routine 2014-08-22 21:01:58 +04:00
Ruben Ayrapetyan a341fe044b call_0, call_1 opcode handlers: wrapping function calls using ECMA_FUNCTION_CALL helper 2014-08-22 20:50:40 +04:00
Ruben Ayrapetyan bf1841ce54 Full implementation of GetValue, PutValue operations. 2014-08-22 20:27:07 +04:00
Ruben Ayrapetyan 6801f22bd9 Introducing ECMA_FUNCTION_CALL helper macro for handling return completion values of function calls. 2014-08-22 20:26:23 +04:00
Ruben Ayrapetyan 80e6cd3a60 Fixing ecma_create_arguments_object: adding deref for allocated ecma-string 2014-08-22 18:47:46 +04:00
Ruben Ayrapetyan 077392e5c5 Fixing ecma_compare_zt_string_to_zt_string 2014-08-22 18:44:54 +04:00
Ruben Ayrapetyan f266b84016 Adding configuration header file for engine's parameters/limitations 2014-08-22 18:29:39 +04:00
Ruben Ayrapetyan dca9bcc387 Removing ECMA_TYPE__COUNT enum value; fixing comment to ecma_copy_value 2014-08-22 17:50:57 +04:00
Ruben Ayrapetyan a8486b01ed Partial implementation of 'Object' object construction routine 2014-08-22 17:18:29 +04:00
Ruben Ayrapetyan 3bcf02137e Adding stub for Array construction routine 2014-08-22 17:17:17 +04:00
Ruben Ayrapetyan 5713373279 Partial implementation of [[Construct]] routine for Function objects 2014-08-22 16:56:00 +04:00
Ruben Ayrapetyan 50a1532801 Implementing opfunc_instanceof using ecma_op_has_instance for [[HasInstance]] call 2014-08-22 15:39:23 +04:00
Ruben Ayrapetyan 7a20454047 Using ToString for property name conversion in opfunc_in 2014-08-22 15:26:05 +04:00
Ruben Ayrapetyan b1b6ae5a41 Partial implementation of [[HasInstance]] ecma-object's operation 2014-08-22 15:24:09 +04:00
Ruben Ayrapetyan 9cc27115fa Using ToString for property name conversion in opfunc_getter, opfunc_setter 2014-08-22 15:07:21 +04:00
Ruben Ayrapetyan f7cdb454ed Implementing ToString operation (ecma_op_to_string) 2014-08-22 14:40:58 +04:00
Ruben Ayrapetyan 148d9c4cb6 Disabling creation of testing notes during pre-push testing 2014-08-21 20:14:54 +04:00
Ruben Ayrapetyan 7d38fee700 Implementing comparison of ecma-strings for different types of string containers. 2014-08-21 19:54:11 +04:00
Ruben Ayrapetyan bb55d895c4 ./tools/pull.sh: pulling notes with git pull --rebase. tools/push.sh: make pull just before pushing; pushing master and notes with one command. 2014-08-21 18:21:35 +04:00
Ruben Ayrapetyan 2851c59d97 Add noopt=1 option to override OPTION_OPTIMIZE to disable. 2014-08-21 17:48:26 +04:00
Ruben Ayrapetyan 902f8c3414 Reducing build time: make debug.linux 8.778s -> 6.426s; make unittests: 32.230s -> 9.259s. 2014-08-21 17:28:14 +04:00
Ruben Ayrapetyan 616c96d3bb Implementing ecma_string_to_zt_string for number-represented string and strings that are stored in literal table 2014-08-21 16:46:45 +04:00
Ruben Ayrapetyan a96705701d Implementing prototype of ToString (Number) routine - ecma_number_to_zt_string; adding unit tests for the routine. 2014-08-21 14:43:43 +04:00
Ruben Ayrapetyan 5095bd31c9 Ecma-number decoding helpers 2014-08-20 19:20:03 +04:00
Ruben Ayrapetyan 284e7fc91b Renaming prop_access opcode to prop_getter; introducing prop_setter opcode; implementing property getter/setter opcode handlers. 2014-08-20 16:34:03 +04:00
Ruben Ayrapetyan fe34bf7e01 Fixing: deallocation of number-represented ecma-string; [[Get]] of Arguments object for index arguments. 2014-08-20 13:47:51 +04:00
Ruben Ayrapetyan f9ff4e1ba3 Reducing includes of system headers in jerry-libc.c (LIBC_RAW). 2014-08-19 20:51:30 +04:00
Ruben Ayrapetyan 50554a81e4 Implementing Arguments object construction, [[Get]], [[GetOwnProperty]], [[DefineOwnProperty]], [[Delete]] routines. 2014-08-19 19:17:03 +04:00
Ruben Ayrapetyan d5f50ebd04 Add dbgsyms=1 option to override OPTION_DEBUG_SYMS to enable, OPTION_STRIP to disable. 2014-08-19 19:17:03 +04:00
Ruben Ayrapetyan d393d0c041 Fixing check of git push status code in tools/push.sh 2014-08-18 21:14:35 +04:00
Ruben Ayrapetyan 9d33a91822 Storing literals' indexes instead of literals' contents in ecma-strings if possible. 2014-08-18 20:52:02 +04:00
Ruben Ayrapetyan 8bc41358ec Replacing const ecma_char_t* with ecma_string_t*; supporting number-represented string in ecma_string_t. 2014-08-18 18:34:34 +04:00