Commit Graph
100 Commits
Author SHA1 Message Date
Ruben Ayrapetyan 34430f0831 Passing object to named property free routines.
Adding argument, pointing to object that contains the property to be freed, to ecma_free_property, ecma_free_named_data_property and ecma_free_named_accessor_property.
Also, adding static qualifier to ecma_free_named_data_property, ecma_free_named_accessor_property and ecma_free_internal_property.
2014-11-17 17:06:06 +03:00
Ruben Ayrapetyan 7bb6c6bc84 Removing debug_release.* build targets. 2014-11-17 13:52:22 +03:00
Ruben Ayrapetyan 44eca8e207 Fixing JERRY_ASSERT macro for JERRY_NDEBUG build mode.
The macro under !JERRY_NDEBUG was evaluting it's argument and called jerry_assert_fail
if the argument was evaluated to false. Under JERRY_NDEBUG the macro still
was evaluating it's argument but jerry_assert_fail wasn't called anyway.

Now macro doesn't evaluate it's argument under JERRY_NDEBUG build.
2014-11-17 12:52:43 +03:00
Ruben Ayrapetyan 857e66fb98 Revert "Calling routine for instantiating built-ins' properties only if property name is a magic string."
Reverting commit 1dd7d626967110c3a0f14c40479bc054baf04b3f because of performance degradation on ARM Linux.

The degradation requires further investigation.
2014-11-14 18:04:45 +03:00
Ruben Ayrapetyan 82fe067fc9 Calling routine for instantiating built-ins' properties only if property name is a magic string. 2014-11-14 14:40:36 +03:00
Ruben Ayrapetyan dd1e9ca3e4 Improving performance of ecma_is_string_magic. 2014-11-14 14:40:30 +03:00
Ruben Ayrapetyan 2e94dc1341 Fixing an issue introduced in commit 4b3385fb920a60c9d7db66f9798355430ca4036a (restoring a check for NULL pointer). 2014-11-13 20:57:11 +03:00
Ruben Ayrapetyan 477a694622 Introducing ECMA_GET_NON_NULL_POINTER macro that is ECMA_GET_POINTER without NULL pointer check.
Replacing invocations of ECMA_GET_POINTER passing non-NULL argument with introduced ECMA_GET_NON_NULL_POINTER.
2014-11-13 19:09:13 +03:00
Ruben Ayrapetyan 0e10e97120 Returning bool value instead of simple boolean completion value from ecma_op_has_binding. 2014-11-13 18:08:23 +03:00
Ruben Ayrapetyan 1fae7645af Splitting ecma_op_get_value and ecma_op_put_value.
Splitting each of ecma_op_get_value and ecma_op_put_value to two routines:
 - for lexical environment or undefined bases (lex_env_base suffix);
 - for object bases (object_base suffix).
2014-11-13 15:45:47 +03:00
Ruben Ayrapetyan 11f0cf9a2d Performing do_strict_eval_or_arguments_check check only under !JERRY_NDEBUG. 2014-11-13 14:28:45 +03:00
Ruben Ayrapetyan 83c8007437 Compacting ecma_reference_t. 2014-11-12 21:35:21 +03:00
Ruben Ayrapetyan 44ade941b1 Showing STM32F4 binary size notes in tools/log.sh. 2014-11-12 20:42:20 +03:00
Ruben Ayrapetyan c5cc82d793 Adding mem_stats build modifier. 2014-11-12 15:46:15 +03:00
Ruben Ayrapetyan 804af937d8 Fixing !MEM_STATS build. 2014-11-12 15:41:13 +03:00
Ruben Ayrapetyan d93a4ec36c Replacing switches with pointer tables in some ecma_op_object_* routines. 2014-11-12 15:17:20 +03:00
Ruben Ayrapetyan afe242e7a3 Adding __attribute_pure__ and __attribute_const__ to some routines that operate on bit-fields. 2014-11-11 19:25:49 +03:00
Ruben Ayrapetyan bd60d1874b Implementing resize of heap blocks.
- adding mem_heap_try_resize_block routine that tries to resize
   block using free space that is located right after the resized block;
 - placing long-term blocks from start of heap space and short-term - from end
   of the space to increase probability of success of resizing just allocated
   long-term block;
 - adding mem_heap_try_resize_block invocation to 'test_heap' unit test.
