Commit Graph
100 Commits
Author SHA1 Message Date
Ruben Ayrapetyan 9b0125086f Introducing minimal footprint build modifier (mfp).
The modifier disables lookup cache and adds GC invocation after each opcode execution.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan 7d90d8caba Adding configuration option for disabling ECMA lookup cache.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan 4c77cddec3 Adding configuration option to execute GC after each opcode.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan a057b77e26 Removing measurements of metrics other than maximum RSS of non-executable areas from tools/rss_measure.sh.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan d14c9f6b85 Making data and stack non-executable.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan d8adf0de2c Splitting --mem-stats option to --mem-stats-at-exit and --mem-stats-per-opcode.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan bb258ad1e2 Supporting build with gcc/g++ version 4.7.
Build was tested on arm-linux-gnueabi-gcc/g++ 4.7.3.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:54:50 +03:00
Ruben Ayrapetyan 6d9bea824d Fixing tools/push.sh (removing commented code for adding / removing notes, restoring unintentionally removed variable with message text).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:53:00 +03:00
Ruben Ayrapetyan c2ec0414db Fixing tools/push.sh (removing collection of build environment information and commented performance measurement code).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 18:47:03 +03:00
Ruben Ayrapetyan ef461e383a Fixing scripts and configuration of cppcheck and vera++, adding some vera++ rules.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 15:16:35 +03:00
Ruben Ayrapetyan 1669c3ed3d Fixing STM32 and Nuttx build.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 15:16:35 +03:00
Ruben Ayrapetyan 5e3c9b59ef Adding script for automatic download of prerequisites.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-30 15:16:31 +03:00
Ruben Ayrapetyan b867822908 Fixing tools/generator.sh: escaping '"' character.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-29 20:38:44 +03:00
Ruben Ayrapetyan 19aea7a502 Fixing bash scripts: moving '#!/bin/bash' to top.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-04-29 20:36:41 +03:00
Ruben Ayrapetyan cde7805356 Interface jerry_api_eval for performing eval operation. 2015-04-18 21:48:57 +03:00
Ruben Ayrapetyan 3899fe9096 Stub for eval operation with partial implementation. 2015-04-18 21:48:54 +03:00
Ruben Ayrapetyan b451cb3312 Introducing vm_get_this_binding and vm_get_lex_env interfaces for retrieving information about current execution context. 2015-04-18 21:46:13 +03:00
Ruben Ayrapetyan 175f8912b2 Passing ecma_value_t by value instead of by reference. 2015-04-18 21:46:13 +03:00
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