Commit Graph

931 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
Ilmir Usmanov 8c7dc08d93 Add literals - replacements of strings and numbers in parser. 2014-10-31 21:22:52 +04: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
Ilmir Usmanov d8acb0b6e2 'undefined' is not literal, so dump it as identifier. 2014-10-30 19:48:06 +04: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
Ilmir Usmanov d5878132cc Dump 'use strict' prior to reg_var_decl. 2014-10-30 18:17:41 +04: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