2014-11-11 15:44:31 +03:00
Ruben Ayrapetyan 4875762cfc Showing ARM Linux binary size notes in tools/log.sh. 2014-11-10 18:25:21 +03:00
Ruben Ayrapetyan 7c488ea11a Fixing tests of internal test suite. 2014-11-06 17:47:36 +03:00
Ruben Ayrapetyan e33e6a77cb Adding tests that depend on number precision to tests/jerry-test-suite/precommit_test_list. 2014-10-31 21:29:30 +03:00
Ruben Ayrapetyan 8a5b1148bc Storing magic string identifier in ecma-string descriptor instead of copying magic string's characters to the descriptor or to the heap. 2014-10-31 21:16:21 +03:00
Ruben Ayrapetyan 4d04cb4658 Removing tests that depend on features, which are unsupported in Compact Profile minimal build, from tests/jerry-test-suite/compact_profile_list list. 2014-10-31 21:05:41 +03:00
Ruben Ayrapetyan 843305fb48 Fixing some assertions in src/libecmaobjects/ecma-helpers-string.c. 2014-10-31 20:51:02 +03:00
Ruben Ayrapetyan c0a6ae3eff - Smaller but not precise conversion between strings and numbers under
CONFIG_ECMA_NUMBER_TYPE==CONFIG_ECMA_NUMBER_FLOAT32 (float32 mode);
- float64 mode by default if not CompactProfile-mode;
- CompactProfile-mode for MCU builds.
2014-10-31 20:44:27 +03:00
Ruben Ayrapetyan 05cf2dbe04 Providing cp_minimal build mode.
In the mode built-in objects except Global, Object, Object.prototype, Function,
Function.prototype, [[ThrowTypeError]] and CompactProfileError are disabled.

