Ruben Ayrapetyan
aa6a45962d
Reducing scope of variable in deserialize_num_by_id to satisfy cppcheck's requirements.
2014-09-17 15:37:39 +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
318a62e9b3
Adding debug.linux-valgrind.check and release.linux-musl-valgrind.check to precommit testing.
2014-09-17 12:56:48 +04:00
Ruben Ayrapetyan
6f23dd879d
Increasing test timeout for valgrind runs.
2014-09-17 12:56:16 +04:00
Ruben Ayrapetyan
64613b5513
Reducing number of iterations in tests/jerry/nested_function.js 10000 -> 1000.
2014-09-17 12:55:22 +04:00
Ilmir Usmanov
d4cd8be349
Fix asserts in opfunc_*jmp_down functions.
2014-09-16 22:36:26 +04:00
Ilmir Usmanov
e77bd4f4e5
Add try-catch-finally support: parse and generate opcodes for this construct
...
Fix varg generation: generate *_n opcodes with parameters in following meta opcodes
Add stack internal structure: dimanically allocated stack.
Use dynamically allocated memory in parser: every local and global variables are stored in dinamically allocated stacks.
Use dynamically allocated memory in serializer: opcodes are also stored in stack.
Change is_true_jmp and is_false_jmp opcodes to relative.
Change *jmp* opcodes to be able to store opcode_counter_t instead of idx_t.
2014-09-16 21:32:59 +04:00
Ruben Ayrapetyan
cd41b236d9
Statistics of memory usage during interpretation.
2014-09-16 21:19:07 +04:00
Ruben Ayrapetyan
e8991abadb
Fixing __printf for format strings with '+' specifier like '%+5d'.
2014-09-16 20:53:02 +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
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