Commit Graph
100 Commits
Author SHA1 Message Date
Ruben Ayrapetyan b81e535e1c Providing interface for getting reference to Global lexical environment. 2015-04-18 21:46:13 +03:00
Ruben Ayrapetyan 3218a87a7f Replacing 'uname -p' with 'uname -m' in Makefile. 2015-04-13 20:38:02 +03:00
Ruben Ayrapetyan 259e871681 Fix of uninitialized value warning in ecma_builtin_jerry_dispatch_routine (converting switch-case to if chain). 2015-04-13 16:20:48 +03:00
Ruben Ayrapetyan 8ee3ee5e4c Fix of exit completion value handling in ECMA_TRY_CATCH. 2015-04-10 11:36:01 +03:00
Ruben Ayrapetyan 9262a08835 Printing names of branches in 'make log'. 2015-04-10 11:35:36 +03:00
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
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 6594a7359b Supporting return values in functions of plugins. 2015-04-07 12:42:55 +03:00
Ruben Ayrapetyan c350a2bade Fixing jerry_api_set_object_field_value and jerry_api_call_function descriptions. 2015-04-06 16:27:47 +03:00
Ruben Ayrapetyan 4dbc6a9d1a Implementing [[Construct]] for external function objects. 2015-04-06 12:31:29 +03:00
Ruben Ayrapetyan 8e4bcca568 Jerry API for creating external function objects bound to native code. 2015-04-03 23:42:49 +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
Ruben Ayrapetyan 5611c16117 Fixing assertion in jrt_set_bit_field_value. 2015-04-03 23:14:23 +03:00
Ruben Ayrapetyan c81651dbe9 Introducing mem_cpointer_t type for compressed pointers. 2015-04-02 16:56:36 +03:00
Ruben Ayrapetyan 3da56908aa Fixing ecma_builtin_jerry_dispatch_routine: returning 'undefined' instead of 'empty' completion value. 2015-04-02 16:27:16 +03:00
Ruben Ayrapetyan a32b149a1a Fixing handling of 'undefined' value in jerry_api_convert_ecma_value_to_api_value. 2015-04-02 15:52:25 +03:00
Ruben Ayrapetyan 28f6741358 Jerry API development.
Details:
  - support of this binding in function calls;
  - jerry_api_is_function and jerry_api_is_constructor interfaces.