Making default builds (without cp cp_minimal modes set) to not define CONFIG_ECMA_COMPACT_PROFILE.
Removing some tests that depend on 'eval'-like functionality or CompactProfileError built-in from pre-commit testing.
2014-10-31 18:37:55 +03:00
Ruben Ayrapetyan 73084cb976 Fixing GetBindingValue operation for immutable bindings. 2014-10-31 16:03:32 +03:00
Ruben Ayrapetyan 5c4d2085a1 Fixing build without CONFIG_ECMA_COMPACT_PROFILE. 2014-10-31 16:02:30 +03:00
Ruben Ayrapetyan 5c4d73f4a3 Fixing Ctrl-C handling in tools/push.sh. 2014-10-30 21:25:48 +03:00
Ruben Ayrapetyan bc484e2048 Parallel tests run in tools/run_test_suite_test262.sh. 2014-10-30 21:25:48 +03:00
Ruben Ayrapetyan 290f6a7551 Passing file with test at first and sta-jerry.js as second in test262 runner.
This is necessary, because 'use strict' directive in test, if any, should appear at beginning of the code.
2014-10-30 21:25:47 +03:00
Ruben Ayrapetyan b4bd0bfb4c Correctly setting [[Extensible]] property of built-in objects. 2014-10-30 19:39:54 +03:00
Ruben Ayrapetyan bd5f4c0c69 Adding test for some limitations that take effect in strict mode. 2014-10-30 18:22:52 +03:00
Ruben Ayrapetyan bb6583faa7 Fixing do_strict_eval_arguments_check helper. 2014-10-30 17:25:30 +03:00
Ruben Ayrapetyan ac710dd0b5 Implementing [[ThrowTypeError]] built-in Function object. 2014-10-30 17:22:33 +03:00
Ruben Ayrapetyan 4625d5b90a Changing value of CompactProfileError built-in's 'length' property to 0. 2014-10-30 17:22:33 +03:00
Ruben Ayrapetyan 90dfee3cdb Updating tools/run_test_suite_test262.sh to handle tests marked '@negative'. 2014-10-30 16:06:57 +03:00
Ruben Ayrapetyan 4160262ce8 Implementing EvalError, RangeError, SyntaxError, URIError built-ins and corresponding prototype built-in objects. 2014-10-30 14:28:44 +03:00
Ruben Ayrapetyan 66cb7e316d Implementing ReferenceError and ReferenceError.prototype built-ins. 2014-10-29 21:28:56 +03:00
Ruben Ayrapetyan 6991b26e04 Implementing TypeError and TypeError.prototype built-ins. Fixing Error.prototype.toString implementation. 2014-10-29 21:15:36 +03:00
Ruben Ayrapetyan 4e6f5c7716 Implementing Error and Error.prototype built-in objects. 2014-10-29 18:49:31 +03:00
Ruben Ayrapetyan ed08fe9983 Full names of magic string identifiers in src/libecmaobjects/ecma-magic-strings.inc.h 2014-10-29 17:23:43 +03:00
Ruben Ayrapetyan a74c77a1d5 Arrangement of built-in objects implementation (description of built-ins with *.inc.h headers, reducing code duplication). 2014-10-29 15:46:31 +03:00
Ruben Ayrapetyan 6078a4c854 Describing Boolean.prototype with src/libecmabuiltins/ecma-builtin-boolean-prototype.inc.h header. 2014-10-28 20:38:26 +03:00
Ruben Ayrapetyan f9e809e2e8 Removing ecma_builtin_*_get_routine_parameters_number routines. 2014-10-28 20:12:03 +03:00
Ruben Ayrapetyan 87310e43c6 On-demand built-ins instantiation. 2014-10-28 17:52:07 +03:00
Ruben Ayrapetyan e35ec87209 Making built-ins' property numbers to be stored as static const instead of extern const. 2014-10-28 17:32:31 +03:00
Ruben Ayrapetyan 26012e098f Moving magic strings definitions to ecma-magic-strings.inc.h. 2014-10-28 16:30:42 +03:00
Ruben Ayrapetyan 459750b1d0 Implementing routine for copying ecma-string and using it to duplicate ecma-string upon it's reference counter overflow. 2014-10-28 14:52:40 +03:00
Ruben Ayrapetyan fc751b0f15 Arranging JERRY_UNIMPLEMENTED macro usages and adding comments to each invocation of the macro. 2014-10-27 19:48:03 +03:00
Ruben Ayrapetyan 69624e4de2 Fixing search of shortest representation in ecma_number_to_zt_string.
Fixing right shift operation for big integers.
2014-10-27 15:34:33 +03:00
Ruben Ayrapetyan f0ab69b01a Replacing 96-bit integer with 128-bit integer in ecma_number_to_zt_string and ecma_zt_string_to_number conversion routines. 2014-10-24 23:06:25 +04:00
Ruben Ayrapetyan b773ef074c Fixing exception handling in ecma_op_to_number. 2014-10-24 21:58:53 +04:00
Ruben Ayrapetyan e11f73df64 Improving precision in ecma_number_to_zt_string. 2014-10-24 20:39:59 +04:00
Ruben Ayrapetyan 82e8895b4c Fixing ToInt32 conversion routine. 2014-10-24 20:39:59 +04:00
Ruben Ayrapetyan 904be9ece6 Fixing ecma_zt_string_to_number for '-0' string. 2014-10-24 20:39:59 +04:00
Ruben Ayrapetyan bf9ef27e2f Removing two tests that fail because of float32 precision limitations from tests/jerry-test-suite/precommit_test_list. 2014-10-24 20:39:41 +04:00
Ruben Ayrapetyan 0016adf957 Revert "Removing three tests that fail because of float32 precision limitations from tests/jerry-test-suite/precommit_test_list."
This reverts commit 7761650a96460ab39381d3b8983132b05364a489.
2014-10-24 20:38:41 +04:00
Ruben Ayrapetyan ed32abb011 Removing three tests that fail because of float32 precision limitations from tests/jerry-test-suite/precommit_test_list. 2014-10-24 20:29:29 +04:00
Ruben Ayrapetyan e4629cca51 Improving precision of number to zt-string conversion, adding search for the shortest representation of number during the conversion. 2014-10-24 19:15:31 +04:00
Ruben Ayrapetyan 4f68e43b7d Adding debug.linux-float64 to pre-commit testing. 2014-10-23 20:34:58 +04:00
Ruben Ayrapetyan 1a6ca3108b Turning some strict comparisons in tests/jerry/math_log.js and tests/jerry/sqrt.js into range check comparisons. 2014-10-23 20:34:43 +04:00
Ruben Ayrapetyan 81ae0010ac Introducing float64 mod for host build targets that configures ecma-number to be float64 instead of default float32. 2014-10-23 19:27:43 +04:00
Ruben Ayrapetyan 2f16000949 Accessing ecma-number components with new ecma_number_pack / ecma_number_unpack helpers instead of ecma_number_fields_t structure that used GCC extension in CONFIG_ECMA_NUMBER_FLOAT64 mode. 2014-10-23 18:41:49 +04:00
Ruben Ayrapetyan feedb37b20 Replacing way to specify ecma-char encoding and ecma-number type: instead of defining it like CONFIG_ECMA_NUMBER_FLOAT32 now it should be defined like CONFIG_ECMA_NUMBER_TYPE=CONFIG_ECMA_NUMBER_FLOAT32. 2014-10-23 18:33:10 +04:00
Ruben Ayrapetyan e4a7d1c8ac Introducing nostaticcheck=1 build option for disabling cppcheck and vera++ checks during the build. 2014-10-23 16:55:59 +04:00
Ruben Ayrapetyan 33aeac458a Removing tests/jerry-test-suite/15/15.07/15.07.03/15.07.03.02/15.07.03.02-002.js and tests/jerry-test-suite/15/15.07/15.07.03/15.07.03.02/15.07.03.02-003.js from tests/jerry-test-suite/float_precision_exceptions_list. 2014-10-23 15:46:46 +04:00
Ruben Ayrapetyan 7f4a70ccb5 Improving precision of zt-string to ecma-number conversion. 2014-10-23 15:46:42 +04:00
Ruben Ayrapetyan ae048a7630 Running internal test suite during precommit testing. 2014-10-20 21:45:21 +04:00
Ruben Ayrapetyan 2d032a30dc Extracting ecma_number_trunc helper from ecma_op_number_remainder. 2014-10-20 20:48:36 +04:00
Ruben Ayrapetyan 42abd7d63a Moving ecma-number mathematical constants to src/libecmaobjects/ecma-globals.h. 2014-10-20 20:48:36 +04:00
Ruben Ayrapetyan 491893efb9 Fixing ecma_number_substract. 2014-10-20 20:44:58 +04:00
Ruben Ayrapetyan 3eed2d0d4c Renaming ecma_op_number_{add,subtract,multiply,divide} -> ecma_number_{add,subtract,multiply,divide}.
Moving ecma_number_{add,subtract,multiply,divide} to src/libecmaobjects/ecma-helpers-number.c.
Moving abs, sqrt, ln, exp, calculation helpers from src/libecmabuiltins/ecma-builtin-math-object.c to src/libecmaobjects/ecma-helpers-number.c.
2014-10-20 18:48:10 +04:00
Ruben Ayrapetyan a8ed76591a Removing tests/jerry-test-suite/15/15.03/15.03.04/15.03.04.02/15.03.04.02-002.js that depends on
TypeErro built-in support from CompactProfile-compatible test list (tests/jerry-test-suite/compact_profile_list)
and adding it to tests/jerry-test-suite/unsupported_list.
2014-10-20 17:31:41 +04:00
Ruben Ayrapetyan 1796138a27 Fixing some tests from internal test suite. 2014-10-20 17:31:41 +04:00
Ruben Ayrapetyan 512d816568 Fixing Number.MIN_VALUE and Number.MAX_VALUE values for CONFIG_ECMA_NUMBER_FLOAT64 mode. 2014-10-20 17:31:41 +04:00
Ruben Ayrapetyan 3f54dc16e0 Removing tests/jerry-test-suite/15/15.05/15.05.04/15.05.04.07/15.05.04.07-003.js that depends on String.prototype.indexOf support from
CompactProfile-compatible test list (tests/jerry-test-suite/compact_profile_list)
and adding it to tests/jerry-test-suite/unsupported_list.
2014-10-20 17:31:40 +04:00
Ruben Ayrapetyan 9c20969cfc Fixing some tests from internal test suite. 2014-10-20 17:31:40 +04:00
Ruben Ayrapetyan c7f1e6b007 Adding three tests that depend on Number.prototype.toString support to tests/jerry-test-suite/unsupported_list and removing them from CompactProfile compatible tests list (tests/jerry-test-suite/compact_profile_list). 2014-10-20 17:31:40 +04:00
Ruben Ayrapetyan b52ca8cca5 Fixing Number.prototype.toString. 2014-10-20 17:27:51 +04:00
Ruben Ayrapetyan 8f5160d6bf Implementing ToObject for number arguments. 2014-10-20 15:39:09 +04:00
Ruben Ayrapetyan 1b74687989 Implementing ToObject for boolean arguments. 2014-10-20 15:26:24 +04:00
Ruben Ayrapetyan f666750ce7 List of internal tests suite's tests that are not excluded by Compact Profile. 2014-10-20 14:38:41 +04:00
Ruben Ayrapetyan ba4dca2e98 Fixing some tests from internal test suite. 2014-10-20 14:15:01 +04:00
Ruben Ayrapetyan 69a1cab26b Update unsupported_list: removed 'float32 precision' block and added 'other built-ins' block. 2014-10-20 13:55:49 +04:00
Ruben Ayrapetyan 2d5a5c37b0 Fixing number bitwise operations. 2014-10-20 13:47:21 +04:00
Ruben Ayrapetyan 9e890827f7 Fixing build in CONFIG_ECMA_NUMBER_FLOAT64 mode. 2014-10-20 13:46:41 +04:00
Ruben Ayrapetyan 6ebd96f903 Improving precision of string to number conversion in ecma_zt_string_to_number. 2014-10-20 13:46:13 +04:00
Ruben Ayrapetyan 8e1156bd9e Support of STM32F3 board. 2014-10-17 21:48:09 +04:00
Ruben Ayrapetyan 9c1428de29 Implementing instantiation of prototype property Object built-in object. 2014-10-16 21:47:25 +04:00
Ruben Ayrapetyan 03df80efe0 Fixing a test from internal test suite. 2014-10-16 21:46:37 +04:00
Ruben Ayrapetyan e54023caf2 Throwing CompactProfileError in cases required by Compact Profile. 2014-10-16 21:26:23 +04:00
Ruben Ayrapetyan dce3e5db59 Removing assertions about fitting of uint32_t and int32_t to ecma_number_t as they are incorrect under CONFIG_ECMA_NUMBER_FLOAT32. 2014-10-16 20:24:05 +04:00
Ruben Ayrapetyan 6520779f46 Initialization of [[PrimitiveValue]] properties of built-in String.prototype, Number.prototype and Boolean.prototype objects. 2014-10-16 20:17:29 +04:00
Ruben Ayrapetyan ed960b78db Introducing CompactProfileError built-in object. 2014-10-16 19:49:47 +04:00
Ruben Ayrapetyan fce52b42c5 Fixing incorrect comments in src/libecmabuiltins/ecma-builtin-boolean-object.c. 2014-10-16 19:46:07 +04:00
Ruben Ayrapetyan 18f442b09d Disabling output of file name, function name and line on abnormal engine termination under JERRY_NDEBUG. 2014-10-16 18:47:59 +04:00
Ruben Ayrapetyan 9c3c835a7e Implementing syscall invocation sequence for ARMv7 architecture.
Removing dependencies to third-party libc routine implementations.
Introducing __TARGET_HOST define for host (non-MCU) builds.
2014-10-16 18:39:56 +04:00
Ruben Ayrapetyan 8a58e0b9d5 Implementation of Boolean and Boolean.prototype built-in objects. 2014-10-16 14:45:55 +04:00
Ruben Ayrapetyan c231893b28 Implementation of Number built-in object and partial implementation of Number.prototype built-in object.
Fixing [[Prototype]] and [[Class]] properties of Array and String built-in objects.
2014-10-16 13:25:47 +04:00