Ruben Ayrapetyan
810e3c7ae8
Implementation of Function.prototype.call.
2015-04-10 10:24:27 +03:00
Ruben Ayrapetyan
18079fb4d3
Implementing API for invocation of a function object as a constructor.
2015-04-10 09:55:04 +03:00
Ruben Ayrapetyan
36424c0fd2
Removing contexts arguments from Jerry API; introducing jerry_push_ctx and jerry_pop_ctx interfaces; putting context-related API part under #ifdef CONFIG_JERRY_ENABLE_CONTEXTS (supposed to be implemented later, when becomes necessary).
2015-04-08 15:37:23 +03:00
Andrey Shitov
7c67606b00
Parser refactoring. Remove deserializer notion.
2015-04-07 13:05:19 +03:00
Ruben Ayrapetyan
469ef4e622
Implementing API for associating native handle (uintptr_t) values with JS objects.
2015-04-07 13:01:01 +03:00
Ruben Ayrapetyan
fc2dbf3b0b
Introducing mem_heap_get_block_start routine for determining beginning of data space in a heap-allocated block.
2015-04-07 12:58:15 +03:00
Ruben Ayrapetyan
4dbc6a9d1a
Implementing [[Construct]] for external function objects.
2015-04-06 12:31:29 +03:00
Ruben Ayrapetyan
83730cd6bb
Implementing dispatcher for calling native handlers associated with external function objects; implementing interface for unified storage of native pointers in ecma objects.
2015-04-03 23:38:52 +03:00
Ilyong Cho
23ade8f4ff
wip: Implementing external function api
2015-04-03 18:11:21 +09:00
Ruben Ayrapetyan
eb3686a49d
Adding jerry_api_is_constructor interface that check if specified object is a function object that implement [[Construct]] method; changing jerry_api_is_function to recognize bound and built-in functions; optimizing jerry_api_call_function.
2015-04-01 12:39:29 +03:00
Ilyong Cho
3c2009d331
Adding Jerry api for calling function with specific this binding.
2015-04-01 11:06:20 +09:00
Ruben Ayrapetyan
33cfaa73b3
Implementation of unimplemented Jerry API parts; adding Jerry API unit test based on test prepared by Ilyong.
2015-03-30 20:54:55 +03:00
Ruben Ayrapetyan
6b0b669c14
Support passing of string and object arguments to plugins' bound functions.
2015-03-25 18:35:37 +03:00
Ruben Ayrapetyan
79695bf3cd
Extension description syntax; extension instantiation, field values and calls with arguments (except strings); example of a simple extension.
...
String arguments support is supposed to be added in a subsequent commit.
2015-02-25 16:51:21 +03:00
Ruben Ayrapetyan
bb18970151
Changing GC mark phase to be non-recursive. It is noticeably slower on some test cases, but doesn't cause stack overflow.
2015-02-19 14:34:34 +03:00
Ruben Ayrapetyan
f42faabe89
Fixing style according to rules defined in vera++ scripts.
2015-02-17 19:47:00 +03:00
Ruben Ayrapetyan
92a9d6db45
Moving precommit testing scripts from Makefile[.mk] to tools/runners/run-precommit-check-for-target.sh and tools/precommit.sh; deleting Makefile.mk.
2015-02-17 15:28:13 +03:00
Ruben Ayrapetyan
03c81e96e9
Turning on unit tests build and run during precommit.
2015-02-16 19:35:15 +03:00
Ruben Ayrapetyan
43ea53b1d7
Jerry is now split to several components: core, libc, plugins.
...
The components are build independently and then are linked with main module corresponding to target platform.
Core is supposed to be platform-independent, while libc and plugins are dependent on specific architecture / platform.
The commit disables unit tests building and running during precommit.
That is supposed to be fixed in a subsequent commit.
Also, the commit disables building and running valgrind targets during precommit.
Build is supposed to be turned on by an option that should be introduced later.
Valgrind-checked runs are supposed to be performed in asynchronous mode.
2015-02-13 21:54:27 +03:00
Ruben Ayrapetyan
7e4c16e4e6
Rename Jerry's libc functions: __function_name -> function_name.
2015-02-12 20:15:56 +03:00
Ruben Ayrapetyan
718bbe26f9
Refinement of project structure.
...
- components renaming and moving:
- liballocator -> mem;
- libcoreint -> vm;
- libecmaobjects -> ecma/base;
- libecmaoperations -> ecma/operations;
- libecmabuiltins -> ecma/builtins;
- libjsparser -> parser/js;
- libintstructs -> parser/collections;
- liboptimizer -> parser/js;
- libperipherals -> ../plugins/lib_device_stm;
- libruntime -> jrt;
- generated.h now is created as intermediate during build;
- benchmarks -> tests/benchmarks;
- docs -> documentation;
- demo-applications removed (loop_demo.js -> tests/blinky.js).
2015-02-10 19:00:32 +03:00
Ruben Ayrapetyan
fa6402334f
Renaming sources *.c -> *.cpp.
2015-02-09 18:21:44 +03:00
Ruben Ayrapetyan
005b5370fc
Switching to g++ and corresponding changes according to C++ requirements.
2015-01-16 17:27:02 +03:00
Ruben Ayrapetyan
557df54f9d
Registering temporary variables arrays in ecma-stack frames, starting mark traverse from them during GC.
2015-01-15 18:45:37 +03:00
Ruben Ayrapetyan
6bb39bb8ea
Introducing 'try to give memory back' callback for heap allocator to use upon allocation request that can not be satisfied by the allocator.
2014-12-18 22:25:22 +03:00
Ilmir Usmanov
c1ebb8db50
Fix expression statement parsing in case of statement starts with keyword
2014-12-12 16:36:18 +03:00
Ilmir Usmanov
4b7871bdde
Fix 'op=' assignment bytecode dumping in case of arrays
2014-12-10 19:20:33 +03:00
Ilmir Usmanov
dc8ab27900
Split parser into parser itself, opcodes dumper and syntax errors checker.
...
Add internal hash map of literal indexes:
In this hash map key is pair of block number and literal's unique identifier in the block, and the value is a literal index that unique in the whole program.
Block is a continues array of opcodes. So, bytecode is splitted into blocks.
Each block has its own uid counter. To get literal index the interpreter looks up it in the hash map.
Thus, now JS program is able to have more than 255 identifiers/string literals.
The first 128 (0-127) uids are reserved for block's uid counter, the other 128 (128-255) are reserved for tmp variables.
2014-12-10 18:31:59 +03:00
Ilmir Usmanov
fc9e83d290
Remove obsolete unit tests.
2014-12-10 18:29:43 +03:00
Ruben Ayrapetyan
d2f6b36cf7
Implementing Math.sin and Math.cos built-in routines.
2014-12-04 11:39:23 +03:00
Ruben Ayrapetyan
c21e186f2c
Static definition of pool's area size and number of chunks in a pool; alignment of mem_block_header_t and mem_pool_state_t to MEM_ALIGNMENT.
2014-11-26 19:23:26 +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
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
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
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
bd5f4c0c69
Adding test for some limitations that take effect in strict mode.
2014-10-30 18:22:52 +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
Ilmir Usmanov
4735570b31
Add SyntaxErrors on parsing ObjectDeclarations.
2014-10-28 13:39:25 +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
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
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