Commit Graph

  • c2ca158d19 Implementing Array built-in. Ruben Ayrapetyan 2014-09-25 14:58:45 +04:00
  • 448b67f6dd Fixing memory leak and type of completion value in implementation of Object.defineProperty built-in. Ruben Ayrapetyan 2014-09-25 14:19:54 +04:00
  • c06c6a5ed8 Introducing ecma_free_property_descriptor. Ruben Ayrapetyan 2014-09-25 14:19:09 +04:00
  • 4c5c48eef2 Magic strings for Array built-in. Ruben Ayrapetyan 2014-09-25 14:18:07 +04:00
  • 679d86dc8f Passing 'this' argument to built-in routines. Ruben Ayrapetyan 2014-09-24 23:19:32 +04:00
  • 3efdcfa2ea Implementing String built-in object. Ruben Ayrapetyan 2014-09-24 21:40:06 +04:00
  • c4ec42635b Implementing String's constructor and [[GetOwnProperty]]. Ruben Ayrapetyan 2014-09-24 21:25:16 +04:00
  • 10ee3c4fb1 Implementing Math.pow built-in. Ruben Ayrapetyan 2014-09-24 18:49:41 +04:00
  • 44a2f7ba39 Implementing Math.log built-in. Ruben Ayrapetyan 2014-09-24 17:10:30 +04:00
  • 05a2224faa Fix parsing of assignment expressions without assignment operator. Ilmir Usmanov 2014-09-24 16:53:58 +04:00
  • 0a4616b65f Remove call_0, call_1, func_decl_0, func_decl_1, func_decl_2 opcodes. Ilmir Usmanov 2014-09-24 16:33:06 +04:00
  • 85a3a9a690 Implementing Math.exp built-in. Ruben Ayrapetyan 2014-09-24 16:01:42 +04:00
  • 0738ec6a54 Add generation of prop_setter. Ilmir Usmanov 2014-09-24 15:30:37 +04:00
  • 25ec2bea17 Refactoring function call operations to return 'normal' completion values instead of 'return' completion values. Removing ECMA_FUNCTION_CALL macro. Ruben Ayrapetyan 2014-09-24 14:21:03 +04:00
  • 3a31bf6eb1 Adding 'print' native call. Ruben Ayrapetyan 2014-09-24 14:22:57 +04:00
  • 8bcc37d0f8 Fix prop_getter, construct_n, array_n generation. Ilmir Usmanov 2014-09-23 22:53:20 +04:00
  • 9b69ea4d6d Implementing Math.sqrt. Ruben Ayrapetyan 2014-09-23 21:56:44 +04:00
  • f17ca4c455 Fix post_* opcodes generation Ilmir Usmanov 2014-09-23 20:31:58 +04:00
  • 34a5e00b7f Implementing Math.random. Ruben Ayrapetyan 2014-09-23 20:25:45 +04:00
  • d26b7f9f4e Fix reg_var_decl generation. Ilmir Usmanov 2014-09-23 20:05:10 +04:00
  • 6c422fec2e Implementing Math.min and Math.max built-ins. Ruben Ayrapetyan 2014-09-23 18:44:27 +04:00
  • c5fd835931 Implementing Math.abs and Math.round built-ins. Ruben Ayrapetyan 2014-09-23 17:21:46 +04:00
  • 4798807451 Fixing remainder calculation operation (ecma_op_number_remainder). Ruben Ayrapetyan 2014-09-23 17:20:41 +04:00
  • 8a5b956e38 Simplify serializer/deserializer. Reduce memory usage in lexer. Create HashTable data structure. Finish preparations for introducing new strings addressation. Ilmir Usmanov 2014-09-23 16:39:30 +04:00
  • f237a8d5e1 Adding stubs for Math object's routines. Ruben Ayrapetyan 2014-09-23 16:23:19 +04:00
  • 288478926e Implementing Math object's value properties. Ruben Ayrapetyan 2014-09-23 15:32:32 +04:00
  • ae244f0148 Common built-in object's constructor. Ruben Ayrapetyan 2014-09-23 15:29:08 +04:00
  • fd7f153747 Additional assertions in jrt_{get/set}_bit_field_value. Ruben Ayrapetyan 2014-09-23 15:23:50 +04:00
  • 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). Ruben Ayrapetyan 2014-09-22 21:46:26 +04:00
  • 5f9a068a61 Adding magic strings for the Math object's properties names. Ruben Ayrapetyan 2014-09-22 21:34:11 +04:00
  • 615903dbf5 Fix call expression without args bytecode generation Ilmir Usmanov 2014-09-22 19:58:08 +04:00
  • 49486757ca Implementing 'Object.defineProperty' built-in routine. Ruben Ayrapetyan 2014-09-22 20:07:29 +04:00
  • 1e642fd527 Implementing ToPropertyDescriptor and FromPropertyDescriptor ECMA operations. Ruben Ayrapetyan 2014-09-22 19:31:35 +04:00
  • a287406e1f Implementing 'new Object(...)' built-in constructor. Ruben Ayrapetyan 2014-09-22 18:19:31 +04:00
  • d7314a7300 Adding stubs for the Object object. Ruben Ayrapetyan 2014-09-22 15:56:50 +04:00
  • a3ca61fe0e Setting Function's [[Get]] method to default [[Get]] method as they're behaviours for Function objects are equivalent. Ruben Ayrapetyan 2014-09-22 15:49:49 +04:00
  • 94f7f710a6 Fixing attributes of several properties of the Global object. Ruben Ayrapetyan 2014-09-22 15:35:35 +04:00
  • e55ceb22f5 Implementing [[HasInstance]] for non-bound functions. Ruben Ayrapetyan 2014-09-19 21:14:14 +04:00
  • 34984d31de Adding comment to parameter of ecma_number_make_infinity. Ruben Ayrapetyan 2014-09-19 18:13:39 +04:00
  • 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. Ruben Ayrapetyan 2014-09-19 18:10:49 +04:00
  • 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. Ruben Ayrapetyan 2014-09-19 17:51:40 +04:00
  • d44b13e0cd Adding magic strings for the Global object's properties names. Ruben Ayrapetyan 2014-09-19 17:45:52 +04:00
  • f478e161e6 Fixing ecma_string_to_zt_string and ecma_copy_zt_string_to_buffer routines. Ruben Ayrapetyan 2014-09-19 16:15:42 +04:00
  • 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. Ruben Ayrapetyan 2014-09-19 12:08:19 +04:00
  • 9a667596de Implementing constructor of Function object for built-in routines. Ruben Ayrapetyan 2014-09-18 19:48:43 +04:00
  • d9e0f2936d Adding jerry_unreachable and jerry_unimplemented routines that print file name and line for corresponding unreachable, unimplemented marks. Ruben Ayrapetyan 2014-09-18 17:08:32 +04:00
  • 55d9b12176 Introducing built-in routines dispatcher and stubs for the Global object's routines. Ruben Ayrapetyan 2014-09-18 16:20:20 +04:00
  • 30008f8dc5 Splitting ERR_GENERAL error code in ERR_FAILED_INTERNAL_ASSERTION and ERR_UNIMPLEMENTED_CASE; introducing ERR_FAILED_ASSERTION_IN_SCRIPT error code for handling non-zero script's exit values. Ruben Ayrapetyan 2014-09-18 13:59:51 +04:00
  • f402e42d2f Moving Global object related routines to libecmabuiltins component. Introducing ecma_init_builtins and ecma_finalize_builtins routines. Ruben Ayrapetyan 2014-09-18 13:55:56 +04:00
  • 11cf22f06c Introducing 'ecmabuiltins' component and interface for instantiating built-in properties. Ruben Ayrapetyan 2014-09-17 21:12:05 +04:00
  • 56e6d2a380 Add if_else.js test. Fix bytecode generation. Ilmir Usmanov 2014-09-17 20:21:17 +04:00
  • 2edc921be7 Introducing has_non_instantiated_built_in_properties flag in ecma_object_t and 'built-in function' object type. Ruben Ayrapetyan 2014-09-17 20:03:22 +04:00
  • 70cc5128cc Add test try_catch_finally.js. Fix parser and interpreter Ilmir Usmanov 2014-09-17 18:57:36 +04:00
  • 51b7dc0d69 Turning off performance measurement during pre-commit testing. Ruben Ayrapetyan 2014-09-17 18:04:53 +04:00
  • 24fc505440 Introducing ecma_is_magic_string routine. Ruben Ayrapetyan 2014-09-17 18:00:11 +04:00
  • 70d76efc98 Adding cppcheck utility to repository. Ruben Ayrapetyan 2014-09-17 15:02:16 +04:00
  • b5a579cc41 Pulling before pre-push testing instead of just before pushing in ./tools/push.sh. Ruben Ayrapetyan 2014-09-17 15:38:06 +04:00
  • aa6a45962d Reducing scope of variable in deserialize_num_by_id to satisfy cppcheck's requirements. Ruben Ayrapetyan 2014-09-17 15:37:39 +04:00
  • 59ef3bf074 Little refactoring of control paths in general objects' [[DefineOwnProperty]] to satisfy cppcheck's requirements. Ruben Ayrapetyan 2014-09-17 15:37:12 +04:00
  • 5df12d2e04 Fixing NULL pointer dereference in PutValue routine. Ruben Ayrapetyan 2014-09-17 15:24:48 +04:00
  • 318a62e9b3 Adding debug.linux-valgrind.check and release.linux-musl-valgrind.check to precommit testing. Ruben Ayrapetyan 2014-09-17 12:56:48 +04:00
  • 6f23dd879d Increasing test timeout for valgrind runs. Ruben Ayrapetyan 2014-09-17 12:56:16 +04:00
  • 64613b5513 Reducing number of iterations in tests/jerry/nested_function.js 10000 -> 1000. Ruben Ayrapetyan 2014-09-17 12:55:22 +04:00
  • d4cd8be349 Fix asserts in opfunc_*jmp_down functions. Ilmir Usmanov 2014-09-16 22:36:26 +04:00
  • 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. Ilmir Usmanov 2014-09-16 21:22:11 +04:00
  • cd41b236d9 Statistics of memory usage during interpretation. Ruben Ayrapetyan 2014-09-16 21:19:07 +04:00
  • e8991abadb Fixing __printf for format strings with '+' specifier like '%+5d'. Ruben Ayrapetyan 2014-09-16 20:53:02 +04:00
  • fbcd393962 Adding configuration flag indicating whether Global Environment is bound to Global Object or it is simple declarative lexical environment. Ruben Ayrapetyan 2014-09-08 19:11:40 +04:00
  • dafbaa742e Adding configuration option for ECMA exception support. Ruben Ayrapetyan 2014-09-08 19:09:34 +04:00
  • 4d34bab9a0 Adding memory leak checks to unit tests. Ruben Ayrapetyan 2014-09-05 20:35:33 +04:00
  • c5dd81cf76 Fixing memory leak in opfunc_throw. Ruben Ayrapetyan 2014-09-05 20:28:02 +04:00
  • 5a9d4563ec Fixing performance degradation that occured in commit 9b040f31d2a2e1e4d43dd347d5e81282997dd2b5. Ruben Ayrapetyan 2014-09-05 16:27:43 +04:00
  • b9fd80ce36 Fixing object declaration and function expression opcode handlers; adding unit test that declares object and operates on the object's properties. Ruben Ayrapetyan 2014-09-04 21:02:29 +04:00
  • 5630352f36 Adding arm-linux-perf notes ref to tools/pull.sh and tools/log.sh. Ruben Ayrapetyan 2014-09-04 17:29:54 +04:00
  • 3bb990d782 Fixing LIBC_MUSL build for ARM Linux host (adjusting heap limit under LIBC_MUSL). Ruben Ayrapetyan 2014-09-04 16:47:39 +04:00
  • 31b5451b50 Moving label descriptor from ecma_completion_value_t to separate structure on heap (fixing performance degradation that occured in commit 5d92544db57203603a6ed53b5c18562065a70b77). Ruben Ayrapetyan 2014-09-04 14:27:40 +04:00
  • 50371ddf20 Implementing Array construction routine; adding unit test on array operations. Ruben Ayrapetyan 2014-09-03 17:30:03 +04:00
  • 76de0e9a06 Improving precision of ecma_number_to_string in case number can be represented as UInt32. Ruben Ayrapetyan 2014-09-03 15:05:58 +04:00
  • b275218e63 Fixing [[DefineOwnProperty]] routine of general object. Ruben Ayrapetyan 2014-09-02 22:34:50 +04:00
  • d45748a001 Implementing [[Get]] routine for function objects. Ruben Ayrapetyan 2014-09-02 22:34:38 +04:00
  • 57058c30ef Implementing rest unimplemented cases in ecma comparison routines. Ruben Ayrapetyan 2014-09-02 22:18:28 +04:00
  • 3dc9a5838a Fixing ecma_uint32_to_string helper. Ruben Ayrapetyan 2014-09-02 21:55:04 +04:00
  • 9acbaafc8e Implementing ecma-strings relational comparison helper. Ruben Ayrapetyan 2014-09-02 21:08:22 +04:00
  • 0a6e1a83f8 Renaming ecma_compare_ecma_string_to_ecma_string to ecma_compare_ecma_strings. Ruben Ayrapetyan 2014-09-02 20:16:41 +04:00
  • 11d772fda4 Implementing unimplemented cases in ecma comparison routines. Ruben Ayrapetyan 2014-09-02 19:57:55 +04:00
  • c581f10b94 Changing return value of ecma_op_abstract_equality_compare to ecma_completion_value_t. Ruben Ayrapetyan 2014-09-02 19:07:43 +04:00
  • c9f954ec2e Implementing several unimplemented cases in ecma conversion routines. Ruben Ayrapetyan 2014-09-02 18:49:45 +04:00
  • aa86a3643b Implementing remainder operation according to ECMA. Checking that implementations of other arithmetic operations already conform to ECMA and removing corresponding TODOs from them. Ruben Ayrapetyan 2014-09-02 15:09:36 +04:00
  • afc21fad8e Simple implementation of string concatenations comparison. Ruben Ayrapetyan 2014-09-02 13:31:48 +04:00
  • 4d9602ba0d Supporting string concatenations that are longer than 64k. Ruben Ayrapetyan 2014-09-01 22:11:54 +04:00
  • 813831a23b Decimal conversion of Number to zt-string (still not precise enough). Zt-string copy and length calculation helpers. Ruben Ayrapetyan 2014-09-01 21:12:02 +04:00
  • e35f54fe86 Implementing ECMA String to Number conversion helper. Ruben Ayrapetyan 2014-08-29 22:46:38 +04:00
  • 23b62bce54 Replacing doxygen header for ECMA modules 'addtogroup ecma ---TODO---' -> 'addtogroup ecma ECMA'. Ruben Ayrapetyan 2014-08-29 18:35:44 +04:00
  • 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. Ruben Ayrapetyan 2014-08-29 18:21:22 +04:00
  • 32f20a02a3 Adding missing may_ref_younger flags updates and assertion check for the flags value. Ruben Ayrapetyan 2014-08-29 18:06:20 +04:00
  • 1d02085dc6 Packing ecma_object_t to 8 bytes. Ruben Ayrapetyan 2014-08-29 17:38:05 +04:00
  • 8e14f32806 Introducing getters/setters for ecma_object_t structure. Ruben Ayrapetyan 2014-08-29 15:53:07 +04:00
  • f7968e617d Adding several completion value construction and comparison helpers. Ruben Ayrapetyan 2014-08-29 12:51:06 +04:00
  • 164350b369 Introducing constructor for label completion values (for 'break' and 'continue' completion types). Ruben Ayrapetyan 2014-08-28 23:08:26 +04:00
  • 227c09fb3e Adding target counter and depth level to 'break' and 'continue' completion values. Ruben Ayrapetyan 2014-08-28 22:56:29 +04:00