2015-04-02 13:18:59 +03:00
Ruben Ayrapetyan bfb23ee967 Changing tools/runners/run-test-suite-test262.sh to produce combined report and output ok / fail statistics. 2015-04-01 18:12:15 +03:00
Ruben Ayrapetyan 9ef65ef45a Fixing missing initializer warning for unused fields in extension declarations. 2015-04-01 17:27:49 +03:00
Ruben Ayrapetyan 90f017d000 Adding --graph and --branches options to git log invocation in tools/log.sh ('make log'). 2015-04-01 13:45:29 +03: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
Ruben Ayrapetyan ef2265ee41 Jerry API implementation. 2015-03-31 13:56:59 +03: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 eb7dce272a Update of --mem-stats flag fix: leaving MEM_STATS definition only in jerry-core. 2015-03-30 20:00:55 +03:00
Ruben Ayrapetyan 9746b2fd76 Jerry API for calling functions C -> Jerry, creating objects, reading / writing object's properties (currently, only interface declaration, without implementation). 2015-03-27 18:05:27 +03:00
Ruben Ayrapetyan 80d9328c1f Providing option for disabling LTO build mode. 2015-03-27 14:19:33 +03:00
Ruben Ayrapetyan 34cf1b8e8f Fixing Jerry interface declaration: making routines to be exported in C-linkage mode (i.e., adding 'extern "C"'). 2015-03-27 12:05:08 +03:00
Ruben Ayrapetyan 3d2374acd5 Check that the only .gitignore file in repository is the ./.gitignore during precommit testing. 2015-03-26 21:43:23 +03:00
Ruben Ayrapetyan 4cf575c40c Adding missing Nuttx headers, removing .gitignore files from ./third-party/nuttx, fixing default Nuttx include path in Makefile. 2015-03-26 21:36:55 +03:00
Ruben Ayrapetyan 9bcf734bd1 Adding build directory targets to .PHONY list in Makefile. 2015-03-26 17:46:42 +03:00
Ruben Ayrapetyan cf1960dbbd Support for 32-bit Linux in Jerry's libc. 2015-03-26 15:53:28 +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 c8f78c5d28 Nuttx build support. 2015-03-23 12:10:27 +03:00
Ruben Ayrapetyan 5e125187e5 Introducing jerry-libc's interface include directory. 2015-03-19 20:55:00 +03:00
Ruben Ayrapetyan 1ec7ffcbab Turning on flto for all builds to produce target-independent core library. 2015-03-19 19:08:16 +03:00
Ruben Ayrapetyan d83d8e0b36 Removing build of multiple identical jerry-libc and plugins libraries copies. Fixing parallel build / precommit invocation without using the workaround. 2015-03-19 19:06:02 +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 3d9635300b Moving ecma initialization/finalization from run_int to jerry_init/jerry_cleanup. 2015-02-24 15:12:47 +03:00
Ruben Ayrapetyan c12ec35b2d Extension API: description of structures used for describing extension object; jerry_extend_with - stub for extension interface routine. 2015-02-20 20:37:07 +03:00
Ruben Ayrapetyan d4af5702a4 Increasing heap size to 256K. 2015-02-19 17:51:24 +03:00
Ruben Ayrapetyan 4e93ef421d Support of ecma-value with compressed pointer of more than 14-bit size. 2015-02-19 17:44:51 +03:00
Ruben Ayrapetyan d0c62bb507 Storing named accessor property's pointer to getter and setter objects in separate pool chunk. 2015-02-19 17:26:10 +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 a751ab4f9d Changing garbage collector to non-generational. 2015-02-18 20:22:38 +03:00
Ruben Ayrapetyan d1f6760f01 Accessing getter and setter fields of named data accessor property descriptor through ecma_{get,set}_named_accessor_property_{getter,setter}. 2015-02-18 17:38:46 +03:00
Ruben Ayrapetyan 8b38cd036b Enabling vera++ run during precommit testing. 2015-02-17 19:56:41 +03:00
Ruben Ayrapetyan ef004ef843 Revert "Enabling vera++ run during precommit testing."
This reverts commit 4c71200344dbebff7df2d9497ebdc7e02bd87eab.
2015-02-17 19:56:07 +03:00
Ruben Ayrapetyan 6379d8f4ad Enabling vera++ run during precommit testing. 2015-02-17 19:49:53 +03:00
Ruben Ayrapetyan f42faabe89 Fixing style according to rules defined in vera++ scripts. 2015-02-17 19:47:00 +03:00
Ruben Ayrapetyan 88353e93cf Renaming core -> jerry-core. 2015-02-17 19:08:55 +03:00
Ruben Ayrapetyan b6d018d019 Enable cppcheck run during precommit testing 2015-02-17 18:43:54 +03:00
Ruben Ayrapetyan a4155f7be8 Fixing cppcheck warnings. 2015-02-17 18:43:48 +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 51088ff2cb Enable LTO for unit tests. 2015-02-16 19:35:15 +03:00
Ruben Ayrapetyan 03c81e96e9 Turning on unit tests build and run during precommit. 2015-02-16 19:35:15 +03:00
Ruben Ayrapetyan 86a5cc63c6 Turn off print of script source in release build (in --show-opcodes mode). 2015-02-16 14:55:04 +03:00
Ruben Ayrapetyan 2667281745 Adding VALGRIND={ON,OFF} make option. 2015-02-16 14:02:32 +03:00
Ruben Ayrapetyan 8dc4950590 Renaming src directory to core; moving main modules to top-level directory. 2015-02-13 22:19:05 +03:00
Ruben Ayrapetyan b3cfd40478 Fix parse of "-v" option. 2015-02-13 22:12:07 +03:00
Ruben Ayrapetyan 32dc41e795 Remove stripping of debug binaries. 2015-02-13 22:11:38 +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 62a3ac93d9 Fix invocation of memcpy in add_current_token_to_string_cache (NULL pointer shouldn't be passed to memcpy). 2015-02-13 16:38:59 +03:00
Ruben Ayrapetyan 3755db04d2 Remove references to __TARGET_* defines from Jerry core. 2015-02-12 20:16:35 +03:00
Ruben Ayrapetyan 7e4c16e4e6 Rename Jerry's libc functions: __function_name -> function_name. 2015-02-12 20:15:56 +03:00
Ruben Ayrapetyan af77eac8e4 Move Jerry's libc to jerry-libc directory. 2015-02-11 21:33:45 +03:00
Ruben Ayrapetyan 6dfade808f Fix search of libc and libgcc in CMakeLists.txt 2015-02-11 21:27:03 +03:00
Ruben Ayrapetyan 17f51e0ba6 Refinement of completion status codes and fatal error handlers. 2015-02-11 20:53:14 +03:00
Ruben Ayrapetyan 398501afeb Remove CONFIG_ECMA_EXCEPTION_SUPPORT configuration flag. 2015-02-11 18:57:03 +03:00
Ruben Ayrapetyan 35fa39ceb8 Initial version of Embedded API. 2015-02-11 17:47:58 +03:00
Ruben Ayrapetyan ccc0453f34 Splitting main.cpp into jerry.cpp, main_linux.cpp and main_mcu.cpp; leaving __TARGET* defines usage only in jrt and plugins. 2015-02-11 14:10:14 +03:00
Ruben Ayrapetyan f3ff78b81b Refinement of tools directory. 2015-02-10 20:21:01 +03:00
Ruben Ayrapetyan d2459398f5 Refinement of build output structure. 2015-02-10 19:34:30 +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 b7e374fedc Switching to CMake for build. 2015-02-09 20:56:01 +03:00
Ruben Ayrapetyan fa6402334f Renaming sources *.c -> *.cpp. 2015-02-09 18:21:44 +03:00
Ruben Ayrapetyan ba348831ca Reverting changes related to on-stack GC-root introduction (except of passing ecma_value_t by const reference).
This reverts commits:
     31e1405f39d72f8b885e92256b0dc29ecab1a99,
     7cb43840b59c539d9b043990ed658ae15a9defc3,
     1ab57a4493689806035a9853b0030cc6fea65590,
     c24b511ca60587e0db12d46a7e7567c86c3649bc,
     b2caf3e8b31b4b6b16499108ee3aabdcb94f0717,
     44f9c307fb6204bfd2181b19a9d94cabddf04de9.
2015-02-09 17:43:29 +03:00
Ruben Ayrapetyan 35aa8238c2 Updating 'may reference younger object' in ecma_create_ for outer lexical environment / prototype objects; setting provideThis to false for declarative lexical environments.
Although provideThis is not used for declarative lexical environments, setting it to false to prevent valgrind's false positive about uninitialized flag value.
2015-02-09 17:41:25 +03:00
Ruben Ayrapetyan 5a2d6f4308 Replacing JERRY_NVALGRIND with the opposite JERRY_VALGRIND. 2015-02-05 17:58:55 +03:00
Ruben Ayrapetyan fb6e205d0d Moving to replacement of on-stack ecma_object_t* with managed ecma_object_ptr_t. 2015-02-04 18:14:04 +03:00
Ruben Ayrapetyan e3f081ee84 Forbidding implicit template instantiation. 2015-02-04 17:33:24 +03:00
Ruben Ayrapetyan d627307010 Adding valgrind memory annotations for pool allocator. 2015-02-04 17:32:39 +03:00
Ruben Ayrapetyan be4567860c Turning on Wmissing-declaration warnings. 2015-02-04 15:31:43 +03:00
Ruben Ayrapetyan 34bff56d8a Removing pre-initialization of object container with zero. 2015-02-04 15:13:22 +03:00
Ruben Ayrapetyan c12659ba51 Introducing managed pointer class ecma_pointer_t, using it to store pointer in ecma_value_t. 2015-02-03 18:25:38 +03:00
Ruben Ayrapetyan 9cdc50c3ec Disabling Wattributes warnings (because always_inline is considered incorrect without inline specifier even in LTO mode); removing used attribute from always_inline functions; removing inline specifier from ecma_lcache_lookup and ecma_stack_top_value. 2015-02-03 18:05:17 +03:00
Ruben Ayrapetyan 3cb0b0a379 Revert "Introducing managed pointers classes (ecma_generic_ptr_t, ecma_pointer_t<T>); using ecma_generic_ptr_t to store pointer in ecma_value_t."
This reverts commit f88c0d665b4ff7e2add495bc2980adf7a1622f31.
2015-02-03 16:50:21 +03:00
Ruben Ayrapetyan b0e4d2ece1 Introducing managed pointers classes (ecma_generic_ptr_t, ecma_pointer_t<T>); using ecma_generic_ptr_t to store pointer in ecma_value_t. 2015-02-03 15:11:44 +03:00
Ruben Ayrapetyan 55caaf7a88 Storing values in ecma_value_t in unpacked form (type + simple value / pointer to the heap). 2015-02-03 14:52:37 +03:00
Ruben Ayrapetyan f37a5085f6 Converting ecma_completion_value_t to class derived from ecma_value_t with additional field with for completion type and related operations.
Completion value are now returned through ecma_completion_value_t &ret_value argument.
2015-01-30 23:16:45 +03:00
Ruben Ayrapetyan a1f95048ae Removing label completion values. 2015-01-30 23:00:42 +03:00
Ruben Ayrapetyan 00afd4e0e2 Converting ecma_value_t to class that is used for on-stack storage of ecma-values.
Original ecma_value_t is renamed to ecma_value_packed_t and is used for on-heap storage.
Copy and move constructors, move assignment operator of ecma_value_t are not created.
New ecma-value return convention is introduced: ecma-values are now returned through ecma_value_t &ret_val argument.
2015-01-30 22:53:06 +03:00
Ruben Ayrapetyan 4cd7f96acc Suppressing 'member variable is not assigned in operator =' cppcheck warning, because of false positives. 2015-01-29 14:40:31 +03:00
Ruben Ayrapetyan 94cb1c0e67 Changing jerry_ref_unused_variables signature to take values by const reference. 2015-01-28 19:58:20 +03:00
Ruben Ayrapetyan 8b31156b5a Forbidding use of rbp for register allocation on x86-64 platform.
It is necessary because of bug in gcc / g++:
 Pointers allocated on rbp can be (are?) supposed to be aligned indepedently of what they actually contain.

Turning off allocation on rbp is not critical for now, because, currently, x86-64 is just development platform.
2015-01-28 17:43:04 +03:00
Ruben Ayrapetyan 0f487a0bb7 Returning ecma_value_t instead of ecma_completion_value_t from ECMA_TRY_CATCH for case when completion value is normal. 2015-01-27 22:07:26 +03:00
Ruben Ayrapetyan f231b9a0d2 Moving ecma_reference_t declaration to ecma-reference.h. 2015-01-27 17:18:53 +03:00
Ruben Ayrapetyan d1925ab882 Using static_cast instead of C-style cast in MEM_DEFINE_LOCAL_ARRAY. 2015-01-27 15:40:46 +03:00