2133 Commits

Author SHA1 Message Date
László Langó 63f739e5a0 Add documentation to port API
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-09-01 14:52:10 +02:00
Zsolt Borbély a59cbfe1a2 [nuttx-stm32f4] Fix jerry_port_log function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-09-01 14:51:59 +02:00
Sergio Martinez de9c27b122 Remove problems with gettimeofday, newlibc and zephyr SDK
Fix Zephyr build

With the changes to the zephyr sdk, gettimeofday is being guarded
by XOPEN_SOURCE_EXTENDED which requires at least 700 on XOPEN_SOURCE to be active

This little patch also helps on removing most of the warnings we had before
related to that issue.

More info on this feature:
http://man7.org/linux/man-pages/man7/feature_test_macros.7.html

Another option was to enable _GNU_SOURCE for this port.

There are still some harmless warnings related to __sputc_r for which we still require
the convertion warning.

Tested on qemu_cortex_m3, qemu_x86, arduino_101 and frdm_k64f.
Zephyr Sdk 0.8.2, Zephyr 1.5.0-rc4 & Zephyr ec39b216

Closes #1311.

JerryScript-DCO-1.0-Signed-off-by: Sergio Martinez sergio.martinez.rodriguez@intel.com
2016-08-31 17:19:08 +02:00
Peter Gal 57d8b39f3f Improve the Curie build file generator a bit
Works with python 2 and 3.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2016-08-31 06:26:24 -07:00
Zidong Jiang 04e597a6a4 add target port: curie_bsp
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-08-27 19:02:38 +08:00
Zsolt Borbély 1e82ae1eb5 Update the nuttx-stm32f4 target
Related issue: #1202

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-08-26 15:38:14 +02:00
Zsolt Borbély e93e32635f Correct the documentation
- Fix some style issue, typos, and examples
- Follow the variable naming conventions
- Fix tables both in the project and on the webpage

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-08-26 13:20:07 +02:00
Youngil Choi 48d5eee920 Make jerry shell more intuitive
- REPL mode also prints each error messages, not only each return values.
- If read_file fails, execution stops right away.

JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-26 19:41:08 +09:00
Youngil Choi c6e68ce167 Eval called as a bound function should be indirect eval
JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-26 17:48:39 +09:00
Youngil Choi 98cec9afb8 [[DefaultValue]] should be called twice when setting object as Array length
In section 15.4.5.1, both step 3.c and 3.d should call [[DefaultValue]].

JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-26 16:03:36 +09:00
Youngil Choi db176aa01d Numbers are permitted as property name in object literal
JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-26 14:10:11 +09:00
Youngil Choi f2bae401af Remove unnecessary empty value check code
Related PR: #1276
Since RegExp.protytype.exec doesn't change the ret_value any more when
filling the result array, its empty value check code can be removed.

JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-24 23:08:00 +09:00
Zidong Jiang be1029d1d1 fix bug: move jerry_make_api_unavailable into the end of jerry_cleanup
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-08-24 14:08:59 +08:00
Zoltan Herczeg cfcb4c707c Add long string support.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-23 03:53:13 -07:00
Youngil Choi efdf91a0d6 Regexp.prototype.exec should not generate return array with [[Put]]
Releated issue: #1078

JerryScript-DCO-1.0-Signed-off-by: Youngil Choi duddlf.choi@samsung.com
2016-08-23 15:56:28 +09:00
Paul Sokolovsky 314e74f8ce targets/zephyr/Makefile.zephyr: Use zephyr_getline module for line input.
The original implementation used shell facility, but it was designed for
a unix shell like input, and automatically tokenized it into
space-separated "words", with limit of 10 (i.e. 9 spaces per line). For
JavaScript input, it is quite easy to have more than 9 spaces per line,
and get error:

Too many parameters (max 10)

After consultation with upstream
(https://jira.zephyrproject.org/browse/ZEP-532) it was decided that the
best approach is to skip using shell facility and use Zephyr console
facility. That however requires some Zephyr-specific boilerplate code.
This code was implemented as reusable modules in
https://github.com/pfalcon/zephyr_console_helpers repository, to be
usable for other console-based projects too. zephyr_getline.h/c in this
commits are direct imports from this repository.

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-08-20 22:19:33 +03:00
Zoltan Herczeg 27253112c2 Remove allocator functions which stores size.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-19 22:39:12 -07:00
Zsolt Borbély 823e4d030c Force to use SSE in 32-bit environment instead of the 387 unit
This patch fixes the failing unittests, which fails in 32-bit mode.
These compiler-options adjusted through the default toolchain file.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-08-17 09:24:11 +02:00
Paul Sokolovsky 63d14458a0 targets/zephyr/Makefile.zephyr: frdm_k64f: Optimize for Cortex-M4F.
This is now required, as Zephyr for frdm_k64f is built with hard float ABI.

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-08-16 13:58:28 +03:00
Zoltan Herczeg a0e256e867 Reorganize the fields of the global context.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-16 00:56:28 -07:00
Paul Sokolovsky dc87ce0930 targets/zephyr/Makefile.zephyr: Work around issue with newlib 2.4.0.
Zephyr SDK 0.8.2 contains newlib 2.4.0 which doesn't provide gettimeofday()
declaration by default, but needs _XOPEN_SOURCE defined for this. While
this is definitely an issue with newlib 2.4.0 (to be fixed in one of the
next releases), defining _XOPEN_SOURCE is quite a harmless workaround.

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-08-15 21:22:26 +03:00
Akos Kiss d39c4187fb Fix the OSX build
Apple does not support staticaly built applications on OSX, and all
dynamically built apps have to be linked against the System lib
(i.e., `-static` should not be used and `-lSystem` is a must).
As System contains all libc and libm functions, building (and
linking) the minimal jerry-libc and jerry-libm libs makes no sense.
Moreover, if JERRY_LIBC is ON, the compiler will use the jerry-libc
headers but will link the libc functions from System, which causes
heavy confusion and segfaults at run time.

Thus, this patch changes the build system to disable the building
of jerry-libc and jerry-libm, and enables the use of system
libraries when building on OSX.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-15 12:39:09 +03:00
Zoltan Herczeg ae1118293f Add two new API functions: jerry_create_number_infinity and jerry_create_number_nan
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-14 23:20:50 -07:00
Zoltan Herczeg b6f174cce7 Gracefully throw an error when parser runs out of memory.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-14 23:08:26 -07:00
Zsolt Borbély 405bccf4d6 Fix run-tests.py: should evaluate the conditions correctly
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-08-14 23:39:19 +02:00
Akos Kiss b4ab97581b Cleanup jerry-libc CMakeLists
Remove "-I/home/.../jerryscript/jerry-libc/__TARGET_HOST" and
"-D__TARGET_HOST" from compiler command line, they don't add
anything useful.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-14 22:35:31 +02:00
Robert Sipka 2e28542e9c Remove unused 'ecma_string_get_heap_number_size' and 'ecma_set_property_list' functions.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-12 18:48:56 +02:00
Akos Kiss 9d4f7c917f Fixing Math.pow
The Math.pow implementation relies on libm's pow. However, the ISO C
and ES5.1 standards differ on pow:
  * `x ** NAN` is NAN in ES but `+1 ** y` is 1 in C
  * `+-1 ** +-INF` is NAN in ES but 1 in C

This patch:
  * Modifies the Math.pow implementation to handle the special cases
    instead calling pow.
  * Adds a test case to jerry-test-suite as it did not test
    `Math.pow(1,NaN)`.
  * Fixes jerry-libm's pow, as it was not standard conforming, which
    helped hiding the error in Math.pow.
  * Updates the unit test for libm.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-11 22:49:36 +02:00
Akos Kiss 8f76bab92e Fix the use of mktemp in tool scripts
The manual of `mktemp` states that "TEMPLATE must contain at least
3 consecutive 'X's in last component." Linux implementation seems
to be relaxed about this and accepts and rewrites X's even inside
the template, but mktemp of OSX is more strict and handles trailing
X's only. This patch makes sure that mktemp templates work on both
OS's.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-11 22:20:43 +02:00
Akos Kiss a2d5acb43c Follow-up refactoring of logging-related parts
This patch:
* Ensures that all calls to `jerry_port_log` in jerry-core happen
  via macros defined in jrt.h. Also, it unifies the names of those
  macros: as `JERRY_ERROR_MSG` and `JERRY_WARNING_MSG` gave a good
  pattern that was well aligned with the naming scheme of the log
  level enum, `JERRY_DLOG` and `JERRY_DDLOG` were rewritten to
  `JERRY_DEBUG_MSG` and `JERRY_TRACE_MSG`.
* Ensures that all debug logging code parts of jerry-core (i.e.,
  memory statistics, JS byte-code dumps, and RegExp byte-code
  dumps) are guarded by macros: `JMEM_STATS`,
  `PARSER_DUMP_BYTE_CODE`, and `REGEXP_DUMP_BYTE_CODE`, which in
  turn are controled by cmake build system feature flags
  `FEATURE_MEM_STATS`, `FEATURE_PARSER_DUMP`, and
  `FEATURE_REGEXP_DUMP`.
* Ensures that all debug logging functionalities can be controled
  during run time (provided that they were enabled during build
  time): the engine has `JERRY_INIT_MEM_STATS[_SEPARATE]`,
  `JERRY_INIT_SHOW_OPCODES`, `JERRY_INIT_SHOW_REGEXP_OPCODES` init
  flags, and the default unix/linux command line app has
  corresponding command line switches.`
* Drops `FEATURE_LOG`, `JERRY_ENABLE_LOG`, and
  `JERRY_INIT_ENABLE_LOG`, as their name was misleadingly general,
  even though they mostly controled the regexp engine only. The
  above-mentioned `*REGEXP*` things mostly act as their
  replacements.
* Updates build, test, and measurement tool scripts, and
  documentation.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-11 22:00:12 +02:00
Robert Sipka 1b996a9a56 Remove needless toolchain files and variable settings.
Unnecessary to set CMAKE_SYSTEM_NAME and CMAKE_SYSTEM_PROCESSOR, these values
are set by default. It also allows to use any C99-compliant compiler by using
the default CC enviroment variable or by setting the CMAKE_C_COMPILER value
using the build script's --cmake-param argument.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-11 16:59:26 +02:00
Levente Orban 91e29120d2 Follow the API & build system update in mbed targets
- Update the API changes in mbed targets
- Build fix for mbed target after the build system patch.

JerryScript-DCO-1.0-Signed-off-by: Levente Orban orbanl@inf.u-szeged.hu
2016-08-11 14:32:49 +02:00
Akos Kiss d5eb2f0be1 Let the build script use a default for toolchain
The `cmake` directory already contains several toolchain files for
various platforms (operating system + architecture). However,
`tools/build.py` does not define a toolchain file for cmake unless
explicitly specified. This patch changes the script to look into
the `cmake` directory for a file named
`toolchain_$(os)_$(arch).cmake` and, if found, pass that to cmake
by default.

OS and arch are determined by `os.uname()`. As Linux on Raspberry
Pi identifies itself as "armv7l", the legacy "armv7l-hf" arch name
is shortened to "armv7l". This way, building jerry on RPi
(natively, not cross) becomes possible by simply running
`tools/build.py` without any extra options.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-08 13:42:59 +02:00
Zsolt Borbély 2836f49eec Fix run-tests.py: don't override the return value of a testrun
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-08-08 12:56:48 +02:00
Akos Kiss 2eb2b22c49 Rewrite parser_boolean_t to bool
And `PARSER_{TRUE,FALSE}` to `{true,false}`.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-08 10:53:20 +02:00
Akos Kiss ff21777950 Integrate JS parser module better with JRT
The fact that the JS parser had been developed as a separate
component for a while is still visible from some macros that mirror
things from JRT. This patch removes those duplicates and makes the
JS parser rely on jrt.h. (The removed macros are: `PARSER_DEBUG`,
`PARSER_INLINE`, `PARSER_NOINLINE`.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-08 10:38:22 +02:00
Zoltan Herczeg 48812b4a61 Reduce memory consumption of ecma_property_hashmap_steps.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-05 06:00:01 -07:00
Sergio Martinez 67b494dcff Adapted the makefiles to the new build system
- Zephyr now requires two passes to create the configuration for the cross compiling
- Added the missing bits required to build a valid new jerryscript minimal configuration

JerryScript-DCO-1.0-Signed-off-by: Sergio Martinez sergio.martinez.rodriguez@intel.com
2016-08-05 13:11:57 +01:00
Akos Kiss db36e942fb Avoid (void) and use JERRY_UNUSED
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-05 13:16:53 +02:00
Akos Kiss cad9ba1f01 Refactor flag additions in CMakeLists
CMakeLists already contains macros to ease adding compilation and
warning flags. This patch:
* Ensures that they are used whereever possible.
* Adds more macros to help with other flags as well.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-05 11:49:29 +02:00
Akos Kiss e9a23c4235 Refactor jrt buffer operations
`jrt_read_from_buffer_by_offset` is not used anywhere in the code
while `jrt_write_to_buffer_by_offset` is only used by snapshot
saving functions. Thus, this patch removes the read variant
completely and moves the write variant as a static function to
jerry.c. This empties out jrt.c, thus deleting.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-05 11:28:15 +02:00
Akos Kiss 697442434d Cleanup jerry's assert-like routines and macros
Until now, jerry had 3 different assert-like routines:
`jerry_assert_fail`, `jerry_unreachable`, and `jerry_unimplemented`,
and 3 corresponding macros (`JERRY_ASSERT`, `JERRY_UNREACHABLE`,
and `JERRY_UNIMPLEMENTED`). They had some irregularities, namely:

* All of them had a string parameter, although `jerry_unreachable`
  never got anything there but NULL.
* Both `jerry_unreachable` and `jerry_unimplemented` checked its
  string parameter for NULL, although it was always NULL for the
  first one and never NULL for the second.
* `jerry_unreachable` is just a regular assert with a fixed error
  message (i.e., control should not have got here), however, the
  expansion of its corresponding macro in debug and release modes
  differs from the behaviour of `JERRY_ASSERT`: `JERRY_ASSERT` is
  a no-op in release, however, `JERRY_UNREACHABLE` was triggering
  a crash even there.
* Moreover, `JERRY_UNIMPLEMENTED` was almost never used anymore but
  in a few places (where often an `#ifdef` selected between
  `JERRY_UNIMPLEMENTED` and `JERRY_UNREACHABLE`).

Because of the above, this patch makes the following changes:

* Drops `JERRY_UNIMPLEMENTED` completely and whereever it was still
  used, replaces it with `JERRY_UNREACHABLE`. As a consequence, the
  `jerry_unimplemented` function and the `ERR_UNIMPLEMENTED_CASE`
  fatal error code are also removed.
* Makes `JERRY_UNREACHABLE` expand to no-op in release builds.
  (Actually, to `__builtin_unreachable ()` to avoid warnings.) As
  a consequence, makes both `jerry_assert_fail` and
  `jerry_unreachable` be guarded by `#ifndef JERRY_NDEBUG`. Also,
  changes `jerry_unreachable` not to expect a string parameter.
* Rewrites `TEST_ASSERT` not to rely on `jerry_assert_fail` as
  `TEST_ASSERT` has to work in release builds as well. This also
  allows changing the error message not to mention "ICE", which
  would misleadingly suggest an assert within the engine, but
  "TEST" instead.

As a side-effect of the cleanup, some refactorings happened in
jrt.h:

* Removed the definition of the unnecessary `__extension__` macro.
* Re-used `JERRY_UNUSED` and `unlikely` where possible.
* Moved some parts of the file around.
* Fixed some comments (`/**` should only be used for the docstring
  of a single entity, for groups header comments, the regular `/*`
  should be used).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-05 10:09:32 +02:00
Robert Sipka f15e7beadc Remove compact profile.
The standard doesn't defines ECMAScript Compact Profile as a subset of Ecma-262 Edition 5.1.
Profile modes can be added easily like the minimal profile if required.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-05 09:11:33 +02:00
István Kádár 79bc5d0220 Bugfixes related to low memory conditions.
- Bugfix for removing property hashmap in ecma_gc_run.
 - Fixed bug in ecma_create_property() caused by the new property pair allocation.

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-08-04 14:08:48 +02:00
Akos Kiss 7f14a280b2 Fix logging of error message in jerry_fatal
As the comment of syscall error mentions, we should not try to log
(or print) anything in that case.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-08-03 18:17:40 +02:00
Slavey Karadzhov ce8abfb636 Initial RAM optimization for ESP8266
by putting big constants into ROM, instead of residing in RAM.
Related to https://github.com/Samsung/jerryscript/issues/1224.

JerryScript-DCO-1.0-Signed-off-by: Slavey Karadzhov slaff@attachix.com
2016-08-03 11:54:43 +02:00
Zoltan Herczeg d1b0b58729 Move all remaining globals to the global context.
Zero out all globals (and remove unnecessary init() functions).
Move snapshot globals to a temporary stack variable.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-08-01 04:25:32 -07:00
Robert Sipka b14ca4e248 Complete the getting-started documentation after the build-system update.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-01 13:01:22 +02:00
Robert Sipka e70c89e39e Comment fixes which are left behind after the API update.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-01 12:57:00 +02:00
Robert Sipka e6fefd42bd Build fix for RIOT target after the modifications of the build system (commit ddab1d8).
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-08-01 12:42:34 +02:00
László Langó 37f9b475c0 Fix API examples after the IO Port update
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-08-01 09:27:41 +02:00
Robert Sipka 15ba287b9e Change the CONFIG_ECMA_NUMBER_TYPE default value to FLOAT64 to ensure compliance with ECMAScript 5.1
which requires numbers to be represented in double precision floating-point format.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-07-29 09:51:18 +02:00
Robert Sipka ddab1d8152 Re-thinking the build system to bring it more into line with the conventions.
We removed that implementation where the build directory isn't set up to build with exactly one
configuration of the project but potentially several variants: the same build directory
can/must be used for debug and release builds, for full or compact profile versions, etc.
So we reworked the CMakeLists, and now one build dir deal with exactly one configuration
of the project's libraries and tools.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-07-28 12:29:55 +02:00
Tilmann Scheller 778f3c001e Remove CNAME file from the master branch.
Turns out that you need to add the CNAME file to the gh-pages branch rather than the master branch, thus removing it with this commit.

Related to #1218.

JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-07-28 08:01:28 +02:00
Slavey Karadzhov 23db8b5544 Refactoring of the ESP8266 target code to match the latest API.
Fixes issue #1211.

JerryScript-DCO-1.0-Signed-off-by: Slavey Karadzhov slaff@attachix.com
2016-07-27 13:35:30 +02:00
Zoltan Herczeg 76d42b5e8e Move GC, lcache, literal storage, lexical env global variables to jerry context.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-21 01:36:58 -07:00
István Kádár e7ec053362 More gc-friendly property hashmap allocation.
- New allocator is added that returns null on out of memory, property hasmap create uses this allocator for now.
- Property hashmaps of objects are removed durring a high severity gc.

Follow up patch is in progress.

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-07-20 17:31:24 +02:00
Paul Sokolovsky 80dc523ad3 targets/zephyr: REPL: Print expression result, or exception value.
With this change, REPL works almost the same as a standard JS REPL does
(browser console, Node.js, etc.). A result of each expression is
printed, e.g. "2+2" will print "4". Result is printed even if its
value is "undefined", e.g. "print(1)" will print "1", and on the next
line "undefined" (which is again how "normal" JS console work, except
a normal JS way to print to console is console.log()).

If an exception occured, a message "Error executing statement:", followed
by external representation of exception object, is printed. Note that
distinctive exception objects are supported only in "cp" (compact profile),
not in "cp_minimal". In the latter case, there's only exception hierarchy
top-level prototype, so any error message will look like:

    Error executing statement: [object Function]

(That's the reason why there's error message prefix - so it weren't too
confusing even if used in cp_minimal config. Unfortunately, compile-time
JerryScript configuration isn't available to Zephyr's main.c, so there's
no easy way to implement cp vs cp_minimal distinction).

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-07-20 17:39:20 +03:00
László Langó 1cdc66060f Fix RIOT port after API update
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-20 13:00:47 +02:00
László Langó a004375e1d Remove printf calls from jerry core
Related issue: #964

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-20 12:43:14 +02:00
Zoltan Herczeg 12916c6c55 Fix minor implementation issues found in the JerryScript API.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-20 01:54:00 -07:00
Tilmann Scheller 8d69e26e75 Enable custom domain.
This enables the jerryscript.net domain for the GitHub project. This configuration file is necessary to enable the redirection from http://jerryscript.net to http://samsung.github.io/jerryscript.

JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-07-19 17:16:37 +02:00
István Kádár 9fcf6597f6 Memory leak is fixed in ecma_builtin_regexp_prototype_exec.
Issue fixed: #1079

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-07-19 15:07:38 +02:00
Zoltan Herczeg 3a78d30897 Introducing global context.
Currently the static variables of the allocator are moved into a
global structure.

The future plan is supporting multiple context models with different
advantages and disadvantages. Users can select the most appropriate
context model for their own use case. This context model must be
selected at compile time using compiler defines.

Currently only one model is implemented, which will be the default
context model: the context is stored in global variables, so only
a single context is available which always exists.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-19 05:25:34 -07:00
Zidong Jiang ca39875690 fix bug of "deref bytecode twice" in jerry_exec_snapshot
Enable the snapshot related test code in test-api.c

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-07-19 18:56:06 +08:00
Zsolt Borbély dd3f801ae0 Update a link in README.md
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-07-18 09:57:32 +02:00
Zoltan Herczeg 3828f08796 Remove arbitrary case conversion tests.
Since upper/lower case conversions are unspecified by the standard,
we convert ASCII characters only, and a few other characters for
testing purposes. Because these are just random cases, it is better
to remove them before the release. At some point we could add a
unicode compatible case conversion which can be enabled at compile
time.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-15 06:38:13 -07:00
Zidong Jiang 6084f0845c Fix bug in jerry_string_to_char_buffer.
str_len can smaller than buffer_size.

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-07-15 21:06:47 +08:00
Dániel Bátyai 3354da3021 Optimize ecma_string_get_array_index
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-07-15 10:53:20 +02:00
László Langó f0fd939d87 Move log level to default port
Setting the log level should be specified by the actual port.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-15 09:13:16 +02:00
László Langó fa94c67ee7 Implement IO port API
Related issue: #964

Implemented the IO API of Jerry ports. Removed log file from API level.
The port implementation should define the destination of log messages.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-14 13:15:30 +02:00
Zoltan Herczeg 35c0869ef5 Improve resolve reference.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-14 02:24:00 -07:00
László Langó 1e4531c7b5 Minor fixes in API reference
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-14 09:01:27 +02:00
Zoltan Herczeg 6f1ce8d6bb Improve the construction of "length" built-in strings.
The "length" property name is the most frequently used built-in string
and also frequently created by various hot-paths. New functions are
added to improve the speed of the "length" string creation.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-13 23:36:27 -07:00
László Langó b4bba2ef70 Update API reference to the new API
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-12 14:08:59 +02:00
Paul Sokolovsky 6b60e22e30 targets/zephyr: Update to new Jerry API and improve REPL interaction.
Various calls updated to use API from jerry-api.h (to-be JerryScript 1.0
API).

Use jerry_eval() instead of jerry_run_simple(), as it allow to store (and
then access) variables in a global environment. E.g. following now works
(entered and executed as two separate lines):

    a = 1
    print(a)

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-07-12 14:33:07 +03:00
Dave Methvin 1ac1c09b25 Fix links to docs in README.md
JerryScript-DCO-1.0-Signed-off-by: Dave Methvin dave.methvin@gmail.com
2016-07-11 15:23:15 -04:00
László Langó 9bce5b09a9 Update Jerry API
* Removed jerry_string_t and jerry_object_t
* Updated function names
* Updated return values
* Updated function descriptions
* Added new functions
* Added new unittests

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-07-11 09:01:29 +02:00
István Kádár cea3a142ac Regression tests are added for the recently closed fuzzer bugs.
Related issues: #380, #1065, #1073, #1074, #1075, #1080, #1081, #1082, #1083

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-07-08 14:50:09 +02:00
Zoltan Herczeg 97be8bfbc8 Simplify string management.
Allocate a single memory block for strings, rather than a separate string header
and string characters block. In the past strings were split into 8 byte chunks,
and large amount of legacy code is designed for that representation. However the
current allocator allows block allocation so we don't need those complicated
algorithms anymore. This patch is a cleanup rather than an optimization.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-06 03:47:48 -07:00
Zoltan Herczeg 41337dbd59 Small performance optimizations of the interpreter.
Short summary of the changes:
 - The ecma_reference_t is removed, and its helper functions are deleted.
 - The delete operation does not depend on ecma_reference_t anymore.
 - A new resolve function is added which returns the current value
   of a named binding in the context chain.
 - The vm_op_set_value does not perform type conversions when its arguments
   has the appropriate types.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-06 00:00:03 -07:00
Tilmann Scheller fb9b4dd807 Fix signed left shift in vm_loop().
Signed left shift operations are undefined in C. Add constants for the minimum/maximum integer value which are already shifted. Technically, the constant for the shifted maximum value is not required, adding it for consistency/increased readability.

The bug was detected by -Wshift-negative-value both with GCC 6.x and Clang.

This fixes #1174.

JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-07-05 22:01:00 +02:00
István Kádár 5f7997d2d0 Documentation converter script.
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-07-05 13:58:04 +02:00
Paul Sokolovsky 0898bf4835 targets/zephyr: Add support for NXP FRDM-K64F board.
Tested to boot and run "test" one-liner.

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-07-04 17:38:13 +03:00
Zoltan Herczeg 5ed6582141 Optimize comparison in VM.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-04 00:01:09 -07:00
Zoltan Herczeg d882709ed2 Optimize arithmetic in VM.
Add, substract, mul, mod, and increment/decrement operators are optimized.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-07-03 23:52:27 -07:00
István Kádár a81c7c83d7 ecma_make_boolean_value(bool) function is added in order to make ecma_value form a raw bool.
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-07-01 16:00:56 +02:00
Sergio Martinez c8db27c4af Fix issue when you don't flash the ARC and the x86 waits
- Fixed problem when the x86 hangs waiting for the ARC to
be initialized. If you flash as arduino_101 instead of
arduino_101_factory this will happen and you will not get
a command line.

- Changed default build to arduino_101_factory which is
the current recommended method of flashing the arduino_101

- Updated documentation to explain a few bits on how to flash
the board and conform to the v1.4.0 way of flashing the device.

- Added a helper to run the dfu-util command directly on make.

JerryScript-DCO-1.0-Signed-off-by: Sergio Martinez sergio.martinez.rodriguez@intel.com
2016-07-01 13:40:22 +01:00
Tilmann Scheller 4921a030b3 Update README with the current binary size.
JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-07-01 10:52:19 +02:00
István Kádár 1b40af729b Documentation is moved to docs.
- DEVELOPMENT.md is extended with bash utilites.
 - Internals doc added and DEVELOPMENT is renamed to GETTING-STARTED.
 - modified image links in Internals
 - links are fixed in README.md

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-06-30 14:35:23 +02:00
Sakari Poussa 88db00ae4b [zephyr] rename SOURCE_DIR to ZEPHYR_TARGET_SRC_DIR in Makefile.zephyr
In Makefile.zephyr the SOURCE_DIR variable was introduced recently.

However, the SOURCE_DIR variable is heavily used in zephyr. If you try to build
the jerryscript zephyr port from a zephyr project using the makefiles, the
SOURCE_DIR gets set by the zephyr build system and points to wrong place here.

This patch creates unique name to avoid the name clash.

JerryScript-DCO-1.0-Signed-off-by: Sakari Poussa sakari.poussa@intel.com
2016-06-30 14:48:47 +03:00
László Langó c3541c3ab7 Check error values in API functions
Internal functions cannot handle error values, so it must be avoided to
pass error values to the engine.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-29 14:26:55 +02:00
Sakari Poussa 130be84ad1 [zephyr] Makefile tuning
Read the zephyr crosscompile settings earlier so correct values are used.

Currently, the crosscompilation does not work on OSX. With this fix it does.

JerryScript-DCO-1.0-Signed-off-by: Sakari Poussa sakari.poussa@intel.com
2016-06-28 14:28:20 +03:00
Zoltan Herczeg e9a47aff95 Sixteen bit hash for strings.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-27 03:04:50 -07:00
Zoltan Herczeg 0a32c97755 Rework literal storage.
The new literal storage keeps ecma strings rather than having a
custom string implementation which duplicates the string management
routines. Conversions between string implementations are eliminated
which improved the performance by 4%.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-27 00:25:09 -07:00
Zoltan Herczeg 0940be57f6 Fix memcpy return value.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-26 23:45:58 -07:00
László Langó 388b442d10 Update API reference
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-24 13:54:23 +02:00
Zoltan Herczeg ea0176764e Remove ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION to free an object type.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-24 02:14:35 -07:00
László Langó cfa0c94697 Add new API function
Implemented 'jerry_is_array' and 'jerry_get_array_length' API functions.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-24 10:08:17 +02:00
Paul Sokolovsky 4091444016 targets/zephyr: Rename from arduino_101, with more targets supported.
- Add preliminary support for ARC architecture.

Using "em_starterkit" board supported by Zephyr. Only build for this board
is tested, not booted on a real device due to lack of access. There's no
QEMU emulation support for ARC in Zephyr (yet) either.

- Update README to cover different Zephyr architectures/boards.

- Changed the arduino_101 paths to something more generic and adaptable
- Made sure it compiles and runs on Arduino 101

JerryScript-DCO-1.0-Signed-off-by: Sergio Martinez sergio.martinez.rodriguez@intel.com
JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-06-23 13:02:20 +03:00
Zoltan Herczeg 64f49385ae Four byte optimized memcpy.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-22 03:15:04 -07:00
Zoltan Herczeg 1726bba184 Create extended objects instead of internal properties.
Several internal properties are removed and directly stored as
part of the object. Faster built-in and JS function processing.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-21 06:12:17 -07:00
László Langó 7f153c799a Improve empty checks of ecma strings
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-21 13:40:12 +02:00
Zsolt Borbély 2324617928 Guard assert-related functions
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-06-21 12:58:24 +02:00
László Langó 87b6df21c6 Update API examples
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-21 11:21:39 +02:00
Tilmann Scheller 04ab949126 Enforce pure C99 build.
Building with -std=c99 is not sufficient to enforce a pure C99 build as it still allows GNU extensions which don't conflict with C99 to be used. Add -pedantic to the build options to ensure that the codebase is only using C99 constructs and the build will fail whenever any compiler extension is used. This helps to ensure that JerryScript remains portable and can be built with any C99-compatible C compiler.

Removing -Wpedantic, as any warnings of that type will already trigger an error when building with -pedantic.

JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-06-21 08:26:16 +02:00
Robert Sipka c0665da299 Build fix for ALL_IN_ONE and COMPILER_DEFAULT_LIBC
The build fails with enabled ALL_ON_ONE and enabled COMPILER_DEFAULT_LIBC options,
because the _BSD_SOURCE doesn't defined before including the sys/time.h.

In case of glibc, the 'timezone' is not part of C99 but part of POSIX, so we need
to define the _BSD_SOURCE feature test macro before including sys/time.h to get
the prototype for this struct.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-06-19 07:39:48 +02:00
Zoltan Herczeg 37ebd20a72 Remove LIST_LAZY_PROPERTY_NAMES_ROUTINE_NAME macro function.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-17 06:20:06 -07:00
Zsolt Borbély bb07151a39 Pack assert-related code
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-06-17 14:00:21 +02:00
Tilmann Scheller 5caf00606c Remove GCC 4.7 build requirement.
The GCC 4.7 check is a leftover from the times when JerryScript was a C++11 codebase, it was there to ensure that JerryScript is compiled with a GCC version which has sufficient support for C++11.

Today JerryScript is a pure C99 codebase (enforced by building all the sources with -std=c99) and this check is no longer necessary. JerryScript should now build just fine even with rather old versions of GCC.

JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-06-17 13:29:20 +02:00
Akos Kiss edc695e108 Remove const array and scalar variables from ecma_utf8_string_to_number
There is no need for putting `LIT_CHAR_*` constants in const
scalars or arrays, they can be used directly. (There is especially
no need for arrays of 10 elements if only 2 of them are used.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-06-17 03:38:22 -07:00
Akos Kiss 30fd549e7f Optimize number-to-string conversion
* Make constants static in `ecma_number_to_utf8_string`.
* Make `ecma_number_to_utf8_string` use early returns, and rewrite
  its self-recursion in case of negative numbers.
* Make the stringification of decimal exponent in
  `ecma_number_to_utf8_string` use `ecma_uint32_to_utf8_string`.

* Changed ERROL0 dtoa implementation to use the `double` type
  instead of `ecma_number_t`. Thus, even is `ecma_number_t` is 32
  bit wide, the algorithm works the same.
* Changed `ecma_number_to_decimal` to use the ERROL0 dtoa algorithm
  for 32-bit floats as well.
* Changed `ecma_number_to_decimal` to generate the decimal string
  representation of the mantissa instead of an `uint64_t` number.

* Changed `ecma_number_to_utf8_string` to make use of the already
  available string representation of the mantissa, generated now by
  `ecma_number_to_decimal`.
* Changed `ecma_number_to_utf8_string` not to use static arrays and
  variables for digit, "e", etc. generation.

* Changed all `Number.prototype.toXXX` implementations and the
  `ecma_builtin_number_prototype_helper_round` helper to make use
  of the already available string representation of the mantissa,
  generated now by `ecma_number_to_decimal`.
* Factored out the common stringification parts of all
  `Number.prototype.toXXX` implementations into a new helper
  `ecma_builtin_number_prototype_helper_to_string`.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-06-17 03:36:35 -07:00
László Langó 65542549af Add conversion API functions
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-16 14:13:06 +02:00
László Langó 8e8504244b Update jerry API
* Fix error handling (related issue: #1141)
 * Move output paramters to the end of the arguments lists

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-16 13:43:33 +02:00
László Langó 8453a9ade8 Change return value of 'ecma_ref_ecma_string' to void
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-16 12:44:27 +02:00
László Langó 0daeb2f942 Remove string copy
Changed 'ecma_copy_or_ref_ecma_string' to 'ecma_ref_ecma_string'. It does
not copy the string if the maximum number of reference counter is reached,
but bails out with an error like the 'ecma_ref_object' function does.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-16 12:44:27 +02:00
Hanjoung Lee 7a3ed2650d Fix errol0_dtoa for DBL_MAX
When `val` is DBL_MAX, we get +inf from `ECMA_NEXT_FLOAT (val)`.
It is necessary to handle this case specially.

Related issue: #1054

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2016-06-16 18:40:06 +09:00
Zoltan Herczeg 378d7f78ca Improve builtin-property construction.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-16 01:42:55 -07:00
Paul Sokolovsky 78186445a4 targets/arduino_101: Refactor to better support other Zephyr targets.
This adds support for ARM/Thumb2 (Cortex-M) architecture, tested with
BOARD=qemu_cortex_m3 (i.e. QEMU with Cortex-M emulation). Should also
ease porting to other architectures supported by Zephyr.

This uses method of passing external libraries and link options into a
Zephyr application using ALL_LIBS and LDFLAGS_zephyr make variables, as
suggested by the Zephyr developers:
https://gerrit.zephyrproject.org/r/#/c/2476/ , and makes sure to append
to them, instead of assigning, to not overwrite important target-specific
options set by the Zephyr core.

JerryScript-DCO-1.0-Signed-off-by: Paul Sokolovsky paul.sokolovsky@linaro.org
2016-06-16 11:22:21 +03:00
Hanjoung Lee 1c43e5b02b Fix Date construct helper
Correct behaviour of step 8, 15.9.3.1, ECMA-262 v5.1.
 - Change ToInt32(y) to ToInteger(y).
 - If ToInteger(y) is not between 0 and 99 then yr = y

Related issue: #1071

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2016-06-16 11:05:57 +09:00
Tilmann Scheller 372a2bb40b Cleanup README and add official IRC channel and mailing list.
JerryScript-DCO-1.0-Signed-off-by: Tilmann Scheller t.scheller@samsung.com
2016-06-15 12:15:20 +02:00
László Langó a816ab8bb0 Use 'ecma_value_t' in API too
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-14 14:44:02 +02:00
Zoltan Herczeg b828d4a463 Rename ecma_is_value_error to ECMA_IS_VALUE_ERROR.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-14 02:31:34 -07:00
Zoltan Herczeg 1eeed7e07e Improve get-value.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-14 01:58:52 -07:00
Zsolt Borbély ce905487a0 Introduce JERRY_UNUSED() instead of __attr_unused___
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-06-14 08:45:14 +02:00
Jimmy Huang 4afd76d932 Updated Zephyr command line shell after API changes
JerryScript-DCO-1.0-Signed-off-by: Jimmy Huang jimmy.huang@intel.com
2016-06-13 10:06:39 -07:00
Zsolt Borbély c557a0a047 Modify the usage of ecma_string_to_utf8_string()
Parts:
 * Rename ecma_string_to_utf8_string() to ecma_string_copy_to_utf8_buffer.

 * Introduce ecma_string_to_utf8_bytes(), which wraps the usual 'function call-assertion' pair,
   and check strict equality of size of the string and the buffer.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-06-13 15:21:30 +02:00
Zoltan Herczeg eac736ffa4 Rename try_give_memory_back to a better free_unused_memory.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-13 05:35:53 -07:00
Zoltan Herczeg 495b24eebc Optimize put result phase in the interpreter.
Skip put result phase for opcodes which put their
result onto the stack or they don't have result at all.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-10 01:26:42 -07:00
Zoltan Herczeg eed84a7dd9 Parser improvements.
The number of delete opcodes is reduced to two from six. The
range of numbers which can be included in the byte code is
doubled from (-127,127) to (-256,256).

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-10 01:18:17 -07:00
Robert Sipka 3c83af9f23 Rename 'jerry_api_' prefix to 'jerry_' in the main-riotos.c file
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-06-09 17:03:01 +02:00
Robert Sipka 0dd1082d6f Added target to compile RIOT-OS against jerryscript
This patch contains an example in which you can run a small js on RIOT-OS with STM32F4-Discovery.
Check the README.md for a more detailed explanation of how to compile and run it.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-06-09 14:53:12 +02:00
Zoltan Herczeg d953fbb7be Branch opcodes have no result and either they have a stack argument
or no arguments at all. To improve the performance, the branch argument
flag is changed into a get argument type which eliminates a flag check
for all executed opcodes. Furthermore branch opcodes skip the put result
phase by changing the "break" to "continue" statements.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-09 01:20:36 -07:00
Zsolt Borbély 2834423fd2 Remove surplus attribute-defines from jrt.h
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-06-08 15:44:01 +02:00
László Langó b5efa2ea03 Updated API examples, after API changes
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-08 12:48:47 +02:00
László Langó 824d39c2a2 Update API functions
* Rename 'jerry_api_' prefix to 'jerry_'
 * Fix minor style issues
 * Group the API functions and add comment to each group
 * Move engine behaviour related funtions to 'jerry.h'

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-08 12:48:47 +02:00
Zoltan Herczeg 3e0572e433 Optimize add operation.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-08 03:07:18 -07:00
Sergio Martinez 7583b63a6e Added target to compile zephyr against jerryscript.
This patch contains a project in which you can run
a small js test inside the Arduino101.

Follows the Nuttx implementation to replicate a command
line in the Quark SE Lakemont architecture.

Everything is self contained in the targets/arduino_101 folder.
It has only been tested with the arduino 101 at the moment.

Check the README.md for a more detailed explanation of
how to compile and run it.

- Command line javascript run test.

Use test to get a default test.

Write any valid javascript in the shell and get it resolved and executed

- Support for qemu
- Added extra verbose mode on the demo function
- Support to build factory images that can be flashed with dfu-util
- Added a few extra examples on the README about commands that work.

Small fixes to readme and libc_support.c (#1)

- Added a few more instructions to the README.md for arduino_101
- Added the stdint.h include in libc_support.c
- Added parameter to check-vera.sh to check a specific folder
- Cleared the libc function duplication

JerryScript-DCO-1.0-Signed-off-by: Sergio Martinez sergio.martinez.rodriguez@intel.com
2016-06-06 17:47:43 +01:00
Zoltan Herczeg 308bb3c8e1 Remove last_completion_value.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-03 04:12:10 -07:00
Zoltan Herczeg 98d2b66e40 Reduce the default LCache size by half. From 4Kbyte to 2Kbyte.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-03 02:17:43 -07:00
Zoltan Herczeg 6f33ab3e8f Improve equal operations.
The implementation is simplified and optimized
resulting the removal a large amount of code.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-03 02:10:44 -07:00
Zoltan Herczeg 5c852ab6fb Optimize LCache operation.
The cache stores only real properties now, because storing NULLs has
little benefit according to tests. Since only real properties are
stored now, there is no need to create real references to objects
and property names, which reduces the keeping of dead objects after
garbage collection.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-02 03:56:36 -07:00
Akos Kiss d7f95434e2 Improve the output of test runner
* Improve the name of the temporary snapshot files in test runner:
  Until now, test runner used a completely random filename for the
  temporary snapshot file when testing (saving to and executing from)
  snapshots. This patch makes the temp file contain part of the name
  of the original test file in order to make reading the logs (and
  thus, identifying failing tests) easier.

* Add `--snapshot` to summary info of test runner if testing snapshot
  support:
  This helps reading the logs, especially when multiple tests run in
  parallel and get their output mixed. E.g., on the CI, all tests
  write the console at the same time and messages get interleaved.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-06-01 15:43:29 +02:00
Robert Sipka 331bdddea9 Insert parameters between the pair of parentheses in the JERRY_MIN and JERRY_MAX macro definitions
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-06-01 15:18:32 +02:00
Robert Sipka 8a911bb6cb Use 'ecma_get_float_from_value' instead of 'ecma_get_number_from_value' in the ToString operation.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-06-01 15:03:06 +02:00
Zoltan Herczeg a5d9701f60 Optimize uint32 hash computation.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-06-01 05:09:58 -07:00
István Kádár 71c32a1d96 API documentation update under docs.
Links to JerryScript API reference page (https://samsung.github.io/jerryscript/API/) are inserted.

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-06-01 12:58:17 +02:00
László Langó ed08518bd7 Code simplification
Move the enclosed condition forward and combine the two if statements.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-06-01 09:58:29 +02:00
SaeHie Park ed2a3602f4 Fix ESP8266 build
This change is to fix build for ESP8266 board with jerry_api_value_t changes.

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-06-01 08:05:17 +09:00
Zsolt Borbély 36c7440c40 Restore the previous way to convert strings in ecma_builtin_json_parse()
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-05-31 15:52:28 +02:00
Zoltan Herczeg f24be95f89 Optimize conditional jumps.
The ecma_op_to_boolean return value is changed to bool for faster
evaluation, and no need to swap operandos of relational compare.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-30 05:56:22 -07:00
Zoltan Herczeg 08c312bc55 Remove ECMA_STRING_CONTAINER_HEAP_NUMBER.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-30 05:09:51 -07:00
Zoltan Herczeg 8c92972b2f Passing less number of arguments to a function is generally faster. So
the three boolean arguments of ecma_create_named_data_property and the
two boolean arguments of ecma_create_named_accessor_property are combined
into one uint8_t argument. On ARM-32 it is preferred to have less than
four arguments, since these arguments can be passed in registers.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-29 23:47:46 -07:00
Robert Sipka 379698733a Optimising the ToString operation
Create new ecma-string from positive integers without cast it to ecma_number

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-26 10:33:38 +02:00
Zoltan Herczeg fec6944a2a When array literals are created, there is no need to check whether
the property already exists. This improves the performance.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-25 06:51:14 -07:00
Zoltan Herczeg 48b01d0f74 Improve the performance of ecma_op_general_object_put. The ecma_op_object_can_put
function is removed and incorporated into ecma_op_general_object_put. Also most
properties are directly created / updated instead of using ecma_builtin_helper_def_prop.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-25 06:41:32 -07:00
Zoltan Herczeg ac3aa30c82 Micro optimizations of the virtual machine:
- Branch argument information is encoded in the vm byte
   code data, so CBC flags are not loaded anymore
 - The free_flags variable is removed from the vm_loop
 - Two cases are removed from "get arguments", argument
   processing is simplified
 - The two opcode tables are merged to one
 - The VM_OC_POP opcode has no result, so the break is changed to continue.
 - The VM_OC_PUSH_NUMBER can use ecma_make_integer_value.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-24 02:29:49 -07:00
Zoltan Herczeg be273d874f When the same value is assigned to a property, and its reference
counter is one, dereferencing the value frees its allocated memory.
In this case we return early.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-24 02:17:05 -07:00
Akos Kiss e4b0d81fbf Print each output line with one command in test runners
When running multiple test suites in parallel -- e.g., as it
happens on the CI --, the names of the executed commands and the
results of the executions can/do get printed far from each other,
interrupted by other prints. This can make the reading of the
output hard. This patch prints each line with one echo command,
which makes the interruption of the line less likely.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-05-23 14:46:17 +02:00
Zoltan Herczeg 76ae2001a1 Complete reworking of ecma_op_general_object_define_own_property.
Unnecessary checks are removed, new checks are added to skip
unneeded code paths.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-23 03:19:20 -07:00
Zoltan Herczeg 53414b2c88 Add ecma_fast_copy_value and ecma_fast_free_value to improve performance of hot paths.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-23 02:53:43 -07:00
Zsolt Borbély 9f29cc168d Update memory-related defines
Set the correct defines in CMakeLists.txt and update another occurrences in scripts.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-05-22 23:19:10 +02:00
Zsolt Borbély 6b18710bc1 Get rid of the remains of heavy debug
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-05-20 16:32:29 +02:00
László Langó 92bb551d45 Change 'mem' namspace to 'jmem'
The 'mem_' prefix is too general, so it might clash with
symbols in other libraries. Renamed the directory, file,
funtion and type names.

Related issue: #1052

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-20 16:01:33 +02:00
Zoltan Herczeg aaa3d22677 Remove unused collection based argument passing to the vm interpreter.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-20 05:51:41 -07:00
Zoltan Herczeg 5ecf83ee8a Change internal property values of built-in primitive objects (namely Number,
String, Boolean) to use ecma-values. When the value of a Number object is
a small integer number, this change reduces the memory consumption, since no
double is allocated.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-20 03:15:11 -07:00
Robert Sipka 1c028d96d6 Unify the condition form within the asserts
This modificiation affects those conditions which check that
a value can be represented with a smaller type.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-20 11:18:07 +02:00
Akos Kiss c7d33e9887 Don't concatenate multiple JS scripts in jerry
Jerry (the command line tool) has been supporting the execution of
multiple script files for long. However, until now, it simply
concatenated all sources into a single source buffer and
parsed/executed them as one unit. Other JS execution tools (e.g.,
jsc, v8) load and execute separate files as separate units -- but
still in the same execution environment. The most significant
effect of this approach is that the `"use strict;"` directive (or
the absence of it) at the beginning of each JS script file takes
effect as expected (i.e., as if the script was executed alone).
Contrarily, the concatenation-based approach forces the strictness
of the first script on all the rest (i.e., if the first script
starts with `"use strict";` the rest is also executed in a strict
environment even if they did not contain the directive, and vice
versa).

This patch makes the jerry command line tool to load/parse/run one
unit at a time.

Side effects:
- As there is no need for separate file read routines that load one
  file (a snapshot) or concat multiple (JS sources) anymore, those
  routines got merged.
- Both previous read routines used multiple stdio functions
  (`fseek`, `ftell`, and `rewind`). This has been simplified to
  rely on `fread` only to find out the length of the input.
- This simplification made the above mentioned functions
  superfluous in jerry-libc.
- As some error messages had to be touched in this patch, several
  more have been beautified to make them more consistent.
- One small change was needed in `jerry_parse` in jerry-core to
  allow subsequent parsing of multiple sources (without that, an
  assertion was triggered).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-05-19 12:07:54 +02:00
László Langó e1c8a2ec96 Run JS regression tests in snapshot mode too
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-18 17:05:13 +02:00
Akos Kiss de5b77d135 Shrink test logs by not printing full paths
Both JS test suite and unit test logs can grow large as Makefile
invokes run-test-suite.sh and run-unittests.sh with absolute paths
to engines and test directories, which get then printed quite
often. This patch adds code to the runner scripts to determine the
longest directory path common to the current working directory, the
invoked script, the test directory, and the engine (in case of JS
tests). Then, when a path is to be printed, this common path
component is skipped.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-05-18 14:08:25 +02:00
Zoltan Herczeg 12a58e6fc6 Byte code related symbolic constants and macros in vm.h get better names
and comments. Space consumed by opcode triplets are reduced to 16 bits
down from 32 bits. This reduces the opcode triplet tables by 220 bytes.
New symbolic constants and defines were also added to describe common
operations.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-18 05:00:33 -07:00
Zoltan Herczeg 7b9e6a873f Integer acceleration for basic arithmetic and comparison.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-18 04:51:58 -07:00
László Langó 07dabff1ab Update API reference
* Fixed code style issues
 * Updated the documentation of 'jerry_parse' and 'jerry_run'
 * Fixed broken anchor formats
 * Fixed 'jerry_api_value_t' usage
 * Updated fuction parameters

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-18 11:22:29 +02:00
László Langó 0ff35311ca Add new API examples
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-17 16:22:33 +02:00
László Langó 1938415b0d Remove 'test-js-precommit' target from Makefile
When performing `make precommit`, instead of running only a subset of
the Jerry Test Suite on full profile builds, run the whole suite, and
also run the compact subset of the suite on compact builds. Also, make
CI perform the same tests.

Related issue: #879
Related PR: #912

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-17 15:42:27 +02:00
Zoltan Herczeg 00f759e275 Introduce integer ecma-value representation to reduce the double allocations.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-17 00:11:19 -07:00
Zoltan Herczeg 7cf8b79429 Argument literal names were not stored in the snapshot, because the
names were replaced by empty strings before that. The snapshot form
of tests/jerry/arguments.js fails because of this issue.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-05-16 23:49:41 -07:00
László Langó 2d7f1d1070 Warning fixes for jerry-libm
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-13 15:52:56 +02:00
László Langó 953e45f266 Remove 'ecma_assert_object_type_is_valid' from release
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-13 15:29:49 +02:00
László Langó 210ba6dc85 Update API-EXAMPLE.md
Fix Jerry style and update to the current API.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-10 12:44:18 +02:00
Akos Kiss 7e0cd850a7 Fix check-signed-off.sh: remove CR from git show output
When merging PRs via the GitHub web interface, CR characters can
sporadically appear in the commit message. This can also cause
signed-off-by message mismatch in check-signed-off.sh (even if
everything else is OK). To be on the safe side, this patch removes
any CR characters from the output of git show when performing the
check.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-05-09 11:35:39 +02:00
Robert Sipka de1912f6f8 Improve the string descriptor.
Separate the utf-8 and ascii strings.
In case of ascii strings the size is equal to the length, so we able to store this information
in the string descriptor instead of using the string header to store it.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-09 09:58:11 +02:00
Rob Moran 54d6e1f44f Updated readme.md to reflect new folder structure.
JerryScript-DCO-1.0-Signed-off-by: Rob Moran github@thegecko.org
2016-05-07 17:42:03 +01:00
László Langó fe3c269e99 Fix return value of 'jerry_api_get_object_field_value'
Fixed the return value to return false when the field does
not exist as the documentation says.

Related issue: #1041

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-06 21:07:19 +02:00
László Langó 2a5468a2ac Improve double to string conversion
Added errol implementation. Fixed '3d-raytrace.js', because
the new algorithm has better precision and also reduce the
code size.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-05-06 14:53:50 +02:00
Imre Kiss 5369fd4515 Merged target for mbed boards.
Merged the mbed releated targets into one source.
Available targets: FRDM-K64f, Discovery-STM32F4, Discovery-STM32F429ZI, NUCLEO-STM32F4

JerryScript-DCO-1.0-Signed-off-by: Imre Kiss kissi@inf.u-szeged.hu
2016-05-06 13:33:26 +02:00
Robert Sipka 94161d350a Check the return value of the gettimeofday() in 'jerry_port_get_time_zone' and 'jerry_port_get_current_time' functions.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-06 10:50:39 +02:00
Robert Sipka 3de4170c15 Unified the commenting form of the internal properties and removed the unused types.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-05 15:06:25 +02:00
Zsolt Borbély 7813801cd3 Fix wrong indentations of function parameters
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-05-02 13:38:28 +02:00
Robert Sipka 19b972b8eb Check whether the aligned pointers value of the internal properties can be stored directly in ecma_value_t.
Those internal properties which have a primitive value field or where the property value type
is an ecma_object_t ptr were checked earlier.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-02 10:54:48 +02:00
Robert Sipka af65a9e912 Store aligned pointers directly in ecma_value_t if it is possible.
This change affects only those internal properties which have a primitive value field.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-05-02 10:20:56 +02:00
Akos Kiss 33a1203d6b Drop jerry_port_putchar
Recent changes eliminate the need for `jerry_port_putchar`. As port
API discussions don't make it likely that it will ever be needed
again, this patch removes its declaration from jerry-port.h and its
implementations from the port(s).

The related code in jerry-libc is not needed either: whatever `putc`
(and `puts`) can do, `printf` can do as well.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-23 22:50:50 +02:00
Akos Kiss 0c7d3fb705 Factor out common error dispatch call functionality into helper
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-22 16:16:05 +02:00
Akos Kiss 27682017e9 Remove unused internal functions
The internals have surprisingly large number of unused functions at
surprising places. This patch cleans them out to make maintenance
easier and to prevent dead code having effect on future decisions.

The patch intentionally does not try to clean up public API but
focuses on internal modules only that are/should not be reachable
from "outside".

However, unit tests do access private API, thus tests of literal
storage had to be adjusted.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-22 14:39:43 +02:00
robertsipka a87aca4d84 Don't use pointer compression where the ecma_value can store pointer value directly
This changes affects those internal properties where the property value type is an ecma_object_t ptr.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-04-22 14:30:53 +02:00
Dániel Bátyai 3203613b07 Add some asserts to check heap structure consistency
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-04-22 13:59:34 +02:00
Akos Kiss 68f3465eb5 Change current time from uint64_t to double in Date Port API
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-21 14:51:31 +02:00
László Langó 80bfb61b13 Remove unnecessary error bit negation
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-04-21 09:36:42 +02:00
Akos Kiss b523cf3cd1 Introduce the Date Port API
Replaced `gettimeofday`-related code with `jerry_port_get_current_time`
and `jerry_port_get_time_zone` function calls. Moved old code to
default port implementation.

Removed `ENABLE_DATE_SYS_CALLS` as date syscalls should "just work".

Fix DST adjustments: even if `gettimeofday` returns meaningful data in
`tz_dsttime`, the value is just a flag (or, according to some sources,
a tri-state value: >0 if DST applies, ==0 if DST does not apply, <0 if
unknown). Hitherto, the field was simply added to/subtracted from a
time value in milliseconds. To use it approximately correctly, the
field's value should be multiplied by "millisecs/hour".

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-20 17:56:30 +02:00
Zoltan Herczeg a3b1db3638 Add property name hashing support.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-04-20 03:38:43 -07:00
Akos Kiss 02ba19f24d Introduce the Termination Port API
* Moved the error codes to jerry-port.h and declared port function
  `jerry_port_fatal`.

* Moved "exit or abort on fail" functionality to the newly added
  jerry-port-default-fatal.c.

* This implied that a default port-specific API had to be introduced:
  functions `jerry_port_default_set_abort_on_fail` and
  `jerry_port_default_is_abort_on_fail` declared in jerry-port-default.h
  control the fatal exit behaviour.

* For the sake of clarity, renamed jerry-port.c to
  jerry-port-default-io.c.

* Adapted CMakeLists to deal with port implementations consisting of
  more then one source file and exposing headers. This also required
  the renaming of `EXTERNAL_PORT_FILE` cmake option to
  `EXTERNAL_PORT_DIR`.

* Adapted main sources to use the default port header for the
  abort-on-fail functionality, as that is not part of the core jerry
  API anymore.

* Added default port implementation to the static source code checker
  tools.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-19 14:10:18 +02:00
Robert Sipka 9ee4379ede Use 'ECMA_VALUE_CAN_STORE_UINTPTR_VALUE_DIRECTLY' instead of comparison with 'sizeof'
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-04-19 13:49:03 +02:00
Akos Kiss 3a8d3b3bcc Unifiy the comments of preprocessor conditionals
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-18 19:20:49 +02:00
Akos Kiss df1e428c71 Update existing and add missing copyright & license notices
* LICENSE needed year update.

* The asm component of the posix target of jerry-libc had no
  copyright & license notice since it has been introduced in 2015.
  Traced back history and added missing header with correct years.

* Three tests in jerry/fail/1 also missed header. Added.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-16 00:06:44 +02:00
Zoltan Herczeg e92ecd44e7 Refactor ecma value to store pointers directly in ecma values rather than compressing them.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-04-15 11:35:51 -07:00
Akos Kiss bb665336d4 Fix layering violation in applications
Apps that use jerry should not (must not!) include and rely on its
internal headers. Typical issue is the use of "jrt/jrt.h". Fixing
`main-{unix,mcu}.c`, and speculatively the apps under the `targets`
directory as well.

(Note: a fix can be either including "jerry-port.h" and using
functions declared there, e.g., `jerry_port_errormsg`, or simply
using standard libc function like `printf`. Both approaches occur
in this patch.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-15 17:16:28 +02:00
Zsolt Borbély 40e4d2638b After #984 we can increase the heap size to 512K
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-04-15 12:44:22 +02:00
Akos Kiss 4b0b8f3d4f Merge darwin and linux jerry-libc targets into a single posix target
The two target implementations are very close clones of each other.
The only known differences are the following:

* The asm component of the linux target has `.type` and `.size`
  declarations for the functions defined therein, while the darwin
  target doesn't support those.

* Linux uses `__NR_xxx` mnemonics for syscall numbers, while darwin
  uses `SYS_xxx` format.

* Darwin does not have `exit_group` syscall but `exit` only.

* The linux target has a commented out `jrt_set_mem_limits` fuction
  declaration at the end of the C source. (Based on its name, this
  function does not really belong here.)

Simple preprocessor macros can unify the first three differences.
While for the sake of legacy, we can keep the fourth commented-out
code in the code base; it might turn out to be useful elsewhere in
the future. Since it remains commented out it wont cause any
problems on any OSs.

So, this patch gets rid of a lot of duplication.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-15 10:20:27 +02:00
Robert Sipka 7a88ddec08 Remove the unused LIT_STRING_HASH_LAST_BYTES_COUNT define macro
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-04-14 15:54:11 +02:00
Dániel Bátyai e191794118 Print unhandled errors in REPL mode
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-04-14 14:01:47 +02:00
Akos Kiss ff185dc57e Turn assert functionality standard-conforming in jerry-libc
Introducing the `assert.h` public header with the `assert(x)` macro
and already making use of it in jerry-libc sources. These newly
introduced ISO C-conforming features replace the non-conforming
`LIBC_ASSERT` and `LIBC_NDEBUG` at no cost, and they also have the
benefit that we can expose `assert` in a public header and make it
useful to jerry-libc users.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-14 11:22:53 +02:00
Istvan Kadar ecfd478df0 Improvements related to lexer
Improvements related to lexer:

* duplicated clone elimination
* magic numbers are replaced with constants
* functions are moved form util to lit-char-helpers

JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-04-14 10:26:36 +02:00
Zoltan Herczeg c7dcce4fc7 Refactor object property chain to use property pairs. The patch
itself seems a step back, but the primary aim is opening future
optimization opportunities. The list of changes follows:

 - Property is changed to be an abstract type, which has type, flags,
   and a value. It does not have a name anymore and property pointers
   cannot be compressed.
 - Full (32 bit) ecma values can be property values. This allows
   using non-compressed pointers for ecma values in the future.
 - The property chain is not restricted to the same item anymore,
   it can contain hash maps, arrays in the future.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-04-13 23:25:16 -07:00
Akos Kiss 9aca0086b9 Doc comment maintenance
Fixed doc comments issues:

* Fixed mistyped param doc comments (`/**<` is OK, `/** <` is not).

* Put special characters (e.g., pipe, backslash, etc.) in quotes, as they can
  confuse doxygen and it will print lots of various warnings. For the sake of
  completeness and consistent style, also quote some special characters in
  re-bytecode.h

* Added missing `@{`s, removed extra `@}`s.

* Turned `/*` comments to `/**<` doc comments.

Ensured same style for doc groups everywhere:

* Where `\addtogroup`, `@{`, and `@}` doxygen commands are used, the order to be
  followed is: license, `#ifndef` guards (in headers), includes, `\addtogroup`
  and `@{`, main code content, `@}`, `#endif` guards (in headers).

* Multiple `\addtogroup`s or multiple `@}`s should be in the same doc comment.

* First `\addtogroup` should be on the very first line of a doc comment, i.e.,
  `/** \addtogroup`.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-13 21:47:28 +02:00
Akos Kiss a7f015ef47 Implement raise () in libc
The core functionality (i.e., the equivalent of `kill (getpid (), sig);`)
was already there in the implementation of `abort ()`. Now, it got
factored out to `raise ()` so that others (most importantly,
`__aeabi_ldiv0`) can call and link to it as well.

Also, removed `LIBC_UNREACHABLE_STUB_FOR` macro, as it is not used anymore.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-12 22:45:01 +02:00
Zsolt Borbély 7b10f912a9 Buildfix for MCUs
The MCU-targets depend on some platform-related resources.
When these files are missing the build cannot be performed.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-04-12 13:09:29 +02:00
László Langó c98cb65373 Use 'const' in string iterations.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-04-12 12:52:59 +02:00
László Langó 9dad7dbfba Introduce ECMA_STRING_TO_UTF8_STRING and ECMA_FINALIZE_UTF8_STRING
Benefits:
 * Better readability and maintenance
 * Better heap consumption on 'date-format-xparb.js' test of SunSpider

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-04-12 12:52:59 +02:00
Akos Kiss 9ab0998ae6 Remove syscall trampolines from jerry-libc
After recent changes to jerry-libc, `syscall_N` C functions became
pure trampolines to their appropriate `syscall_N_asm` counterparts
written in assembly. Removing the C functions and renaming the
assembly functions to take their place simplifies the code.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-12 00:54:42 +02:00
Dániel Bátyai 1ae05eda64 Add help flag and usage to UNIX Jerry standalone.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-04-11 15:30:57 +02:00
Dániel Bátyai 764229b262 Fix syscall assertion when input file does not exist
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-04-11 14:34:08 +02:00
László Langó b78f5a55bb Fix assertion on unhandled exceptions
Follow up fix after #815 ('a187e6d'). Fixed the following
assertion on unhandled exceptions:
  * ICE: Assertion 'ecma_get_value_type_field (value) == ECMA_TYPE_OBJECT'
    failed at ecma-helpers-value.c(ecma_get_object_from_value):375.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-04-11 10:53:15 +02:00
Akos Kiss 920a9ee244 Remove jerry_reg_err_callback API function
Discussions on Termination Port API point in a different direction
than what's already in the API. Moreover, since the function has
been throwing unimplemented assert error since its introduction,
we should remove it from the code base.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-08 16:54:07 +02:00
Akos Kiss 3ba286f3e1 Turn modified fdlibm into Jerry's own libm
* Rename modified fdlibm to jerry-libm
  * Move third-party/fdlibm to jerry-libm
  * Rename original fdlibm.h to jerry-libm-internal.h
    * And remove it from the public headers.
  * Rename jerry-libm's public header to math.h
    * This also makes jerry-core sources include `<math.h>`. Therefore,
      should anyone want to use a different libm implementation with
      jerry, it becomes possible. (The same way as we provide a minimal
      libc with standard headers, but should it be insufficient or
      conflicting for someone, it can be replaced.)
  * Drop `s_` prefix from jerry-libm sources
    * The original fdlibm implementation had various prefixes (e.g., `k_`
      for sources of kernel routines, and `w_` for wrapper routines), but
      after the specialization of fdlibm to jerry, only `s_` remained.
      Since it does not encode anything anymore, it can be dropped.
  * Stylistic edits to jerry-libm's CMakeLists
    * Align project name with other CMakeLists in the code base
  * Move Jerry-LibM under Apache License
    * Using the same approach as was used by linux-wireless when ath5k
      driver license needed clarification. Solution was proposed by SFLC.
      External mail for future reference: http://lwn.net/Articles/247806/

* Tests & checks
  * Remove FD from the name of libm unit test-related files
  * Make vera++ and cppcheck check jerry-libm

* Targets
  * Speculative update of targets to use jerry-libm

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-08 15:38:47 +02:00
Akos Kiss 45c89fef28 Add AArch64 support to fdlibm
Endianness was not properly set/detected for AArch64. Once that is
fixed, the platform is well-supported.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:10:50 +00:00
Akos Kiss d501c92f96 Eliminate TODO and FIXME macros
Those macros are legacy and are not used consitently throughout the
code base. This patch eliminates their definitions and rewrites
their remaining occurrences to TODO comments.

All occurrences have been checked and made sure that the comments
used a consistent style.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 14:40:43 +02:00
Akos Kiss 3127b9d34d Fix asin
Re-styling of the sources revealed that the false branch of an
if-else construct in `asin` did not contain all the statements
that it should. (This was an issue -- a bad smell at least --
that's been around since 1995, according to the legacy SCCS ID.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:45:22 +02:00
Akos Kiss 8dd5186a0d Re-style fdlibm to conform to jerry guidelines
* First re-style was done automatically by indent to minimize the
  chance of errors during rewrite.

* Manual changes were applied to non-critical places only (comments
  and spaces):
  * Replaced all tabs with spaces.
  * Fixed tab stops in formulae in function comments.
    (Note: ASCII art for math formulae (especially for super- and
    subscripts) is a terrible idea.)
  * Unified the style of function comments.
  * Moved some in-code comments to their right places, which indent
    couldn't handle.
  * Added spaces to formulae of in-code comments to make them more
    readable.
  * Added braces mandated by jerry style guidelines.
  * Added parentheses to multiline #ifdef.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:45:22 +02:00
Akos Kiss b39474c746 Merge sin/cos/tan and all helper functinos in a single source
* Made helper functions static.
* Changed the signature of __kernel_rem_pio2 not to require the
  ipio2 argument

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:45:22 +02:00
Akos Kiss a72caf1301 Turn simple constants to preprocessor macros
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:45:22 +02:00
Akos Kiss 397dff81ee Specialize fdlibm to jerry
Keep IEEE code paths only:
* removed SVID, XOPEN, POSIX code paths from everywhere.
* deleted s_lib_version.c, as version is only useful if multiple
  standards are supported.
* deleted k_standard.c, as it handles non-IEEE exception cases only.
* renamed the e_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c sources as
  s_.*, dropped the __ieee754_ prefix from the names of the
  appropriate functions therein, and deleted the
  w_{acos,asin,atan2,exp,fmod,log,pow,sqrt}.c wrapper code.

Keep C99 declaration variants only:
* removed old C-style function declaration variants.
* removed data declaration variants where const qualifier was not
  used.

Clean unused sources/functions:
* removed s_{rint,significand,tanh}.c and the appropriate functions
  defined therein.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-04-06 13:45:22 +02:00
Zoltan Herczeg d674b92f26 Refactor object properties to become real fields.
The positive side effect is that the maximum Jerry memory is increased to 512K.
Furthermore a slight (1.3%) performance improvement was measured on RPi2 with
SunSpider.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-04-06 03:36:44 -07:00
Zsolt Borbély 2f661f9509 Modify the buildoption-test and add to Travis CI as a job
MCU-targets were removed from buildoption-test temporarily.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-30 15:25:36 +02:00
Zsolt Borbély 21f8f06c51 Test the build options
Add new build target: test-buildoptions
Now every build option is tested on the proper targets. These are the native
and the MCU targets in release mode and unittests.
Therefore the USE_COMPILER_DEFAULT_LIBC build option is refactored.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-25 10:19:00 +01:00
Geoff Gustafson f0db5c9754 Fix compile warnings about always_inline functions in GCC 5.2.0
The warning is "always_inline function might not be inlinable", fixed by
adding inline keyword. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55830

JerryScript-DCO-1.0-Signed-off-by: Geoff Gustafson geoff@linux.intel.com
2016-03-24 08:40:11 -07:00
Zoltan Herczeg cc23c225ea Fix snapshot saving issue.
Snapshot save algorithm should not resolve uninitialized literals.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-24 02:57:31 -07:00
Akos Kiss 6290b2d236 Remove MEM_HEAP_PTR_64 macro
MEM_HEAP_PTR_64 is duplicating existing information: stdint.h, which
header is already used by the project, defines various _MAX macros
for upper limits of integer types. The comparison of UINTPTR_MAX and
UINT32_MAX can give the same info as encoded in MEM_HEAP_PTR_64.
The stdint.h-based approach has the benefit that jerry can support
any 64-bit architecture without the need for editing the build
system. (With the existing approach, CMakeLists has to know about
every 64-bit architecture to work properly.)

Thus, removing the extraneous macro from the code.

The patch also changes the mem_pools_chunk_t struct, as it turned
out that the struct does not have to be padded to MEM_POOL_CHUNK_SIZE.
(The padding also depended on MEM_HEAP_PTR_64.) It is enough if the
size of the struct is smaller than (or equal to) MEM_POOL_CHUNK_SIZE.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-22 22:14:47 +00:00
László Langó 2027caeda5 Performance optimizations
* inline some hot function
 * add 'ecma_copy_value_if_not_object' similer to 'ecma_value_free_if_not_object'
 * remove unnecessary helpers
 * improve 'do_number_bitwise_logic'

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-22 08:05:00 +01:00
François Baldassari 94f887919e Make target provide jerry-port.c
JerryScript-DCO-1.0-Signed-off-by: François Baldassari francois@pebble.com
2016-03-21 13:08:11 -07:00
Zoltan Herczeg af246943f2 Optimize string character access for ascii strings and refactor type store
to allow two byte hashes in the future.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-21 02:24:35 -07:00
Akos Kiss 91b1547fa5 Add unit testing of fdlibm
The project is relying on a variant of fdlibm, which has aleady
been edited but never verified for correctness. This patch adds
unit testing of fdlibm by:

* introducing a test generator that uses a trusted libm
  implementation to calculate correct and expected results of math
  functions
  (tools/gen-test-fdlibm.sh and tools/unit-tests/gen-test-fdlibm.c),
* adding tests created with the generator that stress all publicly
  exported functions of jerry's fdlibm
  (tests/unit/test-fdlibm.inc.h), and
* adding a unit test file to drive the generated tests
  (tests/unit/test-fdlibm.c).

Note: The test generator is not expected to be executed often, thus
it is not wired into the build system. If it gets edited, it must
be used locally to re-generate the .inc.h file.

During development, it turned out that tests/unit/test-common.h
included the system header math.h, which was only a bad smell until
now but became a real header conflict issue with the introduction
of the fdlibm unit test. Thus, this patch also changes the include
to fdlibm-math.h.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-21 09:21:48 +01:00
Akos Kiss 48dca0af35 Fix: code-related vera++ rules should not be enforced in comments
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-21 08:51:26 +01:00
Akos Kiss 57db5ca918 Fix regexp character classes with \uNNNN and \xNN code points
Currently, if a regexp contains a character class and that
character class contains a hex-specified code point -- either
\uNNNN or \xNN --, then the character 'u' or 'x' is added to the
character class as well. This patch fixes the error and also adds
a regression test covering the issue.

Fixes #962

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-20 13:52:14 +01:00
Akos Kiss 69291e2dc4 Remove exec mode from non-executable files
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-20 12:24:05 +01:00
François Baldassari b59af40e91 Fix precommit scripts on OSX
JerryScript-DCO-1.0-Signed-off-by: François Baldassari francois@pebble.com
2016-03-18 10:06:09 -07:00
László Langó e1f20ad474 Use code unit instead of code point
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-18 09:59:04 +01:00
Zsolt Borbély 005f73a6f0 Fix build with enabled LOG option
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-17 09:11:54 +01:00
Akos Kiss ea2f0e44fb Fix terminology of snapshot saving in literals and main
In case of literals and in main, snapshot saving is incorrectly
named dumping. Elsewhere in the code, 'dump' functions output debug
data (even literals have a `lit_dump_literals` debug function). To
help distinction and to align terminologies, snapshot saving
functions of literals and command line options of main are also
re-named 'save'.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-16 11:26:46 +01:00
Zoltan Herczeg d190ca44ae Storing byte code size in the byte code header. This reduces the
memory consumption, because the new allocator uses less memory if
the size as available when a block is freed. Snapshot generation
is also simplified.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-16 02:58:10 -07:00
Akos Kiss 2a5d17e736 Fix SCCS IDs in fdlibm
Most of the legacy version control IDs in fdlibm are already simple
comments at the beginning of the source files. However, in some
files, there are leftover global variables and pragmas. (The global
variable in e_pow.c even increases the .data section in both debug
and release builds.) This patch turns all legacy IDs to comments of
unified style.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-16 09:32:50 +01:00
Akos Kiss 3e02e792b6 Fix .size longjmp in the linux port of jerry-libc
Fixing a typo, which resulted in an undefined (but harmless) symbol
in jerry-asm.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-12 00:34:34 +01:00
François Baldassari 05e7a837c4 Allow external builds to use non-gnu compilers
JerryScript-DCO-1.0-Signed-off-by: François Baldassari francois@pebble.com
2016-03-11 10:13:26 -08:00
François Baldassari 7b047d4b20 Add acquire_value API to simplify caller code
JerryScript-DCO-1.0-Signed-off-by: François Baldassari francois@pebble.com
2016-03-11 09:57:40 -08:00
Akos Kiss 66c94b7d9b Refactor the printing of memory usage statistics
Make the internal heap and pools memory usage statistics APIs more
similar: how the print functions are named, where they are
implemented, and which parts of them are guarded by `MEM_STATS`.
Also, adapt unit tests to the changes.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-11 10:51:40 +01:00
Akos Kiss 011dacd1a7 Fix initialization from incompatible pointer type error in re_dump_bytecode
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-11 09:02:06 +01:00
Akos Kiss a9c77b49ee Improve the dumping of literals
* Guard `lit_dump_literals` with `JERRY_ENABLE_LOG` (both in source
  and in header).
* Change `printf`s to `JERRY_DLOG`.
* Make `lit_dump_literals` be called in `lit_finalize` (it was dead
  code).
* Remove its duplicate declaration from lit-literal.h

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-11 08:48:29 +01:00
François Baldassari c82caa7f3c Initlialize ecma gc state on jerry init
JerryScript-DCO-1.0-Signed-off-by: François Baldassari francois@pebble.com
2016-03-10 15:35:47 -08:00
Akos Kiss 6e687fa6b7 Remove support for per-instruction memory statistics
The new CBC interpreter does not support it anymore, thus removing
related code.

(As a side-effect, `jerry_flag_t` has been refactored from
`uint32_t` and associated defines to an enum.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-10 13:19:36 +01:00
László Langó 6f536c7942 Few improvements for RegExp
Added eviction mechanism to RegExp cache and small
refactoring. Fixed a bug when logging is enabled.

Related issue: #927

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-10 13:09:08 +01:00
Akos Kiss 7a07e55411 Unify the naming scheme of all header defines
There have been several renamings of header files but the
ifndef/define/endif preprocessor directives did not always follow
the file name changes (or perhaps never followed a unified naming
scheme). This patch gets all headers aligned with the style of the
majority.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-10 11:26:14 +01:00
Akos Kiss a19f63f4a5 Check unit tests with vera++ & fix reported issues
Cppcheck has already been used for checking unit test sources
statically but vera++ style-checking of unit tests was left out,
most probably only by mistake. This patch adds unit tests to the
set of style-checked sources and also fixes the stlye issues that
were present in the test code.

(Extra: since the project is pure C now, not trying to collect
*.cpp files anymore.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-10 11:13:47 +01:00
László Langó 21e2951a44 Use '-Werror' instead of '-Werror=...' for Jerry libc
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-09 15:39:56 +01:00
Robert Sipka 073ab05366 Build fix for mbedk64f target
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-03-09 14:36:45 +01:00
László Langó ab26d57841 Don't use messages for errors by default
Use empty string for message property of builtin error objects
by default. Add ERROR_MESSAGES build option.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-09 11:44:32 +01:00
Akos Kiss 81d4c97a3a Add ARM cross build and QEMU user space emulated tests to the CI
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-09 10:07:00 +01:00
Robert Sipka 0b5a49f98b Warning fixes.
Passing argument 1 of ‘strncmp’ from incompatible pointer type.
Assignments from incompatible pointer types.
Passing argument or initialization discards ‘const’ qualifier from pointer target type.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-03-09 09:41:23 +01:00
Akos Kiss 25b0750756 Fix problems arising from incorrect use of various size types
E.g.,
* `ssize_t` was used where `lit_utf8_size_t` or `jerry_api_size_t`
  would have been correct,
* `lit_utf8_size_t` was used where `ecma_length_t` would have been
  correct.

Note, the patch also includes internal and public API changes:
* `ecma_string_to_utf8_string` does not return negative value if
   output buffer is not large enough to contain the string; the
   buffer is expected to be large enough. (`ecma_string_get_size`
   can be used to retrieve the required size.)
* `jerry_api_string_to_char_buffer` adapts the same logic (and
  `jerry_api_get_string_size` can be used to determine the
  required size of the buffer).

Related issue: #942

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-08 15:22:07 +01:00
Zsolt Borbély ce2fc3ccfd Remove the duplicated declaration of parser_set_show_instrs()
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-08 13:03:14 +01:00
Zsolt Borbély c141f766ee Use basename in a more generic form
Not all versions of basename supports the suffix option.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-08 12:49:10 +01:00
László Langó 9bf1ecc677 Disable date object related system calls by default
Use DATE_SYS_CALLS=ON for make target to enable the
date related system calls. Also fix some minor issues.
Related issue: #923

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-08 12:13:55 +01:00
Akos Kiss e926aa7d69 Remove dead macros from memory management code
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-07 14:05:35 +01:00
Akos Kiss d4650bc75c Change pool-based allocation to heap-based allocation in jerry.c
There was an abuse of memory pools in jerry.c: `compiled_code_map_entry_t`
is not an ECMA data model object but was still alocated/freed via
mem pool functions. Changed the appropriate calls to heap-related
functions.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-07 13:31:42 +01:00
László Langó a187e6d60c Print error messages to be more informative
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-07 12:02:05 +01:00
Akos Kiss 212aa34331 Remove memory management-related dead code
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-07 11:00:59 +01:00
Akos Kiss c0f3a9f7fb Add STRIP_RELEASE_BINARY option to Makefile
It is already supported by CMakeLists, might be useful to allow it
to be passed through Makefile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-04 15:19:59 +01:00
Akos Kiss b6af308d3f Add full profile to MCU build targets
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-04 15:05:27 +01:00
Zoltan Herczeg 73dcf689d2 Fix warning when returning from vm_loop.
Related issue: #930

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-04 03:15:10 -08:00
István Kádár afa7b78b45 New unicode character handling using array data structure.
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-03-03 15:21:43 +01:00
Zoltan Herczeg b8b587f76c Rearrange fields of ecma_property_t to be naturally aligned. Packed attribute and __extension__ keywords are removed. The standard approach reduced the binary size by 2K.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-03 05:18:28 -08:00
Akos Kiss 86cdc4b482 Remove the prerequisites installation and MCU build steps from Travis CI
The repeated downloads of the STM packages cause a huge slow-down
of Travis, especially when the source site becomes irresponsive
(which even causes Travis to report errors when the build would
work fine otherwise). Unfortunately, the license of the STM
packages does not allow their inclusion in the repository. (Note:
locally executed `make precommit` still builds MCU targets.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-02 16:54:45 +01:00
Akos Kiss f2bdf08511 Remove default handling of build options from Makefile
The handling of option defaults is already done in CMakeLists, it
is no good practice to duplicate the logic in the Makefile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-03-02 12:12:40 +01:00
Zoltan Herczeg 1200be42b4 Non-recursive vm_loop to reduce stack usage.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-03-02 01:52:55 -08:00
László Langó 2c72bb1139 RegExp refactoring and improvements
Move RegExp bytecode functions to a separate file.
Optimize bytecode lenght on character matching.
Implement a basic RegExp cache to optimize memory
usage on duplicated RegExp in JS files. Also fix
minor style issues and add missing comments. Improve
existing comments.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-01 13:54:14 +01:00
Zsolt Borbély 3f377692d9 Small refactorings
Modifications:
* eliminate unnecessary variables, functions
* use ECMA_NUMBER macros where it is possible
* simplify code
* minor style fix (comments, increase-decrease operators)

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-03-01 13:11:43 +01:00
László Langó e14d0b8942 Fix the format of doxygen comments of output arguments
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-03-01 12:37:33 +01:00
Dániel Bátyai d47c36f1b4 New Allocator and improved String handling.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
2016-03-01 10:44:35 +01:00
Akos Kiss 3d6339bbf4 Remove unused EXTERNAL_ variables from Makefile
They have been kept when the build system was refactored but it
turns out that they are not used at all (they are not passed on to
cmake).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-29 23:31:40 +01:00
Akos Kiss c9f5950e15 Replace bit field manipulation functions with macros
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-29 12:21:23 +01:00
Robert Sipka 5d3aa98b3b Warning fix for ALL_IN_ONE.
Passing argument 2 of ‘lexer_same_identifiers’ discards ‘const’ qualifier from pointer target type.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-25 15:05:18 +01:00
Robert Sipka af715d4ad6 Build fix for ALL_IN_ONE.
Add another argument for the JERRY_STATIC_ASSERT with the description of the assert statement.
The release.linux build fails with enabled ALL_IN_ONE option.
There is no redefinition of typedef in C99.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-25 13:57:55 +01:00
Szilard Ledan 3543d0c184 Fix the ARM linux native build for RPi2
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2016-02-24 17:11:00 +01:00
László Langó 76b37f34d0 Build fix
Fix build error on darwin and build with default libc.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-23 12:31:05 +01:00
László Langó 9d7978074f Fix 'jerry-test-suite/13/13-011.js' fail in compact profile
Arguments object is not supported in compact profile, so remove
the test from 'compact-profile-list'. Do not create arguments
object on function calls in compact profile. Remove unnecessary
arguments check.
Related issue: #879

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-22 14:35:37 +01:00
Akos Kiss 235a5b1329 Refactor ECMA builtin template
Avoid sorting the array of property magic string IDs and make it
const, thus ensuring that it gets placed in .rodata. Replace the
binary search in the array (which would not work anymore because
of unsortendness) with function that returns the index of the
looked-after magic string ID using a switch-based logic (we rely
on compiler optimization to generate optimal code from that
switch).

Extras:
* Getting rid of the superfluous macro argument from routine names.
* Fixing the list of undef'd macros
* Fixing related comments

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-22 13:47:45 +01:00
Akos Kiss 866ef5bcf3 Add some more consts to get data moved from .data to .rodata
We already had some `const`s but it was still not enough.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-22 13:04:34 +01:00
Akos Kiss d857fe095f Improve the usability of test runner scripts
* First of all, remove the counter-intuitive "OUT_DIR" second
  argument of run-test-suite.sh. This, way, the invocation of the
  script becomes easier to remember:
  `tools/runners/run-test-suite.sh <engine> <testsuite>`
  However, this also means that all output files (lists of
  executed, passed, and failed tests) are generated in the current
  working directory.

* Align the behaviour of run-unittests.sh with the above, i.e.,
  don't try to guess where to put output files but write them in
  the CWD.

* Adapt Makefile to the change in the use of the test runner
  scripts: create and change to "check" directories before invoking
  test runner scripts.

Extras:
* tools/runners/run-test-suite.sh collected fail tests from
  directories twice. This does no harm but is inefficient, thus
  removing.
* tools/runners/run-test-suite.sh was too permissive on the
  contents of test suite list files. Better to accept those lines
  only which really contain paths to JS test files.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-22 12:04:07 +01:00
Akos Kiss aa0b6215fa Replace the EXTERN_C macro with extern "C" { block in fdlibm
Jerry-libc and jerry-core already uses the block-based approach.
Now, removing the last remnant of the macro approach from fdlibm as
well.

Closes issue #900

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-22 09:33:10 +01:00
Akos Kiss f088e8c147 Drop unimplemented run context stubs
Run context stubs have been lingering in the code base for almost a
year but they have never been more than unimplemented ideas.
Moreover, they are guarded by a macro that's nowhere defined, thus
the code is never compiled or tested.

Should contexts be implemented in the future, they may or may not
be implemented the way they are sketched now. Thus, it's safe to
remove this dead code from the sources.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-20 21:03:32 +01:00
László Langó a0bedaa43d Remove EXTERN_C macros and use block based solution
Related issue: #900

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-19 15:45:14 +01:00
Akos Kiss b2edaafaa1 Move cppcheck logic from Makefile and CMakeLists.txt to tools/check-cppcheck.sh
The legacy approach executed cppcheck for every build target, which
resulted in a huge number of re-checks of the sources if more than
one targets were built. The main reason behind that was to get the
right macro-guarded code paths analyzed. However, cppcheck can
analyze every configuration of the sources in one go.

(The patch also contains some aesthetic changes around the way
vera++ is called and how errors are reported.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-19 13:33:15 +01:00
Akos Kiss be1920dc46 Fix tools/check-signed-off.sh to handle PRs not based on HEAD
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-19 09:36:05 +01:00
Akos Kiss 5afc0600b4 Add merge commit support to tools/check-signed-off.sh and re-introduce signed-off check to Travis CI
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-18 17:06:05 +01:00
Akos Kiss 6107f3599e Change the layout of the doxygen-generated documentation
* Move from index-based layout to treeview-based one.
* Automatically take the first sentence of the documentation as the
  brief doc.
* Always generate both brief and detailed description sections, and
  always sort them alpabetically.
* Disable the generation of huge and overly complex call and caller
  graphs.
* Make the project title title-cased.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-18 16:22:37 +01:00
Akos Kiss 3608f8df86 Refactoring and fixing jerry-libc
Refactor memory and string handling routines
* Potential code size improvements:
  * Most loops don't really need a new incrementing index variable
    running between 0..n-1 but can just loop `while (n--)`, and the
    bodies don't need array indexing but can just use the `*p++`
    idiom.
  * Compare routines are not required to return -1, 0, and +1, but
    any negative, zero, or positive result will do.
  * `strncmp` may follow the other routines and does not have to have
    defined behaviour if any of its args is NULL.
* Fix:
  * `strncmp` did not work correctly if the strings were equal but
    `n` was greater than their length (did not stop at the
    terminating zero character).

Refactor printf
* Merging code duplications, removing dead initialization.

Refactor rand and srand
* Making sure that the type of the state variables is OK
  (`uint32_t` instead of `unsigned int`).
* Getting type conversions OK.
* Fixing `srand` to write all state variables and thus indeed
  generate the same random sequence.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-18 15:40:56 +01:00
László Langó 684ed7268c Fix system call related date builtin functions
Related issues: #213, #691
 * Fixed 'ecma_date_local_tza' and 'ecma_date_daylight_saving_ta' date builtin helper functions
 * Added syscall of gettimeofday function to get the current system time and timezone.
 * Fixed related regression test files.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-18 14:05:36 +00:00
László Langó a7715a5d78 Fix style issues and improve vera++ rules.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-18 13:27:54 +00:00
László Langó db26cb2b79 Optimize 'lit_get_magic_string_size' calls
Calculate magic string length sizes in compile time.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-18 07:38:35 +00:00
Zoltan Herczeg b2426a7a94 Remove 'ecma_completion_value_t'
Remove ecma_completion_value_t, and add an extra bit to
ecma_value_t to represent errors. From the long list of
completion types only normal and error remained.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-02-17 13:52:51 +00:00
Akos Kiss c25d8617a5 Add Travis CI badge to readme
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-17 13:48:11 +01:00
Akos Kiss 85365dacfe Quick fix for Travis CI: remove signed-off check
Pull requests creating merge commits don't work well with
tools/check-signed-off.sh.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-17 12:59:32 +01:00
Akos Kiss ad6107b32b Turn some global variables static const
Generally, it helps the optimizing passes of the compiler if global
varibles are `static`, and it is good for RAM usage to have data
marked read-only `const`. Found some globals, which could benefit
from these qualifiers.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-17 10:55:09 +01:00
Akos Kiss b2f3ec225e Get the alpha order of lexer keywords right
Two keywords violate the ordering. Should someone depend on the
alpha order in the future (because the `keyword_length_*` arrays
seem to be ordered)` then this issue will be a nightmare to debug.
Better get this right now.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-17 10:38:47 +01:00
Akos Kiss b18591eb25 Add support for travis integration
Fully fledged checks, builds, and tests on Linux, non-voting native
builds and unit tests on OS X.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-17 10:10:45 +01:00
Akos Kiss 0d7ea70b41 Eliminating doxygen warnings by fixing the documentation
* Fix "end of file while inside a group" doxygen warnings.

* Fix "unknown command" doxygen warnings caused by incorrect
  argument references. Instead of `@foo`, `@a foo` is the proper
  format.

* Fix "unknown command" doxygen warnings caused by incorrect
  parameter direction specifications. Instead of `@in`, `@out`,
  and `@in-out`, `[in]`, `[out]`, and `[in,out]` are the proper
  formats.

* Wrapping special characters in quotes to avoid doxygen
  confusion. Raw pipe, semicolon, dot, backslash, etc. characters
  can drive doxygen into various misinterpretations and warnings.
  E.g.:
  ```
  End of list marker found without any preceding list items
  Found unknown command
  ```
  Putting quotes around such text snipets eliminates the errors.

* Fix the documentation of `ecma_builtin_global_object_print`. Raw
  <> and \ sequences confused doxygen in various ways (it tried to
  interpret them as XML tags and doxygen commands).

* Fix "ignoring title that does not match old title" doxygen
  warnings. At some places, the group titles were out of sync, at
  others, the group names were incorrect.

* Fix "parameters are not documented" doxygen warnings. Fixing
  various typos in the inline parameter documentations (`/*`,
  `/**`, `/** <`, and `/**>` are all considered incorrect, the
  right format is `/**<`).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-16 21:05:58 +01:00
László Langó ed12df5c8d Improve 'tools/run-perf-test.sh'
Always write results on stdout and save markdown file optionally.
Use "Peak allocated" if binaries were built with MEM_STATS.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-16 14:50:54 +01:00
László Langó 7a7b15c23a Remove unnecessary assertion
Fix for:
  * ICE: Assertion '!is_equal' failed at jerry-core/ecma/operations/ecma-lex-env.cpp(ecma_op_set_mutable_binding):219
Related issue: #879

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-16 14:38:36 +01:00
László Langó 1dde538224 Check reference count of objects
Throw an error if the object reference count reached the limit.
Related issue: #118

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-16 14:30:41 +01:00
Robert Sipka 80811c8332 Warning fixes.
ISO C99 doesn’t support unnamed structs/unions.
Comparison of distinct pointer types lacks a cast.
Dereferencing type-punned pointer will break strict-aliasing rules.
Type of bit-field ‘ext’ is a GCC extension.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-16 13:56:07 +01:00
Akos Kiss 7dc065842b Remove jerry_port_ functions from test-common.h
They are identical to the functions with the same name in
jerry-port.cpp and cause duplicate symbol link errors on OS X.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-16 10:39:21 +01:00
Akos Kiss 7f3a10a29d Move Doxyfile to the root directory of the project
Config files are better located in the root of the project tree,
no questions will raise then what the relative paths are relative
to. (E.g., `INPUT` and `OUTPUT_DIRECTORY` in the current case.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-16 01:28:35 +01:00
Akos Kiss f959ba95a4 Refactoring the build system
* Removed unused or unnecessary parts from various make files
* Eliminated lots of duplications from Makefile with the help of
  macros.
* Split tools/precommit.sh to its independent components:
  * the part that checks the existence of the "signed off" text in
    commit messages
    (this on got factored out to tools/check-signed-off.sh),
  * the part that uses vera++ for style checking (this one got
    factored out to tools/check-vera.sh),
  * the part that invokes targets in the cmake-generated build
    directory, and
  * the part that performs various tests (these latter two got
    moved into the Makefile).
* Moved the functionality of precommit-full-testing.sh into the
  Makefile, too.
* Added ninja build system support (e.g., `make NINJA=1`).
* Updated leading documentation comments (they were somewhat
  stale).
* Tried to keep the target names exactly the same as they were --
  almost succeeded... (some changes are intentional, and are
  subject to personal preferences).
* Simplified console output of `make precommit`
* Unified test runner scripts and their output format
  * Eliminated nothing-to-stdout everything-to-log-file policy:
    info is printed to stdout and it is the caller's
    responsibility to redirect it to a file if needed.
  * Also applied some renaming and coding style unification to
    the scripts.
* Merged the functionality of tools/runners/run-test-suite-jerry*.sh
  into the Makefile
* Merged everything related to a test suite execution in a single
  script.
  * The new script also allows to specify pass and xfail tests in
    a single list file, which was not possible hitherto.
  * Also, the paths of the test cases given in a file are
    interpreted relative to their container files.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-15 18:05:01 +01:00
Robert Sipka 977bfa5d2c Remove g++ support from the [C]Make files.
Move all '.cpp' files to '.c'.
Rename comments from 'cpp' to 'c'.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-15 12:49:12 +01:00
Robert Sipka ec5859f4e8 Add some fixes required by the C99 standard.
Use c-style cast instead of reinterpret_cast.
Use identifiers for function parameters.
Use type cast to avoid conversion error.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-15 12:48:47 +01:00
László Langó bc82654029 Fix build with -O3
Related issue: #657

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-12 11:30:15 +01:00
Zsolt Borbély d35bc4114b Remove unused functions from ecma-helpers-number.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-02-11 13:31:01 +01:00
Robert Sipka 6fd1f780e1 Move out 'jrt_read_from_buffer_by_offset' and 'jrt_write_to_buffer_by_offset' function definitions from header.
It's also required by the C99 standard.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-11 13:14:57 +01:00
Akos Kiss 20bec3d73f Remove cppcheck and vera++ from prerequisites
Rely on platform-provided versions. Thus, no need to download and
build them, neither to wrap them with shell scripts. CMake and
precommit updated to call the new tools. Development documentation
also updated/simplified.

PS: On my Ubuntu 14.04.3, cppcheck has version 1.61, while prereq
version was 1.69. The older version reports and fails on a strange
style issue in ecma/builtin-objects/ecma-builtin-helpers.cpp, for
which the only solution found was to suppress the cppcheck errors
with `variableScope` id for that file.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-11 09:58:41 +01:00
Akos Kiss dc84775207 Remove references to non-existent parser/js/bc and parser/js/collections directories
With the merge of the CBC parser, these directories got removed.
The update of the jerry-core/CMakeLists.txt must have been
forgotten, probably because the kept references caused no errors.
Cleaning up now.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-11 09:29:40 +01:00
Akos Kiss 0a83b317c7 Rename docs/Doxygen to docs/Doxyfile
This is a really minuscule change, but it is more idiomatic to name
the config file of doxygen as Doxyfile.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-11 09:13:01 +01:00
Zsolt Borbély 3e1e0dc733 Move the logic of Valgrind-support check to the CMake part.
Related pull request: #866

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-02-10 16:46:56 +01:00
Zoltan Herczeg cadc81d583 ECMAScript Parameters cannot be passed in collections anymore, only as arrays.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-02-10 16:01:52 +01:00
Robert Sipka cc6fced17a Use value types instead of reference types.
The C99 standard does not support reference types.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-10 15:55:02 +01:00
Robert Sipka b0bdf0ebf4 Merge the js-parser and parser files
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-10 12:35:55 +01:00
Zsolt Borbély 41f2f910e8 Abort the build-process when the build-configuration is unsupported
The MCU targets doesn't support Valgrind.
Related issue: #762

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2016-02-10 11:28:59 +01:00
Robert Sipka 88d7f2fc7b Move 'nums_with_ascending_length' to be a global, non variable length array.
VLAs cannot be initialized by any form of initialization syntax with C99 standard.
Also did some refactor around 'ecma_string_get_length' and 'ecma_string_get_size'.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-10 11:03:49 +01:00
Robert Sipka 207f6da504 Use type cast to avoid conversation error with C99 standard.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-10 09:23:17 +01:00
László Langó 9a6bdef228 Fix assertion in RegExp compile
Related issue: #641

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-10 09:09:11 +01:00
SaeHie Park ef1252e29e targets: add nuttx interpreter build
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-02-10 08:50:12 +01:00
Robert Sipka abc95d3db8 Add forward declaration for mem_pool_chunk struct.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-09 16:01:01 +01:00
László Langó 094b182e96 Fix assertions in RegExp builtin
Related issue: #783, #784

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 15:31:16 +01:00
László Langó 6b8332e631 Fix 'Segmentation fault on String.Replace'
Related issue: #747

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 15:26:38 +01:00
László Langó d420be3fdf Fix 'Segmentation fault in re_get_value'
Related issue: #782

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 15:17:28 +01:00
István Kádár 433f0705f7 Add missing doxygen group endings
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-02-09 14:37:49 +01:00
István Kádár e9a72ae1e9 Eliminate 'is_stack_var' field of ecma_string_t
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-02-09 14:26:24 +01:00
Akos Kiss 196e8196fc Eliminate code duplication in memory statistics printing
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-09 14:19:28 +01:00
Robert Sipka 2221c00ad9 Fix the correct number of command line arguments check.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka rsipka.uszeged@partner.samsung.com
2016-02-09 14:12:04 +01:00
Akos Kiss 9c124e2634 Revive mem_stats.sh
The tool became bitrotten. Bringing it up-to-date to handle the
output of jerry and rss-measure.sh properly.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-09 14:03:16 +01:00
László Langó ca01412848 Add regression tests for recently closed issues
Related issues: #123, #354, #358, #384, #447, #680, #738, #739, #743, #781, #785, #786

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 13:54:56 +01:00
László Langó 0f378281ba Fix memory leak in RegExp builtin.
Related issue: #787

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 13:48:09 +01:00
Akos Kiss 4a5a8cbf72 Add generated documentation to gitignore
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-02-09 13:42:01 +01:00
Roland Takacs f8e97c6c02 Use concrete types instead of 'auto'.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-09 13:37:12 +01:00
Roland Takacs cd6ff690d0 Add missing parentheses for bit operations where type cast is used.
Fix for #853. These modifications are required by gcc 4.9 or above.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-09 13:29:41 +01:00
László Langó 02b001e479 Remove leftover from ecma_simple_value_t
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 13:25:35 +01:00
László Langó d132c37f0a Optimize number literals.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 13:20:22 +01:00
László Langó e763280761 Fix Vera++ rule for switch statements.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-09 13:13:40 +01:00
Roland Takacs 6608cc4b7d Move jerry_port functions into jerry-core.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-09 13:07:29 +01:00
Hanjoung Lee 0e88e819eb Support REPL for Linux
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2016-02-09 13:00:26 +01:00
Ruben Ayrapetyan 91a0514fab Estimate performance measurement inaccuracy in tools/perf.sh and tools/run-perf-test.sh
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2016-02-08 09:26:26 +01:00
Roland Takacs 0219f37dcc Remove template expression from jerry_ref_unused_variables.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 14:00:44 +01:00
László Langó d038284bff Style fix: fix comments at the end of function definitions.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-05 13:46:51 +01:00
Sung-Jae Lee 41f6cbb3ac Add JerryScript logo.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2016-02-05 13:37:16 +01:00
Roland Takacs a45976bca6 Use packed attribute for enums to modify their type.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 13:22:42 +01:00
László Langó b1acf1a562 Style fix: align pointer dereference operator to right
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-02-05 13:06:34 +01:00
Roland Takacs efc994b112 Use C type casting instead of static_cast.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 12:59:14 +01:00
Roland Takacs 764d74561d Remove the placement 'new' operator.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 12:50:38 +01:00
Roland Takacs 3f5451423c Add lit_storage prefix for functions in lit-literal-storage.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 12:43:30 +01:00
Zidong Jiang 9ab24b3241 remove the c++ syntax, struct::xxx
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-02-05 12:33:27 +01:00
Xin Hu 87a7887a81 Replace uint32_t magic string lengths with uint8_t
JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-02-05 11:31:54 +01:00
Xin Hu 4062694059 ecma_string_get_size performance improvemen
- replace if with switch

JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-02-05 11:23:53 +01:00
Xin Hu 1466a5b317 ecma_compare_ecma_strings_longpath performance improvement
- use switch to replace if

JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-02-05 11:17:34 +01:00
Zidong Jiang dfb22c3441 refactor rcs_chunked_list and remove its c++ features
issue #806

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2016-02-05 11:11:36 +01:00
Roland Takacs d60bd93da3 Use 'const' instead of 'constexpr'.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-02-05 11:00:25 +01:00
Zoltan Herczeg 4d2dd22ced Compact Byte Code parser and executor for Jerry.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Tamas Gergely tgergely.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2016-02-05 01:15:49 -08:00
qdk0901 db6caf3c48 add openwrt support
JerryScript-DCO-1.0-Signed-off-by: qdk0901 qdk0901@qq.com
2016-02-04 20:36:54 +08:00
Sung-Jae Lee eda775a8ca Fix build break on OSX: Invalid type comparision.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2016-01-29 22:40:55 +09:00
Sung-Jae Lee 3703b1b681 Merge main-linux.cpp and main-darwin.cpp to main-unix.cpp for easy maintenance.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2016-01-29 22:22:11 +09:00
László Langó fec49f5f9a Update precommit test file list to run all test files.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2016-01-22 13:26:37 +01:00
Roland Takacs 70a67797d2 Refactor opcodes-dumper to not use C++ features.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-01-20 10:58:06 +01:00
Ruben Ayrapetyan 18d0d8c376 Add microbenchmark on filling an array with 5000 numbers (3 times).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2016-01-18 15:51:11 +03:00
Ruben Ayrapetyan b0d6107410 Improve algorithm of collecting empty pools.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2016-01-18 15:51:09 +03:00
Xin Hu 73a5fd78a7 Remove redundant code in lit_charset_literal_get_length
JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-01-15 13:07:05 +03:00
Xin Hu ba95cb010a Update strcmp implementation, to improve performance
JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-01-14 19:55:13 +03:00
Hanjoung Lee f6bd5afa42 Fix linked-list removal of last element
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2016-01-14 19:47:16 +09:00
SaeHie Park 25b8351774 targets: merge js2c.py into targets/tools folder
* also add .PHONY to target makefiles

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 18:49:57 +09:00
SaeHie Park feb27a5fc6 Add target build for ESP8266 board.
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 07:27:18 +09:00
SaeHie Park f574597a06 Workaround fix for Xtensa (ESP8266) memory alignment exception error
Related issue: https://github.com/Samsung/jerryscript/issues/675

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 07:26:28 +09:00
SaeHie Park fe24452460 Add target build for mbed / FRDM-K64F board.
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 07:24:57 +09:00
SaeHie Park 02daf04da6 Add external compile flags and entry file for target board builds
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2016-01-14 07:23:37 +09:00
Xin Hu 7255d648d7 lit_get_unicode_char_size_by_utf8_first_byte performance improvement
- inline

JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-01-13 19:09:49 +03:00
István Kádár 636ded489f JerryScript api improvemts accordign to jerry_api_value_t struct.
JerryScript-DCO-1.0-Signed-off-by: István Kádár ikadar@inf.u-szeged.hu
2016-01-13 18:45:52 +03:00
Xin Hu 3b3bc98bec Add ecma_get_chars_collection_length unit test
JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-01-13 18:40:34 +03:00
Xin Hu b31b79c333 ecma_get_chars_collection_length optimization
JerryScript-DCO-1.0-Signed-off-by: Xin Hu Xin.A.Hu@intel.com
2016-01-13 18:35:44 +03:00
Ruben Ayrapetyan 6d1bf13948 Fix incorrect assertion in bc_load_bytecode_data.
Related issue: #797

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2016-01-13 18:30:33 +03:00
pius lee 7868b0ae68 Fix Failed JSON stringify with NaN
http://www.ecma-international.org/ecma-262/5.1/#sec-15.12.3
Depending to Note4, NaN is reprensented as the String null

JerryScript-DCO-1.0-Signed-off-by: pius lee idkiller@gmail.com
2016-01-13 18:16:02 +03:00
pius.lee cc60b0b3a2 Fix eval fail with empty string
Fixes #278

JerryScript-DCO-1.0-Signed-off-by: pius.lee pius.lee@samsung.com
2016-01-13 18:07:32 +03:00
Roland Takacs 21f561f8ef Refactor literal-storage to not use C++ features
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2016-01-13 15:19:07 +01:00
Ruben Ayrapetyan f932b7d48c Fix handling of property accessors in loop condition expressions and in argument of with statement.
Related issue: #798

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2016-01-11 13:42:12 +03:00
Andrey Shitov 50d124bfc3 Parser optimizations.
- parser is now non-recursive (i.e. parse function is not called recursively in any case);
 - byte-code is now more compact:
    - constants are now not immediately dumped upon occurence, but later - where necessary;
    - assignments are combined with unary / binary operations;
    - binary operations are encoded more compactly in many cases;
 - byte-code arrays are now allocated separately for each scope (so, GC of the scopes now becomes possible);
 - byte-code is dumped directly into corresponding byte-code arrays:
   - linked lists of op_meta are not now used for main code of a scope.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-12-23 14:21:10 +03:00
Ruben Ayrapetyan b1de93abd6 Fix incorrect assertion in lit_utf8_iterator_seek.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-12-23 14:21:08 +03:00
Sung-Jae Lee 4f4407121b Disable LTO, Enable ALL_IN_ONE by default in Mac OS X build.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-12-19 16:08:50 +09:00
Evgeny Gavrin 2c3c952fc9 Add initial version of documentation to source tree.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-12-11 16:44:15 +03:00
Hanjoung Lee 3606350a48 Add a regression test for #280
Releated issue: #280

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-12-11 15:52:37 +03:00
Laszlo Vidacs 54ade8b29e Unicode string builtin tests added.
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-12-11 15:39:36 +03:00
Tamas Czene f8f7eb4251 allow_to_customize_address_for_jerry_mem_heap
JerryScript-DCO-1.0-Signed-off-by: Tamas Czene tczene.u-szeged@partner.samsung.com
2015-12-11 10:09:17 +03:00
SaeHie Park fe2a76fced Fix Unittests build fails when LTO is disabled
Related issue: #774

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-12-10 10:28:16 +09:00
Zsolt Borbély ab6d777220 Fix unittests build, when all-in-one is enabled.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-12-08 14:06:17 +01:00
SaeHie Park 8fbde244e9 Move log message output(fprintf, puthcar) to target code
Related issue #752

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-12-08 07:48:16 +09:00
Evgeny Gavrin 9cb711ad80 Add script to sort and categorize fails in directory.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-12-07 14:40:29 +03:00
Sung-Jae Lee 2378b0cf3d Merge pull request #767 from lemmaa/add-generate-map-file-option
Generate `jerry.map` file on build

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-12-07 20:34:05 +09:00
Sung-Jae Lee b3e5322c4e Generate jerry.map file on build.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-12-07 19:08:06 +09:00
Laszlo Vidacs b8b3b1f275 Test and fix CESU-8 handling in String builtins.
Fixes #757
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-12-02 12:38:06 +03:00
chunseok lee cb0087b517 remove 15.07.04.02-002.js from jerry-test-suites
Number.prototype.toString([radix]) is implementation-dependant.

JerryScript-DCO-1.0-Signed-off-by: chunseok lee chunseok.lee@samsung.com
2015-12-02 12:31:59 +03:00
Ilyong Cho 1c21e16c7b Adding Jerry api for triggering gc.
JerryScript-DCO-1.0-Signed-off-by: Ilyong Cho ily.cho@samsung.com
2015-12-02 12:26:07 +03:00
pius.lee ece246ef9e Add foreach function for inquiry properties into obj
JerryScript-DCO-1.0-Signed-off-by: pius.lee pius.lee@samsung.com
2015-12-02 12:20:12 +03:00
Zidong Jiang 3d286b46d0 Fix bug in linked_list_block_size().
and Ruben Ayrapetyan fix a bug in linked_list_switch_to_next_elem

Related issue: #720

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
2015-12-02 12:12:03 +03:00
Hanjoung Lee ce3b785c83 Fix lexing number literal
Related issue: #745

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-12-02 11:36:30 +09:00
Akos Kiss ab68d093e8 Whitespace cleanup: tab removal in tests directory
Also changed space-based indentation in touched files if they used
4 spaces for indentation (instead of the most-often-used 2).

Also added new line to end of touched files if they did not end
that way.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-11-28 21:47:37 +01:00
Akos Kiss 133fc6adfd Whitespace cleanup: tab removal in tools directory
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-11-28 21:47:37 +01:00
Akos Kiss 5ffc9abb59 Whitespace cleanup: tab removal in CMakeLists.txt
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-11-28 21:47:37 +01:00
Laszlo Vidacs cd7cf53ecb Rearrange String.prototype.indexOf, lastIndexOf and Replace helpers
Fixes issue #515
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-11-27 14:09:11 +01:00
Hanjoung Lee f20db76dfb Fix parse error of parse_switch_statement
Related issue: #725

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-11-27 12:19:09 +09:00
Hanjoung Lee 17f7bad242 Fix [[HasInstance]] operation for external functions
Related issue: #736

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-11-27 12:02:09 +09:00
Zsolt Borbély fe157301a2 Add option to enable all-in-one build mode
Related issue: #626

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-11-25 14:01:07 +01:00
Zsolt Borbély aa74c3e2e0 Remove duplcation of ecma_reject function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-11-25 14:01:07 +01:00
SaeHie Park d11a9e1c0d Change processor name from x86 to i686 for 32bit host
* to make it same as 'uname -p' result

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-11-24 18:48:23 +09:00
Evgeny Gavrin 17a5dd27bb Add support of afl-fuzzer.
Related issue: #333, #454

Works only with default libc:
```
$ make debug.linux -j TOOLCHAIN="./build/configs/toolchain_afl.cmake" USE_COMPILER_DEFAULT_LIBC=YES
```

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-11-23 17:59:22 +03:00
Evgeny Gavrin e80cc3592c Add several regression tests from closed issues.
Related issues: #274, #276, #281, #340, #359, #429, #453, #541, #613, #639, #640

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-11-19 14:36:59 +03:00
Zsolt Borbély f17f785b6e Make tools/perf.sh executable
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-11-18 09:49:01 +01:00
Akos Kiss 8006635636 Pass -Wno-error to linker in case of LTO builds
When linking a release-built command line shell on Linux against
default glibc with LTO enabled, a long-open gcc bug causes spurious
warning to be emitted around a call to fread. The `-Werror` flag
turns this into an error and the build process fails.
Unfortunately, there is no way to selectively disable the warning
with pragmas or `-Wno-error=xxx` flags.

Thus, this patch introduces some helper macros and lists all
warnings explicitly with `-Werror=xxx` instead of covering all
warnings with the `-Werror` flag. This way, warnings enabled by
command line flags do cause errors, but those raised by warning
attributes (which cannot be suppressed by any `-Wno-error=xxx`
flags) don't.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-11-17 22:20:23 +01:00
Hanjoung Lee 140982e900 Fix PropertyName not to be resolved as a local variable
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-11-13 13:29:38 +09:00
Akos Kiss 7022aa26b0 Add a "Hello JerryScript!" program to the tests
The current code base does not contain any "first JavaScript
program" for those who build JerryScript for Linux console. It
does contain a LED-blinking example -- blinky.js -- but that's
only useful on an developer board where LEDs-to-be-blinked are
available. And the rest of the tests are just that: tests, giving
passed/failed information but nothing eye candy.

This patch adds a simple JS script that can act as a warm welcome
to anyone after the first successful build trying to run something
proving that Jerry works.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-11-11 11:32:08 +00:00
Szilard Ledan 36e90d952f Global object unescape routine
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-11-11 10:48:35 +01:00
Ruben Ayrapetyan 90122d9f33 Fix configuration of recordset's and literal storage's parameters according to MEM_ALIGNMENT_LOG and MEM_CP_WIDTH changes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-09 21:24:03 +03:00
Ilyong Cho 94cb6aec26 Fix prop_getters stack manipulation for assignment expression.
Related issue: #614

JerryScript-DCO-1.0-Signed-off-by: Ilyong Cho ily.cho@samsung.com
2015-11-09 11:02:57 +09:00
Zsolt Borbély eaca37c4c9 Simplify severity mechanism in mem allocator.
Related issue: #63

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-11-04 17:06:43 +01:00
Ruben Ayrapetyan 8af87206c9 Fix ecma_builtin_global_object_decode_uri_helper.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-03 18:42:01 +03:00
Seo-Young Isabelle Hwang b3c27e5635 Update README.md
Add link of project page
2015-11-03 23:10:55 +09:00
Seo-Young Isabelle Hwang ed2eafba54 Update README.md
add gitter badge
2015-11-03 23:08:29 +09:00
Seo-Young Isabelle Hwang 5702eaab83 Merge pull request #701 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-11-03 23:05:43 +09:00
The Gitter Badger eaa4be04b0 Add Gitter badge 2015-11-03 13:59:31 +00:00
Ruben Ayrapetyan 4aaf829320 Fix handling of non-zero status code in tools/perf.sh.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-03 16:51:30 +03:00
Ruben Ayrapetyan 9194240ada Fix memory leak in jerry_api_set_object_native_handle.
Related issue: #683

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-03 16:41:19 +03:00
Zoltan Herczeg c81c730129 Add support for reporting mallocs / frees to valgrind through client requests.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-11-03 03:57:49 -08:00
Ruben Ayrapetyan 911163e787 Optimize object literal byte-code - store property names as literal arguments, instead passing them through register variables.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:47:18 +03:00
Ruben Ayrapetyan 1fe2817457 Introduce parser-time optimization that moves function's argument values to registers.
For functions with the optimization applied:
 - vm puts arguments values immediately to registers without putting them to variables in lexical environment;
 - number of arguments is extracted from corresponding 'reg_var_decl' instruction's argument;
 - for functions that also don't have local variables, lexical environments are not created.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:15:13 +03:00
Ruben Ayrapetyan 46c65985e5 Create [[FormalParameters]] function object's internal property only if corresponding function has non-zero number of formal parameters.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:12:42 +03:00
Ruben Ayrapetyan f24effa629 Read function's scope flags only in ecma_op_create_function_object instead of call sites of the routine.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:12:42 +03:00
Ruben Ayrapetyan 4d2ad40475 Remove var_decls_count field from scopes_tree header; getting "var_decl"s count using linked_list_get_length instead.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:10:45 +03:00
Ruben Ayrapetyan 0ef9c486c1 Introduce linked_list_chunk_header (header of a linked_list's chunk), add list's length field into linked_list's header; support removal of elements in linked_list.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 17:10:45 +03:00
Ruben Ayrapetyan da47c671e7 List of lazy instantiated properties' names in ecma_op_object_get_property_names.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 16:32:31 +03:00
Ruben Ayrapetyan 9c3aa4a003 Improve performance of item 3.l of arrays' [[DefineOwnProperty]] (ecma_op_array_object_define_own_property).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 16:32:09 +03:00
Ruben Ayrapetyan 09b4d20718 Use ecma_op_object_get_property_names for property enumeration in built-ins implementation.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 16:06:44 +03:00
Ruben Ayrapetyan 72208a61ee Remove vm_helper_for_in_enumerate_properties_names helper; introduce ecma_op_object_get_property_names interface for building list of an object's properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-02 15:22:55 +03:00
Ruben Ayrapetyan 841c1ed61c Fix usage of array_list in parse_switch_statement.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-11-01 16:51:43 +03:00
Ruben Ayrapetyan f2ced3d91c Fix check for 'eval' and 'arguments' functions' names / argument names in strict mode.
Related issue: #686

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 17:31:04 +03:00
Ruben Ayrapetyan 3025bd1750 Fix handling of SyntaxError in FormalParameterList during 'new Function' constructor operation.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 17:26:17 +03:00
Ruben Ayrapetyan 2bfd754ef3 Fix handling of 1.797693134862315808e+308 floating point value.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 16:41:17 +03:00
Ruben Ayrapetyan 04ca231fa4 Fix jsp_early_error_check_for_duplication_of_prop_names.
Related issue: #689

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 16:41:16 +03:00
Ruben Ayrapetyan f2c54fbe39 Fix serializer_remove_bytecode_data.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 16:41:16 +03:00
Ruben Ayrapetyan a88608a1c0 Fix parseFloat built-in function of the Global object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 16:41:16 +03:00
Ruben Ayrapetyan 4500965316 Fix handling of non-reference operands in prefix operations.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-30 16:41:16 +03:00
Hanjoung Lee 906558b8e9 Fix: switch statement jumps to incorrect case body
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-10-29 19:16:12 +09:00
Hanjoung Lee 3e31931537 Fix: parse error when no expression follows after 'return', 'break', 'continue'
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-10-29 18:06:28 +09:00
Zsolt Borbély 4aaa0ace17 Simplify [[DefineOwnProperty]] usage, use the helper function where possible.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-10-29 09:26:55 +01:00
Hanjoung Lee fcebf654cc Fix: parser bug in parse_switch_statement
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-10-29 11:09:48 +09:00
Ruben Ayrapetyan 1e2dfc73f5 Remove of 'this_binding' opcode.
- introduce 'const' register type;
 - adding constant register for reading ThisBinding value of active interpreter context.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-23 15:45:28 +03:00
Ruben Ayrapetyan f2c3e59bbe Change reg_var_decl instruction arguments to [number of registers for temporaries; number of register for local variables].
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-10-23 15:45:28 +03:00
Ilyong Cho 31ae0977f6 Fix lexing of illegal exponential.
Related issue: #339

JerryScript-DCO-1.0-Signed-off-by: Ilyong Cho ily.cho@samsung.com
2015-10-23 13:52:56 +09:00
Hanjoung Lee 448984dd74 Fix: parsing regex and div operator correctly
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-10-22 14:15:18 +09:00
SaeHie Park 86480f6168 Rename gcc-ar, gcc-ranlib only when LTO is enabled in CMakefile.txt
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-10-21 08:46:15 +09:00
Zsolt Borbély 947dc4cab2 Make the Function.prototype.length property non-writable.
Fixes #642

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-10-20 16:29:12 +02:00
Dániel Bátyai 579b1edaa5 Refactor builtins to handle CESU-8 encoded strings.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-10-15 16:01:10 +02:00
Dániel Bátyai dcd610b305 Change internal encoding of strings to CESU-8
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-10-15 13:39:00 +02:00
Peter Gal 08c618e8c5 Add check for setTime implementation to see if the this argument is really a Date object.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-10-07 10:35:02 +02:00
Roland Takacs 6f77460509 Replace recursions with iterations in the linked_list data structure
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-10-05 14:30:29 +02:00
Sung-Jae Lee d34c8fb6c1 Merge pull request #638 from lemmaa/benchmark-on-mac-os-x
Fix benchmark scripts to run on Mac OS X

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-10-05 10:22:58 +09:00
Sung-Jae Lee 8f594d7606 Merge pull request #632 from lemmaa/build-mac-os-x-with-gcc
Support `gcc` in Mac OS X build

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-10-05 09:59:32 +09:00
Peter Gal 98fc4098e8 Check if there is really an old bytecode when recompiling a regexp
Fixes #612

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-10-01 15:05:01 +02:00
Peter Gal 0d6568db18 Fix tr arguments in the Makefile
On Linux the original tr call did nothing and thus the Makefile
tried to load the toolchain_Linux_x86_64.cmake file, which doesn't exists.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-10-01 14:47:10 +02:00
Ruben Ayrapetyan b7c93f170d Remove argument names in function prototypes, declared in headers; fix '*' alignment in headers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-28 18:27:10 +03:00
Sung-Jae Lee a007b6800c Fix benchmark scripts to run on Mac OS X
- perf: bypass the regex interpreting error of 'sed'.
- rss-measure: use alternative way to measure approx. RSS.

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-21 11:48:14 +09:00
Kristof Kosztyo 3b0f61ac52 Remove ECMA_STRING_CONTAINER_CONCATENATION type from ecma_string
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-09-18 12:00:36 +02:00
Sung-Jae Lee cc7501309a Support gcc in Mac OS X build
- if `gcc` exist, use `gcc` for build, otherwise use `cc(=clang)` for build.

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-17 01:06:11 +09:00
Zsolt Borbély 66975236bc Function.prototype.bind: incorrect behaviour of ecma_gc_mark()
Related issue: #531

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-09-16 14:54:58 +02:00
Dániel Bátyai 91f0c9d625 Parse integer numbers from back to front.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-09-16 14:30:45 +02:00
Sung-Jae Lee 034ecf78f8 Merge pull request #628 from lemmaa/lemmaa-build-for-osx-with-clang-new
Enable build on Mac OS X with clang - resolve merge conflicts
2015-09-16 19:39:16 +09:00
Sung-Jae Lee da8ae6523b Merge pull request #625 from lemmaa/master
Fix MEM_STATS build configuration.
2015-09-16 19:38:35 +09:00
Sung-Jae Lee 01f66f7b04 Enable build on Mac OS X with clang
* Add build target 'darwin'
* Modify compiler options to work with clang
* Support 'jerry-libc' on Mac OS X

For MPU target build, install `gcc-arm-none-eabi` tool chain using `Homebrew` as following.
````
brew tap PX4/homebrew-px4
brew update
brew install gcc-arm-none-eabi
````
https://pixhawk.org/dev/toolchain_installation_mac

JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-15 10:31:57 +09:00
Sung-Jae Lee 86e690ce72 Fix preprocess claus style.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-14 21:17:23 +09:00
Sung-Jae Lee b6fcf44873 Fix dependency of memory statistics options.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-10 12:25:55 +03:00
Sung-Jae Lee 84ff4de385 Fix MEM_STATS build configuration.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-09 19:21:56 +03:00
Andrey Shitov 311cc65b33 Implement snapshot functionality.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-09-09 18:07:24 +03:00
Ruben Ayrapetyan 7481fb606f Use static_cast in MEM_CP_GET_NON_NULL_POINTER.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 18:07:24 +03:00
Andrey Shitov 443673fc5d Update bytecode header structure so that bytecode could be stored independently from hash table and bytecode header.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-09-09 18:07:20 +03:00
Ruben Ayrapetyan 6a6fb3fdfa Extract vm_run_eval from ecma_op_eval_chars_buffer.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 16:58:52 +03:00
Ruben Ayrapetyan 9da91d0834 Remove inside_eval from limitations on var-to-reg optimization.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 16:58:52 +03:00
Ruben Ayrapetyan fdf38ab2eb Introduce GC stress testing mode (-mem_stress_test prefix; for example: debug.linux-mem_stress_test).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 16:28:28 +03:00
Ruben Ayrapetyan b318de46a6 Remove 'mfp' (minimal footprint build configuration).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 16:28:28 +03:00
Ruben Ayrapetyan bf5deffdb9 Fix valgrind false-positive warning in mem_pools_collect_empty.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-09 15:54:54 +03:00
Sung-Jae Lee 0cbbddcf48 Merge pull request #624 from lemmaa/master
Remove garbage file.
2015-09-09 14:40:24 +03:00
Sung-Jae Lee 62b3aa8c84 Remove garbage file.
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-09-09 11:20:46 +03:00
Sung-Jae Lee c86bf1425d Merge pull request #608 from lemmaa/build-for-osx-new
Fix prerequisites setup error on Mac OS X
2015-09-08 19:07:48 +03:00
Ruben Ayrapetyan 50fdccc8c9 Lazy instantiation of built-in function object's 'length' properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-08 15:19:51 +03:00
Ruben Ayrapetyan bcf3396f26 Lazy instantiation of a function object's 'length' and 'prototype' properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-08 15:19:51 +03:00
Ruben Ayrapetyan ed321da8c1 Fix buffer overflow in 'new Function ()' (ecma_builtin_function_dispatch_construct).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-09-07 20:58:43 +03:00
Kristof Kosztyo 5a09ff2d36 Implement the AnnexB Date part
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-09-02 17:20:50 +02:00
Ruben Ayrapetyan a26c454219 Add warn_unused_result attribute to ecma_string_to_utf8_string. Add assertions that specified buffer size is sufficient in places, where return value of ecma_string_to_utf8_string wasn't checked prior to the changes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-31 12:59:43 +03:00
Ruben Ayrapetyan 6ee561e821 Fix calculation of concatenation hash.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-31 12:59:43 +03:00
Sung-Jae Lee e2bbd6f9de Fix prerequisites setup error on Mac OS X
JerryScript-DCO-1.0-Signed-off-by: Sung-Jae Lee sjlee@mail.com
2015-08-31 11:20:02 +09:00
Ruben Ayrapetyan a00079e8ff Reduce number of operand type handling conditional blocks in byte-code dumper, by extracting them to several separate routines that can be used for most cases, remove getop_* routines from vm.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-28 16:19:49 +03:00
Ruben Ayrapetyan cbdc48a1fc Remove raw_instr.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-28 16:19:19 +03:00
Ruben Ayrapetyan 173becc3ac Rename idx_t -> vm_idx_t, opcode_special_reg_t -> vm_reg_t, INVALID_VALUE -> VM_IDX_EMPTY / VM_IDX_REWRITE_GENERAL_CASE, LITERAL_TO_REWRITE -> VM_IDX_REWRITE_LITERAL_UID.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-28 16:18:58 +03:00
Ruben Ayrapetyan 0111a73702 Convert parser operand structure to jsp_operand_t class, move operand types to enum defined in the class.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-28 15:35:06 +03:00
Ruben Ayrapetyan b0276b3e46 Fix print of a 'number' literal.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-28 15:35:06 +03:00
Ruben Ayrapetyan 10e5f3530d Remove heap allocator's block headers, replacing them with bitmap at start of heap.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 21:42:26 +03:00
Ruben Ayrapetyan 4c67403f15 Fix collection of memory statistics in pool allocator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 18:51:30 +03:00
Ruben Ayrapetyan 589ebb1802 Remove comparison of unused instruction operands fields (the fields could be uninitialized).
Related issue: #585

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 18:41:04 +03:00
Ruben Ayrapetyan 5b9ce05491 Introduce parser-time optimization that replaces a function's local variables with registers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:42:45 +03:00
Ruben Ayrapetyan 91aecc3bd0 Introduce parser scope types, add scope flags, indicating whether scope contains a function declaration, a 'try' statement, 'with' statement or 'delete' operator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:42:45 +03:00
Ruben Ayrapetyan c3d8cfd73c Add suppression of 'duplicateExpression' cppcheck rule, as it leads to false positives in expressions like static_assert (ENUM_VALUE == 0, "");.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:42:45 +03:00
Ruben Ayrapetyan 2e13c29331 Switch to cppcheck v1.69.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:08:10 +03:00
Ruben Ayrapetyan 264a832cc4 Implement prerequisites auto-update.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:08:10 +03:00
Ruben Ayrapetyan 2ed18491df Fix JERRY_UNIMPLEMENTED_REF_UNUSED_VARS so that call to jerry_unimplemented is placed after if (false) { ... } block.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 17:03:56 +03:00
Ruben Ayrapetyan 845b0d5006 Clarify calculation precedence for & and ?.
(a & b ? c : d)-like expressions are changed to ((a & b) ? c : d).

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-27 16:32:08 +03:00
Zoltan Herczeg bf780ad3dc Global object escape routine.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-26 01:44:18 -07:00
SaeHie Park 8f239d0b90 Add external libs include path for jerry-core
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-08-26 14:00:36 +09:00
SaeHie Park f7b370ba42 Disable warning messages of fdlibm for mips
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-08-26 14:00:36 +09:00
Szilard Ledan bafc9551a9 Implement substr function in String object
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-08-25 13:52:40 +02:00
Andrey Shitov e4843ece76 Fix processing of elision in array literal.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-24 14:51:24 +03:00
Andrey Shitov 01604974e3 Free eval's code and literal hash-table after its execution if it does not contain functions.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-24 14:44:16 +03:00
Dániel Bátyai 13941df8dd Implement RegExp.prototype.compile()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-24 10:10:09 +02:00
SaeHie Park 63d3e02b59 Fix 'control reaches end of non-void function' compile error for 'noreturn'
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-08-24 16:43:28 +09:00
Andrey Shitov b3b87add02 Fix parsing of string literals which contain zero character.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-20 22:23:57 +03:00
Evgeny Gavrin e0dee65a36 Improve performance of lit_utf8_string_calc_hash_last_bytes.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-08-19 22:38:29 +03:00
Evgeny Gavrin ccfe1f1cd6 Remove 'if engine is executable' check.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-08-19 15:41:33 +03:00
Evgeny Gavrin 59ce413df5 Enable ./tools/perf.sh to accept arguments with quotes.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-08-19 15:41:33 +03:00
Andrey Shitov 0938211f63 Fix parsing of comments which contain zero character.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-19 14:34:31 +03:00
Andrey Shitov a870a07972 Remove preparser lexer pass and pass for searching of "eval" and "arguments" literals.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-19 14:16:04 +03:00
Roland Takacs cc4283b945 Fix assertion 'mem_pools == NULL' fail in JSON.stringify
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-19 08:32:25 +02:00
Ruben Ayrapetyan ab47365b71 Switch heap GC start limit check to consider number of allocated heap chunks instead of bytes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-17 20:33:41 +03:00
Ruben Ayrapetyan 4667d3078b Introduce GC start heuristics on low-severity try-give-memory-back requests.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-17 20:10:26 +03:00
Zoltan Herczeg 4dcbdb44ff Cross-build fix after 5e301a1d71
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-17 09:53:24 -07:00
Zoltan Herczeg 5e301a1d71 Refactor the remaining date string conversion helpers.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-17 00:21:50 -07:00
Hanjoung Lee 99ff8018bd Fix show-opcodes not showing last argument
JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee hanjoung.lee@samsung.com
2015-08-17 12:10:55 +09:00
Ruben Ayrapetyan 38fa391cd8 Replace ecma_create_object with high-level Object and Array construction interfaces in JSON built-in implementation.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-14 12:29:31 +03:00
Kristof Kosztyo 9ffa6a39d3 Fix undefined initialValue handling in Array.prototype.reduce and reduceRight function.
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-08-14 10:51:44 +02:00
Dániel Bátyai 5bb56643aa Fix undefined fromIndex in Array.prototype.lastIndexOf()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-14 10:15:27 +02:00
Kristof Kosztyo c8884a4561 Fix assert in the Date prototype
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-08-13 22:09:07 +02:00
Ruben Ayrapetyan 8f594aebfa Improvement of pool allocator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-13 19:06:53 +03:00
Zoltan Herczeg 5be41b44bb Date toString methods follow the date format used by other JS engines:
new Date(0).toString () == "Thu Jan 01 1970 00:00:00 GMT+0000"
new Date(0).toUTCString () == "Thu, 01 Jan 1970 00:00:00 GMT"
new Date(0).toISOString () == "1970-01-01T00:00:00.000Z"

Fixes S15.5.4.7_A1_T11.js test case.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-13 06:25:17 -07:00
Dániel Bátyai 4ee30cba5d Fix RegExp literal parsing
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-12 11:49:05 +02:00
Dániel Bátyai d2ac7c320d Fix invalid control escapes during RegExp parsing.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-12 11:33:15 +02:00
Roland Takacs c4b1f02947 Fix assertion 'ret_value == ecma_make_empty_completion_value ()' fail in JSON.stringify()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-11 18:29:11 +02:00
Zoltan Herczeg f2c846d960 Fix the this argument passed to string replace callbacks.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-11 06:23:43 -07:00
Evgeny Gavrin c6b4510c9a Add script for performance testing.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-08-11 16:14:35 +03:00
Andrey Shitov 0d855e898d Fix hoisting of function declaration from function expressions.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-11 15:01:45 +03:00
Andrey Shitov 531a9d3352 Fix invalid preparsing of variable declarations which are not splitted by comma.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-11 14:39:02 +03:00
Andrey Shitov d6ad1c467e Fix semicolon check after variable declaration list.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-11 14:23:11 +03:00
Andrey Shitov 95c1c223e8 Add checking for invalid operand in perfix operation.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-11 13:51:37 +03:00
Zoltan Herczeg a751478a19 Although the standard does not specify the effect of $nn in String.replace when nn is bigger than the max, the test-262 test suite expects a certain behaviour. This behaviour is mimiced by this patch.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-10 23:22:19 -07:00
chunseok lee d31eb3c4cb Jerry API for array creation and manipulation
1. jerry_api_create_array_object : create array object of given size
2. jerry_api_set_array_index_value : set value at given index
3. jerry_api_get_array_index_value : get value at given index

JerryScript-DCO-1.0-Signed-off-by: chunseok lee chunseok.lee@samsung.com
2015-08-11 15:02:56 +09:00
Ruben Ayrapetyan 1cafff32b5 Pass function arguments through ecma-collections.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-10 19:56:07 +03:00
Ruben Ayrapetyan 7daabb1974 Change fill_params_list to append formal parameter names to ecma-values collection, instead of array; rename it to vm_fill_params_list.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-10 19:56:07 +03:00
Ruben Ayrapetyan 72ce13a63a Change type of MEM_CP_NULL to mem_cpointer_t.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-10 19:56:06 +03:00
Szilard Ledan e22a085fc1 Implement RegExp octal support
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-08-10 15:13:21 +02:00
Dániel Bátyai cf1eda0981 Fix assertion fails in parseInt()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-10 15:04:14 +02:00
Zoltan Herczeg 8df6cdd1e9 Refactor fromCharCode including support for surrogate pairs.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-10 04:34:31 -07:00
Roland Takacs f10a48df96 Fix assertion 'mem_pools == NULL' failed in Function.constructor
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-10 11:29:51 +02:00
Dániel Bátyai b7d3189ac3 Trim whitespace from argument names in Function constructor
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-10 10:28:42 +02:00
Dániel Bátyai 58851bc7cc Fix bound function length
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-10 10:13:35 +02:00
Zsolt Borbély 640370da43 Implement String.prototype.split function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-08-07 16:07:27 +02:00
Roland Takacs ff580ca33e Use ecma-collection in JSON.
The simple list data structure has been replaced with ecma-collection in the JSON object.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-07 13:35:52 +02:00
László Langó a19dd0523e Fix 'property_p != NULL' assertion fail in RegExp
Related issue: #312

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-07 08:02:02 +02:00
László Langó 2d80456eb7 Fix Assertion 'ecma_get_value_type_field (value) == ECMA_TYPE_OBJECT' in RegExp.
Related issue: 316

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-06 15:00:38 +02:00
Ruben Ayrapetyan 97aed75a46 Introduce interface for removal of a ecma-collection's last value.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-06 15:52:41 +03:00
László Langó ab846f6fba Fix invalid control escape in RegExp.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-06 14:45:52 +02:00
Kristof Kosztyo 2eb8f76089 Fix ecma_get_property_descriptor_from_property for accessor properties with [[Get]] / [[Set]] set to undefined value
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-08-06 14:23:36 +02:00
Peter Gal fe0ec9d7fa Object constructor prototype should be set to Function.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-08-06 13:38:24 +02:00
Roland Takacs 5888401318 Fix assertion 'bytes_copied > 0 || !string_len' in JSON.stringify()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-06 13:15:54 +02:00
Zsolt Borbély e61f41a0bc Fix of memory leak in Function.prototype.bind function.
Related issue: #511

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-08-06 13:05:33 +02:00
Zoltan Herczeg 2630048ecc Fixes for URI decoding.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-06 03:52:16 -07:00
Szilard Ledan caeae0f621 Fix undefined result in RegExp engine
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-08-06 10:49:59 +02:00
Dániel Bátyai c17197dcab Handle Unicode characters in parseFloat()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-06 10:38:03 +02:00
László Langó 7aacb8fc01 Remove recursion limit from RegExp engine.
Related issue: #388

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-06 09:58:50 +02:00
Zsolt Borbély 9cc706d21d Enable tests after #435.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-08-06 09:12:57 +02:00
Laszlo Vidacs 554305d88c Implement String.prototype.lastIndexOf()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-08-06 08:52:09 +02:00
Ruben Ayrapetyan 7aa1b16184 Change fill_varg_list to append arguments values to ecma-values collection, instead of array; rename it to vm_fill_varg_list.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-05 16:55:17 +03:00
Ruben Ayrapetyan b08e8a3173 Make ecma-values collection extendable (by introducing ecma_append_to_values_collection interface).
Related issue: #311

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-05 16:55:17 +03:00
Andrey Shitov 1aa04a287d Optimize lit_get_magic_string_utf8.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-05 16:22:04 +03:00
Ruben Ayrapetyan 55ffb0cdd1 Fix pass of USE_COMPILER_DEFAULT_LIBC from make (Makefile) to cmake (CMakeLists.txt).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-05 14:49:36 +03:00
Andrey Shitov 24e307481e Optimize block size calculation in functions working with linked list.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-08-05 14:29:51 +03:00
Peter Gal af56cd8465 Make the string trim method unicode tolerant.
Fixes issue #426

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-08-04 17:09:45 +02:00
László Langó 57336909cb Fix RegExp matching on right brackets and braces.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-04 16:52:08 +02:00
László Langó 7a3636b5ce Remove executor steps/match limit from RegExp.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-04 16:51:13 +02:00
Szilard Ledan 9ab0f23e48 Fix IgnoreCase in RegExp engine
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-08-04 16:29:47 +02:00
László Langó f48ed52209 Implement IgnoreCase in RegExp engine
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-08-04 16:29:47 +02:00
Roland Takacs 1b05cc47ff Add throwing of missing range error to Date.prototype.toISOString()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-04 16:13:51 +02:00
Roland Takacs 6082c32d45 Refactor to{,UTC,ISO}String methods of the Date object.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-04 16:13:51 +02:00
Roland Takacs 833a5d1a55 Eliminate the year calculation from an infinity value.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-04 15:38:00 +02:00
Roland Takacs 722fd2a989 Remove unneccesary UTC time conversion in the parser of the Date object.
We don't need to convert time to UTC time when the argument is suffixed with 'Z'.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-04 15:10:24 +02:00
Roland Takacs 3151a460fc Support local time output for the Date object.
Convert the primitive time to local time if it is required.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-04 15:10:24 +02:00
Dániel Bátyai 156510e174 Fix array index normalize in case index is negative zero
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-08-04 14:53:59 +02:00
Szilard Ledan 6ec05ff07f Refactor and cleanup the RegExp parser
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-08-04 14:45:37 +02:00
Zoltan Herczeg 0a1b6eb4c7 Implement String.prototype.search, and some minor regexp refactors.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-08-04 05:14:11 -07:00
Ruben Ayrapetyan f39a294bc6 Remove dependency on prerequisites for linux build.
Precommit still depends on prerequisites, as it depends on vera++, etc.

Related issue: #516

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-04 13:59:24 +03:00
Ruben Ayrapetyan c41f76aba2 Support up to 65535 items in object / array literals.
Related issue: #276

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-08-03 15:54:53 +03:00
Roland Takacs b5923ccd9d Fix [[Construct]] call for Date()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-08-03 09:06:16 +02:00
Ruben Ayrapetyan f7781bb7bc Remove intrinsics (native_call opcode).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-31 17:59:03 +03:00
Ruben Ayrapetyan 72d4c07bdc Remove 'print' instrinsic, add 'print' implementation-defined built-in routine to the Global object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-31 17:57:59 +03:00
Ruben Ayrapetyan c715a7cd1d Change 'assert' handle to pass only upon exactly 1 argument is received, and the argument is boolean true; update internal test suite correspondingly.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-30 17:05:26 +03:00
László Langó 5d385b1144 Fix properties of RegExp prototype
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-30 15:25:53 +02:00
Roland Takacs 144c3ba874 Fix assertion 'mem_pools == NULL' in the Date constructor.
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-30 13:35:06 +02:00
Dániel Bátyai fe475eace7 Use ToNumber when checking lastIndex during RegExp exec()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-30 13:03:05 +02:00
Zoltan Herczeg 048e20925e Implement String.prototype.replace function.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-30 03:55:50 -07:00
Dániel Bátyai 39cf5aaa7c Fix RegExp constructor when called with undefined arguments
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-30 09:47:37 +02:00
Dániel Bátyai 1193de88cc Use [[DefineOwnProperty]] in Array builtins where necessary.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-30 09:31:49 +02:00
Kristof Kosztyo 8cd1ade515 Fix primitive value handling in Date constructor
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-07-29 15:08:55 +02:00
Peter Gal 801e8e34cd Test lastIndex calculation for exec calls
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-29 11:20:13 +02:00
Zoltan Herczeg 41aef56cba Rename isalpha, isdigit and replace characters with their corresponding constant.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-28 23:38:45 -07:00
Peter Gal 3fbe54393f Make parseInt unicode tolerant.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-28 18:36:39 +02:00
Andrey Shitov 382b2b48b7 Optimize lit_find_literal_by_utf8_string by adding hash comparison.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-28 16:04:00 +03:00
Andrey Shitov 9766feda2e Change jerry_api_string_to_char_buffer so it doesn't add '\0' to the end of output buffer.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-28 15:54:55 +03:00
Andrey Shitov 656908ecaf Optimize lit_char_is_unicode_letter.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-28 14:48:45 +03:00
Ruben Ayrapetyan 502f4c4623 Split opcode and instruction entities and perform related renamings: opcode_t is now vm_instr_t, opcode position is instruction position, etc.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-28 13:43:43 +03:00
Ruben Ayrapetyan 1990762cf0 Add opcode description table containing an opcode's name, name and possible type of the opcode's arguments.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-28 13:43:43 +03:00
Peter Gal 25450d8a12 Error constructor prototypes should be Function
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-28 12:16:38 +02:00
Dániel Bátyai f1248b9780 Fix Number.prototype.toString() when radix is undefined.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-28 12:04:41 +02:00
Szilard Ledan b5da46f2aa Fix segmentation fault in Date helper functions
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-28 10:19:56 +02:00
Peter Gal e34ab90e61 RegExp: treat undefined argument as empty.
new RegExp() and new RegExp(undefined) calls now results in the
same 'source' pattern.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-27 15:58:38 +02:00
Roland Takacs 336db40ed0 Segmentation fault in JSON.stringify()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-27 15:29:55 +02:00
Dániel Bátyai 2e0334ccb2 Returned array of Array.prototype.map() should have same length as original.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-27 10:41:50 +02:00
Dániel Bátyai fc45b80579 Fix Array.prototype.toLocaleString() when toLocaleString returns non-string.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 17:43:16 +02:00
Dániel Bátyai b11007055d Fix buffer size calculation in Number.prototype.toString()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 17:21:04 +02:00
Dániel Bátyai fec5933a3d Fix Array.prototype.push() and unshift() in case result length is larger than UINT_MAX
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 17:16:34 +02:00
Peter Gal b5de03a808 Improve Infinity handling in Math.min/max methods.
In Math.max case: if we already found an infinity value update the result
only when the previous value was a negative infinity.

In Math.min case: if we already found an infinity value update the result
only when the previous value was a positive infinity.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-24 16:22:50 +02:00
László Langó 3c71daaf84 Use unicode iterators in RegExp engine and implement \d, \D, \w, \W, \s, \S, \x, \u matching in RegExp.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-24 16:07:25 +02:00
Dániel Bátyai 6567651b6c Fix Array index normalize helper when index is large.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 15:01:12 +02:00
Peter Gal ee8d65063f Fix parseInt when passing empty string.
Before allocating buffer for the string first
we check that the length of it is greater then 0.
If not then the result is a NaN.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-24 14:39:12 +02:00
Zsolt Borbély 33be4883a2 Fix Array.prototype.splice() deletecount calculation
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-24 13:55:56 +02:00
Laszlo Vidacs 64c81cc44d Implement String.prototype.indexOf()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-07-24 13:35:26 +02:00
Roland Takacs ed16f09019 Implement Date.prototype.toJSON()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-24 12:50:02 +02:00
Peter Gal 021fc62652 Fix endian detection on 32bit
When using the -std=c99 the gcc does not defines the i386 macro
just the __i386 and __ i386 __.

Fixes issue #355

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-24 11:00:24 +02:00
Dániel Bátyai 9513808647 Fix Array.prototype.concat() when 'this' is not an array.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 10:12:02 +02:00
Dániel Bátyai 27161d31df Fix leak in Array.prototype.indexOf() when 'fromIndex' can't coerce to primitive value.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-24 10:31:37 +03:00
Peter Gal 11c310322b Implement String.prototype.match
Added implementation for the String.prototype.match method.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-23 10:42:13 +03:00
Roland Takacs 63083b3b51 Implement date.prototype.toISOString() and date.prototype.toUTCString()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-22 15:42:49 +03:00
Ruben Ayrapetyan d11dfc5703 Fix syntax check of literal duplication in FormalParameterList (strict mode).
Related issue: #381

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-22 15:22:40 +03:00
Zsolt Borbély 352e8f5c04 Minor stylefixes for the Array builtin
Related issue: #110

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-22 15:01:11 +03:00
Zsolt Borbély cdf361c2bd Reorder Array builtin functions
Sort the functions according by the chapters of the standard.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-22 15:01:11 +03:00
Ruben Ayrapetyan 6ade8dfebb Fix preparse_scope - consider nesting level during search for identifier tokens.
Related issue: #440

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-22 14:50:57 +03:00
Ruben Ayrapetyan 31894da098 Move ecma-stack to vm component, renaming it to vm-stack.
ECMA-stack is related to VM and is not related to ECMA component, except for GC.
Dependency between vm-stack and GC would be solved after GC would be extracted to a separate compoment.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-22 14:36:23 +03:00
Ruben Ayrapetyan 7dcaf06793 Rename int_data_t -> vm_frame_ctx_t, vm_frame_ctx_t* variables from int_data / int_data_p -> frame_ctx_p.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-22 14:36:23 +03:00
Dániel Bátyai a2c6663d43 Array.prototype.sort() now handles defined properties only.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-22 14:18:24 +03:00
Dániel Bátyai 9d6e7bf336 Array.prototype.sort() should sort in place.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-22 14:18:24 +03:00
Szilard Ledan 7c1622855d Fix the infinite loop in ecma_date_year_from_time
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-21 14:04:44 +02:00
Szilard Ledan 9edae36b00 Fix assertion fail in ecma_date_make_day
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-21 14:04:44 +02:00
Laszlo Vidacs c7a47c1791 Implement String.prototype.charCodeAt()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-07-20 16:10:45 +02:00
Ruben Ayrapetyan 7b3042fdc9 Remove usage of isalpha, isdigit, isxdigit, isspace in the whole engine except implementation of JSON built-in, moving the functions to JSON built-in's module.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-20 15:47:19 +03:00
Zoltan Herczeg bcedc901cd Add \u parse support for the JSON object. Buffer overrun issues were fixed as well.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-20 01:09:13 -07:00
Szilard Ledan bbfddea032 Fix Date(Number.POSITIVE_INFINITY) assertion fail in the Date constructor
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-17 17:38:00 +02:00
Akos Kiss 6038173e76 Rename make target build_all to $(BUILD_ALL)
The current `Makefile` works "as is" since `$(BUILD_ALL)` is
`build_all`. However, the target `build` depends on `$(BUILD_ALL)`,
so should that variable ever be changed, it will break.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-07-16 23:39:49 +02:00
Akos Kiss 8d9658913b Get all phony targets declared
It is generally a good practice to have the `.PHONY` declarations
close to the affected targets themselves (instead of declaring them
phony in one group at the end of the `Makefile`) so as not to miss
any. (As it already happened to the `log`, `precommit`,
`build_all`, etc., targets.) Thus, removed the one big declaration
from the end of the file and prepended all phony targets with a
declaration separately.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-07-16 23:39:48 +02:00
Akos Kiss f8ee565016 Split independent commands in make recipes
Mostly, there is no need for joining commands with `&&` in recipes
since make already applies the exit-on-error functionality to each
executed line, unless there is a shell interdependency between them
(like setting environment variables in one command and using it in
another, or changing the working directory, which would not work
because of the new-subshell-per-line behaviour of make). Thus, some
independent commands can be split in the `Makefile` to improve
readability.

(Some space/tab inconsistensies are also fixed.)

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-07-16 23:39:48 +02:00
Akos Kiss 1a4e66a013 Extend non-quiet make mode with log echo
If `VERBOSE` is defined, cmake, sub-make, and tool logs are also
echoed on stdout. Default behaviour is still quiet mode, however.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-07-16 23:39:48 +02:00
Akos Kiss f4c24f063d Enable non-quiet make
Replace most of echo-suppressing `@`s with `$(Q)`. `$(Q)` defaults
to `@` to preserve current behaviour, however, should anyone need
or prefer echoed lines, defining `VERBOSE` on the command line for
make makes it possible.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-07-16 23:39:48 +02:00
Ruben Ayrapetyan 68b9fb54d5 Turn off Date and RegExp built-in objects in compact profile.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-16 20:24:10 +03:00
Szilard Ledan 351df6184c Add locale part of the toString in the Date object
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-16 13:04:41 +02:00
Dániel Bátyai b414329ce8 Fix Array.prototype.concat() argument array length.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-16 10:22:52 +03:00
Peter Gal db9b74a114 Fix buffer size calculation in parseInt.
Fixes issue #279.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-16 10:14:22 +03:00
Szilard Ledan d2457b1fc6 Add missing RegExp case in the token_type_to_string
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-16 10:04:03 +03:00
Andrey Shitov 4fdb5249b9 Restore "Fix preparsing of variable declaration lists, which are not divided by a semicolon." 06d0c1806d) that was incorrectly removed in abc2b55297.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-15 20:20:26 +03:00
Ruben Ayrapetyan abc2b55297 Fix dump of arguments / eval usage hint in preparse_scope.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 17:24:54 +03:00
Szilard Ledan 005eb044a9 Implement builtin setters for Date object
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-15 17:16:59 +03:00
Ruben Ayrapetyan 7bc2c69147 Temporary workaround (until parser is refactored) for fixing parse of expressions like '1 = 1'.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 17:00:45 +03:00
Ruben Ayrapetyan 44b7b95781 Add support of ReferenceError early error to parser.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 17:00:45 +03:00
Andrey Shitov 06d0c1806d Fix preparsing of variable declaration lists, which are not divided by a semicolon.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-15 16:53:41 +03:00
László Langó 051c7b6786 Implement Date.prototype.toDateString and Date.prototype.toTimeString
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-15 16:25:14 +03:00
László Langó 84f09ffcd9 Follow up fix for Date.prototype.toString
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-15 16:25:14 +03:00
Roland Takacs dcc704d1e8 Add missing case for backspace control character in JSON.parse()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-15 16:17:56 +03:00
Roland Takacs 8aeb2a055e Fix underflow in JSON.stringify()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-15 16:09:51 +03:00
Zsolt Borbély f625473f9a Implement String.prototype.localeCompare function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-15 15:50:38 +03:00
Dániel Bátyai e5b2e1e389 Number.prototype functions should throw TypeError if 'this' is not number.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-15 15:41:19 +03:00
Peter Gal c8a16f2107 Improve Function constructor argument handling.
For the Function constructor it is possible to pass the
name of the function arguments in one or more strings, and
each argument name should be separated with a comma.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-15 15:33:10 +03:00
Roland Takacs 292d99ba4e Fix assertion 'bytes_copied > 0' in JSON.stringify()
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
2015-07-15 13:48:11 +03:00
Ruben Ayrapetyan 7ccec19c26 Fix strict mode in an object initializer's getters / setters definition.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 13:32:02 +03:00
Andrey Shitov 4f58104981 Fix checking of semicolons in expression statements.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-15 13:15:25 +03:00
Ruben Ayrapetyan 0e8cb596d7 Fix parse of preincrement / predecrement, applied to 'obj.prop'-like expressions.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 13:04:02 +03:00
Ruben Ayrapetyan 6fe78cc994 Temporary workaround (until parser is refactored) for fixing evaluation of simple 'identifier'-like expressions.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 12:52:42 +03:00
Ruben Ayrapetyan 5e329c815c Fix syntax checking of large object literals.
Related issue: #354

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 12:41:56 +03:00
Ruben Ayrapetyan 73d082aa55 Fix parse of delete operator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 12:34:51 +03:00
Ruben Ayrapetyan c120433158 Fix handling of EOF in insert_semicolon.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-15 12:31:47 +03:00
László Langó cf9d54545f Style fixes for RegExp engine.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-15 11:02:11 +02:00
Zsolt Borbély 1e90f833f7 Implement Function.prototype.bind function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-15 08:39:35 +02:00
Ruben Ayrapetyan 92bf7859af Put lexer_init after setjmp in parser_parse_program, as lexer_init could raise an early error.
Related issues: #341

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-14 18:42:49 +03:00
Andrey Shitov 1195c197e8 Fix syntax checking for line terminators inside regular expressions.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-14 17:58:24 +03:00
Andrey Shitov f3ef9afb91 Fix handling of invalid HexIntegerLiterals in lexer.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-14 17:58:24 +03:00
Zoltan Herczeg 69655f4456 Implement toLowerCase and toUpperCase built-in functions.
Related issue: #323

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-14 07:01:47 -07:00
SaeHie Park bc0ca7be5d Add heap size limit
to solve #342

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-07-14 07:44:37 +09:00
SaeHie Park 0927888b44 External build fix
Added generic build for none linux platforms, as nuttx has be removed by #330

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-07-14 07:44:37 +09:00
Ruben Ayrapetyan aa415c670e Fix initialization of 'this' argument in 'call_n' opcode handler.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-13 19:31:07 +03:00
Ruben Ayrapetyan c84d31ce9e Fix sign of number remainder (ecma_op_number_remainder).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-13 19:21:46 +03:00
Ruben Ayrapetyan f8770020f7 Update RegExp.prototype.exec so that it returns 'null' instead of 'undefined' in case argument doesn't match corresponding regular expression.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-13 19:05:37 +03:00
Ruben Ayrapetyan 8aa2571699 Fix NaN handling in ecma_op_same_value.
Related issue: #130

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-13 18:57:38 +03:00
Ruben Ayrapetyan 710a18d6af Add 'length' property of String.prototype built-in object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-13 18:49:45 +03:00
Andrey Shitov cf2bc459bb Support unicode whitespaces in string-to-number conversion.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-13 18:33:05 +03:00
Andrey Shitov b3fa7d9765 Fix function skipping in preparse_scope: properly detect usage of 'function' keyword as property name.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-13 18:01:18 +03:00
Andrey Shitov 7f1a7981b9 Support true, false, null as property names.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-13 18:01:17 +03:00
Andrey Shitov 60bd718fb5 Fix assertion !lit_utf8_iterator_is_eos (iter_p) in lexer.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-13 18:01:17 +03:00
Andrey Shitov 64bbf2752e Fix printing of the source line with syntax error.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-13 18:01:17 +03:00
SaeHie Park 13cf31413f Fix EXTERNAL_LIBC_INTERFACE check with USE_COMPILER_DEFAULT_LIBC
Related with #331

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-07-12 17:18:52 +09:00
László Langó 9c559216b7 Primitive value of Date.prototype should be NaN
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-10 13:31:31 +02:00
László Langó 122e5c47c9 Fix assertion in RegExp bytecode realloc.
Assertion '!bc_ctx_p->current_p && !bc_ctx_p->block_end_p && !bc_ctx_p->block_start_p' failed in realloc_regexp_bytecode_block

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-10 10:23:09 +02:00
László Langó 9b24d8fd7a Implement Date.prototype.toString
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-10 09:43:19 +02:00
László Langó 6e8f7b6e59 Assertion fix in RegExp.
Assertion 'mem_pools == NULL' failed in mem_pools_finalize

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-10 09:33:23 +02:00
Andrey Shitov dbf3708255 Fix concatenating of surrogates.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-10 10:23:20 +03:00
Kristof Kosztyo 9fc1958903 Fix the builtin Math.min and Math.max function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-07-10 09:11:43 +02:00
Szilard Ledan 8d7cdebee0 Implement builtin getters for Date object
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-09 17:04:54 +02:00
Ilya Lopatin 6547cf3b2d JerryScript-DCO-1.0-Signed-off-by: Ilya Lopatin lopic19@gmail.com 2015-07-09 17:55:50 +03:00
Evgeny Gavrin 9c18648b6c Fix build for GCC 4.7.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-09 15:38:27 +03:00
Evgeny Gavrin a26832f3c9 Fix strip handling for cross build configurations.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-09 15:38:27 +03:00
Andrey Shitov d5fd0b09b1 Properly process Use Strict which contains EscapeSeqence or LineContinuation.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-09 12:43:13 +03:00
Andrey Shitov 17cdc35d6d Fix detection of Use Strict directive not in the start of Directive Prologue.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-09 12:43:03 +03:00
Andrey Shitov 146ac15b5f Change locus type from size_t to lit_utf8_iterator_pos_t.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-08 15:53:33 +03:00
Ruben Ayrapetyan 7dd1d01541 Replace character constants with corresponding LIT_CHAR_* definitions in lexer_parse_token (renamed from lexer_next_token_private); replace remaining character constants in lexer with corresponding LIT_CHAR_* definitions.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:53:23 +03:00
Ruben Ayrapetyan e45f6dc61b Replace punctuator character constants with corresponding LIT_CHAR_* definitions in lexer_next_token_private.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:53:12 +03:00
Ruben Ayrapetyan 23b847015c Support unicode whitespace and line terminators in lexer, fix parse of comments.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:53:02 +03:00
Ruben Ayrapetyan 32094622ec Replace character constants with corresponding LIT_CHAR_* definitions in lexer_parse_regexp (renamed from parse_regexp).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:52:52 +03:00
Ruben Ayrapetyan 7664bc161b Replace character constants with corresponding LIT_CHAR_* defines in lexer_parse_string (renamed from parse_string).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:52:42 +03:00
Ruben Ayrapetyan 1711416e2e Simplify lexer_parse_number (parse_number) and add unicode support to the function.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:52:31 +03:00
Ruben Ayrapetyan baf3748d1b Support unicode in lexer_parse_identifier_name_or_keyword (renamed from parse_name).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:52:21 +03:00
Ruben Ayrapetyan 6432e4d7cf Replace convert_string_to_token_transform_escape_seq with lexer_transform_escape_sequences that outputs transformed charset to specified buffer, instead of creating token from the charset.
Also the commit introduces lexer_convert_escape_sequence_digits_to_char, adds 'lexer' prefix to convert_single_escape_character and replaces character constants with corresponding LIT_CHAR_* definitions in the function.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:52:10 +03:00
Ruben Ayrapetyan b5d30de4d7 Rename decode_keyword to lexer_parse_reserved_word and change it so that it doesn't return TOK_NAME, but empty token instead.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:51:59 +03:00
Andrey Shitov 32318137c3 Switch lexer to utf8 iterators.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-08 15:51:24 +03:00
Andrey Shitov d248d0944c Add helper functions for implementing unicode support in lexer.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-08 15:51:02 +03:00
Ruben Ayrapetyan c21399cd58 Fix ecma_date_parse_date_chars: lit_char_is_unicode_digit -> lit_char_is_decimal_digit.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:20:45 +03:00
Ruben Ayrapetyan afe58e90ae Add lit_char_is_octal_digit, lit_char_is_decimal_digit, lit_char_is_hex_digit helpers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:17:41 +03:00
Ruben Ayrapetyan 393d693e23 Introduce 'USE_COMPILER_DEFAULT_LIBC' for switching from jerry-libc to a libc, provided by compiler.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-08 15:02:40 +03:00
Laszlo Vidacs 6d86c4b2e1 Implement String.prototype.substring()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-07-08 12:57:17 +02:00
Evgeny Gavrin ddc3f0d6e8 Remove nuttx from prerequisites.
Related issue: #313

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-08 13:17:14 +03:00
Dániel Bátyai 5e0a355ab9 Implement printing in the specified radix for Number.prototype.toString().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-08 11:25:00 +02:00
László Langó c12914c71a Implement Date constructor.
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-08 11:07:23 +02:00
Evgeny Gavrin bf6fa9cfca Add JERRY_DISABLE_HEAVY_DEBUG region to mem_heap_get_chunked_block_start.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-08 11:51:27 +03:00
Laszlo Vidacs 632618da99 Implement String.prototype.charAt()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-07-08 10:26:28 +02:00
Evgeny Gavrin 01c4325588 Remove empty unneeded file.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-08 10:15:48 +03:00
Evgeny Gavrin 6a4565c891 Fix resource leak at main-linux.cpp:read_sources.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-07 20:40:36 +03:00
Zsolt Borbély 69bfcea697 Move of built-in implementation helpers to jerry-core/ecma/builtin-objects
Related issue: #145

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-07-07 17:16:10 +02:00
Dániel Bátyai 3c4c5452dd Add length property to Array constructor
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-07 17:14:07 +02:00
Dániel Bátyai 9402e3d59c Fix [[Class]] property of builtin constructors
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-07 16:59:27 +02:00
László Langó 4f108ab401 Implement Date.UTC and add a dummy implementation for Date.now
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-07 15:43:33 +02:00
Zoltan Herczeg 06b4490ea1 Optimize encode/decode URI for valid UTF-8 input.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-07 04:50:01 -07:00
Zoltan Herczeg d1a5f7fc87 Implement JSON built-in object
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-07-07 04:39:39 -07:00
László Langó cadc8f40d4 Implement Date.parse
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-07 08:25:29 +02:00
Kristof Kosztyo 2bfb9b9ae4 Fix ecma_op_array_object_define_own_property
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-07-06 16:29:42 +02:00
László Langó e9a5b34d1d Assertion fix for missing class names.
Assertion 'builtin_id == ECMA_BUILTIN_ID_TYPE_ERROR_THROWER' failed in ecma_object_get_class_name.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-07-06 15:29:28 +02:00
Dániel Bátyai 47cd42ecc5 Fix Number.prototype.toFixed if argument is outside int32 range
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-06 15:17:27 +02:00
Peter Gal 4e5e7bb4c8 Set global object's prototype
The global object should have the same prototype
as a simple object.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-06 11:01:02 +02:00
Peter Gal e154156cf4 Fix element indexing for Object.keys/Object.getOwnPropertyNames
Previously the index was incremented even if an internal property
or a non enumerable property was found.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-06 10:43:15 +02:00
Peter Gal c9bbec7683 Fix assert in ecma_op_function_declaration
Minor code rework as the ecma_op_object_define_own_property
call returns a 'true' simple value on success.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-07-06 10:25:12 +02:00
SaeHie Park 93e3cb13dd Fix jmp_buf size to fix assert in arm-linux
Related issue: #296

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-07-06 06:52:04 +09:00
Andrey Shitov ae3eea8ae8 Add functions for iterating utf-8 strings.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-07-03 13:24:27 +03:00
Evgeny Gavrin 0787d76b62 Fix generation of empty completion value in ecma_reject_put.
Related issue: #114

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-02 19:31:38 +03:00
Evgeny Gavrin 69fe6199c0 Add syntax check for return from global scope/eval.
Related issue: #129

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-02 19:12:41 +03:00
Ruben Ayrapetyan e8659f373c Rename ECMA_CHAR_NULL to LIT_CHAR_NULL, move it to jerry-core/lit/lit-char-helpers.h.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-02 17:38:34 +03:00
Ruben Ayrapetyan 2a78d24fce Add preprocessor definitions for various character codes, referenced in ECMA-262, and helpers for checking if a character falls into a ECMA-defined character category; remove lit_char_is_carriage_return and lit_char_is_new_line helpers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-02 17:38:32 +03:00
Ruben Ayrapetyan 7d53133fcb Add unicode characters ranges, listed per category.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-02 17:37:21 +03:00
Ruben Ayrapetyan c37964f7a9 Move helpers from ecma-helpers-char.cpp to lit-char-helpers.cpp, rename them correspondingly.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-02 17:36:48 +03:00
Szilard Ledan 017aa6b684 Change Date helpers to handle NaN
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-07-02 09:15:03 +02:00
Evgeny Gavrin 56e7ead9f9 Fix build for GCC 4.7.
Related issue: #1

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-01 20:52:37 +03:00
Evgeny Gavrin 1b55630b2a Add parallel test262 runner.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-07-01 15:20:11 +03:00
Ruben Ayrapetyan 0c7801b996 Fix setup of argument variables in case parameter names are duplicated.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-01 15:07:00 +03:00
Ruben Ayrapetyan 134491453b Fix ecma_op_get_value_object_base (GetValue, 8.7.1) for case HasPrimitiveBase (ref) is true.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-01 14:57:06 +03:00
Ruben Ayrapetyan b45302ee07 Fix propagation of strict mode.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-01 14:44:12 +03:00
Ruben Ayrapetyan 438d2c2930 Fix ecma-property construction: perform operations that could invoke GC before linking property into an object's property list to avoid start of GC in the middle of property construction.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-07-01 14:23:48 +03:00
Dániel Bátyai 713b433c42 Implement Number.prototype.toPrecision()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-01 11:15:18 +02:00
Dániel Bátyai 53cbb55f25 Implement Number.prototype.toExponential()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-07-01 10:51:55 +02:00
Evgeny Gavrin 505beadfeb Fix failing prerequisites script.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-30 20:17:01 +03:00
Ruben Ayrapetyan 71bac03d51 Fix construction of Arguments object: add handler for 'caller' property that throws TypeError upon read or write access.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 19:18:53 +03:00
Ruben Ayrapetyan ec02ace0e9 Fix syntax check for duplicate parameter names in a strict mode function.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 15:22:21 +03:00
Evgeny Gavrin 444bd32d50 Add support of cross-compilation for linux-based targets.
Usage:
- Cross compile:
make debug.linux TOOLCHAIN=./build/configs/toolchain_linux_armv7l-el.cmake
- Build unittests
make unittests TOOLCHAIN=./build/configs/toolchain_linux_armv7l-el.cmake
- Run unittests on target board
./tools/runners/run-unittests-remote.sh <ip> <login> <pass>
- Run JavaScript test on target board
./tools/runners/run-tests-remote.sh debug.linux <ip> <login> <pass>

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-30 15:03:36 +03:00
Evgeny Gavrin be2de16a4e Fix build error using GCC 4.7.4
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-30 15:03:36 +03:00
Ruben Ayrapetyan 4870550c8a Fix false-positive unexpected EOF in preparse_scope.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 14:52:20 +03:00
Ruben Ayrapetyan 0422e2230d Fix syntax check for case 'eval' or 'arguments' identifiers are used for name of function in strict mode.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 14:36:18 +03:00
Ruben Ayrapetyan 7b90d54490 Fix raise of several nested jumpable borders at one label.
Related issue: #164

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 14:25:51 +03:00
Ruben Ayrapetyan 2aa04859ef Fix handling of an exception raised during arguments list evaluation.
Related issues: #260, #261, #262, #263, #264, #265, #266, #267

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-30 10:11:01 +03:00
Andrey Shitov fd9ff8e3bd Add core unicode functionality.
Add utf-8 processing routines.
Change ecma_char_t from char/uint16_t to uint16_t.
Apply all utf-8 processing routines.
Change char to jerry_api_char in API functions' declarations.

JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-29 23:27:58 +03:00
Andrey Shitov c4b0cd2196 Change ecma_length_t and jerry_api_length_t from uint16_t to uint32_t.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-29 23:27:58 +03:00
Andrey Shitov a0c5974ab8 Move char type definitions and magic string processing functions to literal component.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-29 23:27:58 +03:00
Szilard Ledan 07148d319b Implement Date object helper functions
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-06-29 18:09:39 +02:00
Ruben Ayrapetyan a56693e00c Fix syntax error check for assignment of 'eval' and 'arguments' in strict mode code.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 18:11:24 +03:00
Ruben Ayrapetyan 984e269db6 Fix direct call to eval from strict mode code.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 18:04:42 +03:00
Ruben Ayrapetyan 6573ffd632 Fix several issues in parse of variable declarations.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:56:42 +03:00
Ruben Ayrapetyan 9e3f123cd5 Fix character code values for "<LF>" and "<CR>" characters in ecma-char helpers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:49:57 +03:00
Ruben Ayrapetyan 3d31bfec92 Fix parse of nested switch statements.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:42:37 +03:00
Ruben Ayrapetyan 6e2733dbfd Reduce register pressure by reusing registers, allocated for argument preparation instruction sequence.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:23:51 +03:00
Ruben Ayrapetyan dc095bb902 Enhancement of argument list parsing loop: removing break / continue operators, so that every iteration passes start and end of loop body.
The change makes possible simple notification of byte-code generator about start / end of byte-code generation for an argument.
As register values are not passed between byte-code sequences that prepare different arguments, the change would make possible for byte-code generator to reuse registers allocated for the code sequences.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:23:51 +03:00
Ruben Ayrapetyan 1dc7ed64d6 Fix get_variable_value invocation in opfunc_call_n; enhancement of exception handling in opfunc_obj_decl.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 17:23:51 +03:00
Ruben Ayrapetyan 06dffdec8f Remove exit completion value type.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 10:24:18 +03:00
Ruben Ayrapetyan 447358cd4a Remove intrinsics support from parser.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-29 10:24:18 +03:00
Evgeny Gavrin 3e86875333 Fix incorrect assertion ecma_op_from_property_descriptor.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-28 19:53:29 +03:00
Ruben Ayrapetyan 507411f0a0 Implement parse of for-in statement.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-26 20:21:59 +03:00
Ruben Ayrapetyan b988fe2fce Introduce for-in opcode; implement handler for the opcode.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-26 20:10:31 +03:00
Ruben Ayrapetyan 6c6e740c7a Fix check of run scope bounds in vm_loop.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-26 20:10:31 +03:00
Ruben Ayrapetyan 9b414deb8d Introduce explicit description of registers (temporary variables) ranges.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-26 20:10:31 +03:00
László Langó e027b4d65d Enable regular expressions.
- add regular expressions support to JS parser and interpreter;
- add tests for regular expressions.

JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:31:10 +02:00
László Langó f992f5d92e Add RegExp object constructor, regular expression matching procedures, RegExp and RegExp.prototype built-in objects.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:31:06 +02:00
László Langó 4ffcb4d464 Add parser and compiler of regular expressions.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:31:03 +02:00
László Langó 1f9add4735 Add ecma_char_is_word_char helper (part of IsWordChar abstract operation, ECMA-262 v5, 15.10.2.6); move hex_to_int from lexer to jerry-core/ecma/base/ecma-helpers-char.cpp, renaming it to ecma_char_hex_to_int.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:31:00 +02:00
László Langó 50b64bfad2 Add ecma_new_ecma_string version that takes buffer with specified number of characters, instead of zero-terminated string.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:30:57 +02:00
László Langó d0e9edc16d Fix comments in jerry-core/ecma/base/ecma-helpers.h.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:30:53 +02:00
László Langó 6511f0e1ba Add ecma_raise_* helpers for raising ECMA exceptions.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-26 13:30:23 +02:00
Ruben Ayrapetyan f849cc6283 Fix parse of simple for statement.
Related issue: #156

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-25 20:29:36 +03:00
Ruben Ayrapetyan 601f1eea58 Introduce jsp_skip_braces function for skiping blocks, surrounded with braces.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-25 20:29:36 +03:00
Ruben Ayrapetyan 5f174cf8bf Remove 'process_keyword_names' stage, as keyword literals now can be registered during main parse stage.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-25 20:29:36 +03:00
Zsolt Borbély 1c19e5c8ab Fix the Object.getPrototypeOf function.
Related issue: #208

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-06-25 16:32:53 +02:00
Ruben Ayrapetyan d7ecd4a467 Fix raise of syntax errors for unmatched braces.
Related issue: #43, #183

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-25 16:47:45 +03:00
Ruben Ayrapetyan 4ff9e79b02 Generate anonymous function expressions for getters / setters of an object literal.
Related issue: #234

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-24 15:37:42 +03:00
SaeHie Park c603d10360 Adjust nuttx heap size to 80K
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-06-24 07:05:56 +09:00
Peter Gal 77b01a6473 Provide assert as an external method.
Removed the internal assert implementation from the engine
and provide externally an assert function via api calls.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-23 18:08:51 +02:00
Kristof Kosztyo 61ab205130 Implement Object.create function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-23 17:46:59 +02:00
Zsolt Borbély 3f28cb3bf8 Fix the indexing of Array builtin functions.
The index-dependant builtins didn't handle correctly the positive Infinity value.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-06-23 17:29:46 +02:00
Laszlo Vidacs caa1617ea2 Implement String.prototype.trim()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-23 16:54:42 +02:00
Ruben Ayrapetyan 913519dd5c Fix of ToUInt32 (ecma_number_to_uint32) and ToInt32 (ecma_number_to_int32) conversion routines.
Related issue: #160

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 15:33:03 +03:00
Ruben Ayrapetyan 1efaefaabe Extract part of ecma_op_number_remainder (ECMA-262 v5, 11.5.3), corresponding to item 6 (actual remainder calculation, without handling of NaN. Infinity and zero values), as ecma_number_calc_remainder.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 15:33:03 +03:00
Dániel Bátyai 7d3bb85ccb Fix buffer size in Number.prototype.toFixed()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-06-23 14:14:39 +02:00
Evgeny Gavrin 216dc251ec Remove support of plug-in mechanism.
This API is obsolete and can be fully replaced with existing `api.h`.

JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-23 13:56:46 +03:00
Ruben Ayrapetyan ab2abfa8b3 Fix receiving of byte-code instructions from serializer.
Related issue: #203

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 13:49:46 +03:00
Ruben Ayrapetyan d1055f98e5 Add set_variable_value to opfunc_native_call.
Related issue: #117

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 13:16:42 +03:00
Ruben Ayrapetyan 611811678e Remove invalid assertion in ecma_builtin_global_object_eval.
The removed assertion checked that `this` argument can't be equal to `undefined` in direct call to eval.
Actually, `this` can be not equal to `undefined` in case direct call to eval is performed from `with` block.

Related issue: #212

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 13:09:55 +03:00
Ruben Ayrapetyan a536073da4 Add literal registration in parse_member_expression (TOK_KEYWORD case).
Related issue: #116

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 12:39:45 +03:00
Ruben Ayrapetyan 89a7449913 Fix invalid assertion condition in jump opcode handlers.
Related issue: #120

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 12:31:45 +03:00
Ruben Ayrapetyan 0db82a56d2 Fix exception handling in opfunc_native_call (OPCODE_NATIVE_CALL_PRINT case).
Related issue: #122

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 12:09:18 +03:00
Ruben Ayrapetyan 81d13b0676 Fix incorrect interchange of interfaces taking to ecma values and ecma completion values.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-23 11:38:13 +03:00
Szilard Ledan bac7908448 Add fmod function to the fdlibm
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-06-22 12:55:26 +02:00
Kristof Kosztyo e3861d7cd1 Implement Object.freeze and Object.isFrozen function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-22 10:03:18 +02:00
Kristof Kosztyo 2ee469ee65 Implement Object.seal and Object.isSealed function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-22 09:25:10 +02:00
Tamas Czene 4836d3b615 Implemented Number.prototype.toFixed()
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Tamas Czene tczene.u-szeged@partner.samsung.com
2015-06-19 17:34:48 +02:00
Ruben Ayrapetyan 7d4569a6ff Fix valgrind false-positive warning in mem_heap_get_chunked_block_start.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 18:00:37 +03:00
Ruben Ayrapetyan a4e54e736e Support syntax error feedback in parser.
Now, parser correctly finishes parse procedure if syntax of source code is incorrect (syntax correctness is indicated using return value):
 - parser-internal memory management is performed using jsp_mm_alloc / jsp_mm_free;
 - upon detection of incorrect syntax, all parser-allocated memory regions are deallocated using jsp_mm_free_all and parse finishes with corresponding return value.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 17:05:15 +03:00
Ruben Ayrapetyan 85f12de139 Introduce parser-specific managed memory allocator with interface jsp_mm_free_all that, upon call, frees all memory allocated with the allocator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 16:25:34 +03:00
Ruben Ayrapetyan 9b0f5d439d Introduce jsp_label_remove_all_labels interface that removes all jump labels registered at the moment of call for usage upon raise of SyntaxError during parse.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 16:25:34 +03:00
Ruben Ayrapetyan bd9d1d4afd Improve allocation of memory for byte-code array and literal identifiers hash table.
- literal identifiers hash table and byte-code array are now allocated in one heap block instead of four blocks;
 - memory regions with the hash tables and arrays are now linked into linked list using headers at start of the regions instead of using array_list.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 16:25:34 +03:00
Ruben Ayrapetyan 4e563932f1 Remove parser_init / parser_free interfaces (corresponding actions are now performed in parser_parse_program); introduce boolean return value in parser invocation interfaces that would indicate whether SyntaxError was raised during parse.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 16:25:34 +03:00
Ruben Ayrapetyan 2bf25f10eb Move jerry-core/parser/collections to jerry-core/parser/js/collections.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-19 16:25:34 +03:00
Zoltan Herczeg 6027906f96 Add support for URI encoding / decoding.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg@inf.u-szeged.hu
2015-06-18 19:05:45 +02:00
Ruben Ayrapetyan 53156771dc Update API for invocation of functions and constructors.
With the change, if exception is thrown in `jerry_api_function_call` and `jerry_api_construct_object`, the exception object is returned to the caller.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 19:14:34 +03:00
Peter Gal 5dc44b1362 Fix MCU script transformation logic.
The old script behaved incorrectly as it replaced all '*' occurrences
with the list of files in the given directory.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-17 17:55:56 +02:00
Dániel Bátyai 7508b803cf Implement parseFloat()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-06-17 16:42:07 +02:00
Dániel Bátyai 35840a4b6d Implement parseInt()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-06-17 16:41:57 +02:00
Ruben Ayrapetyan de7b72d726 Add configuration for ARMv7 softfloat build; update setjmp / longjmp ARMv7 implementation to handle the softfloat-mode properly.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:03:42 +03:00
Ruben Ayrapetyan b008867d81 Implement setjmp / longjmp in jerry-libc.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:03:42 +03:00
Ruben Ayrapetyan f115f731c3 Switch unit tests to jerry-libc.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:03:42 +03:00
Ruben Ayrapetyan 6d6c913bdc Move random number generator from Math.random to jerry-libc, replace the logic with call to rand in Math.random.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:02:50 +03:00
Ruben Ayrapetyan 30277153b9 Fix strncmp, fread and fwrite in jerry-libc.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:02:50 +03:00
Ruben Ayrapetyan 630a1e8eba Move architecture-depedendent libc internal headers to jerry-libc/arch folder.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-17 17:02:49 +03:00
Andrey Shitov a293e21147 Introduce JERRY_DISABLE_HEAVY_DEBUG preprocessor definiton to speed up debug version of the engine.
Heavy debug is enabled only for unit tests.

JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-17 11:29:35 +03:00
László Langó d803c3bc82 Init commit for Date object.
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-06-16 18:05:31 +02:00
Ruben Ayrapetyan 8a9633dba0 Fix style in jerry-core/jerry.cpp, and doxygen titles in jerry-core/jerry.cpp and jerry-core/jerry-extension.h.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-15 16:13:56 +03:00
Evgeny Gavrin bd9a00d254 Rename tests in ./tests/jerry/* directory to match the style of filenames in the project.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-06-15 14:44:45 +03:00
Ruben Ayrapetyan 5d5e75fad6 Implementing 'eval' routine of built-in Global object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:17:23 +03:00
Ruben Ayrapetyan b310d76dec Introducing interpreter context flag, indicating if there is call of 'Direct call to eval' form in process, and interfaces for accessing the flag and 'strict mode' flag.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:17:23 +03:00
Ruben Ayrapetyan 446e8bf989 Replacing 'this_arg' meta opcode with more general 'call site additional information' meta opcode with flags describing the call site features, and, optionally, 'this' argument.
Introducing opcode_call_flags_t for argument of the new meta opcode, currently with two flags: 'have this argument' and '"direct call to eval" form'.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:17:23 +03:00
Ruben Ayrapetyan 6fadcd3f84 Implementing [[Construct]] of built-in Function object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:17:23 +03:00
Ruben Ayrapetyan d18de24e1e Adding interpreter invocation to ecma_op_eval_chars_buffer.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:17:20 +03:00
Ruben Ayrapetyan 534ee426ee Extracting part of ecma_op_eval to ecma_op_eval_chars_buffer that with 'code' argument represented as array of characters instead of ecma-string.
Updating jerry_api_eval to use ecma_op_eval_chars_buffer, so removing redundant conversion of character array to ecma-string.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:01:31 +03:00
Ruben Ayrapetyan 8ea0e23ea3 Support of multiple bytecode arrays in interpreter and ecma-runtime.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 18:01:31 +03:00
Andrey Shitov 3577261261 Add support for eval in parser.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-13 18:01:30 +03:00
Ruben Ayrapetyan 57c6c377af Small enhancements of unit tests implementation style and fix of the tests' modules naming style.
- introducing TEST_RANDOMIZE macro for randomization of source data used in unit tests;
 - replacing assert with JERRY_ASSERT;
 - renaming test_* to test-*.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-13 16:10:36 +03:00
Kristof Kosztyo 013bce85fc Fix ecma_get_property_descriptor_from_property function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-12 16:51:57 +02:00
Peter Gal 62cb842434 Implement Function.prototype.toString.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-12 14:54:03 +02:00
Zsolt Borbély 7952b1cae7 Implement Function.prototype.apply()
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-06-12 13:02:21 +02:00
Laszlo Vidacs 72eb14f741 String.prototype.concat()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-12 12:46:36 +02:00
Peter Gal 36c80f2cf5 Remove nullptr usages and use NULL instead
Related issue: #119

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-11 18:38:48 +02:00
Andrey Shitov 53801e3b41 Replace array of literals with literal storage.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-10 21:40:10 +03:00
Andrey Shitov 340a9ef002 Add literal storage, literal_t type and functions for its processing.
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-10 21:40:10 +03:00
Andrey Shitov 528a333e17 Implement recordset iterators
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-10 21:40:00 +03:00
Kristof Kosztyo 6ebb32452e Refactor the Object.defineProperties function
Fix assert and corner cases in Object.defineProperties function.

JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-10 15:36:11 +02:00
Peter Gal f6b875c36c Use __func__ instead of __FUNCTION__
The __FUNCTION__ is not part of the C99/C++11 standard.
So replace all occurrences with the standard __func__.

Side note: GCC 5.1 warns when using -Wpedantic -std=c99
and __FUNCTION__.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-09 18:03:42 +02:00
Ruben Ayrapetyan d988da8edf Fix precommit on x86_64 machine with g++ 4.8.2 compiler (issue appeared because pre-commit testing was not performed in the combination).
Related issue: #161

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-09 15:17:38 +03:00
SaeHie Park 43ec3a33cf Enable pretty-printer for unittests also
* dump string literals with test_api to see jerry_register_external_magic_strings is working ok

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-06-09 07:50:43 +09:00
SaeHie Park 723924f36f New External Magic String API to save heap memory
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-06-09 07:50:43 +09:00
SaeHie Park 603fa56acf Add vm_finalize() to clean program pointer for embed systems
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-06-09 07:50:43 +09:00
Andrey Shitov 55b43071d1 Add indentation checks for code inside classes and fix appeared issues.
Fix asserts in test_recordset.cpp.

JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-06-09 00:30:20 +03:00
Zsolt Borbély cefeea06f6 Implement Object.getPrototypeOf()
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-06-08 16:43:30 +02:00
Ruben Ayrapetyan 385b988e69 Fix of memory leak in ecma_op_function_construct_simple_or_external.
Related issue: #121

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-08 16:23:22 +03:00
Ruben Ayrapetyan 64522db972 Fix of checksum check in tools/prerequisites.sh.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-08 16:15:46 +03:00
Ruben Ayrapetyan 2270db9414 Removing 'nestings' from parser.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-05 20:18:29 +03:00
Ruben Ayrapetyan d99d779486 Support labelled statements.
Related issue: #52

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-05 19:02:08 +03:00
Ruben Ayrapetyan 2de49cdba7 Fix of 'case' / 'default' statements skip during parse of SwitchStatement.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-05 18:52:09 +03:00
Zsolt Borbély 0b1b102cfa Implement String.prototype.slice()
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-06-05 10:48:47 +02:00
Ruben Ayrapetyan ac87616f05 Fixing break / continue, nested into 'try', 'with' blocks.
Related issue: #128

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-04 17:39:48 +03:00
Ruben Ayrapetyan 8433df3097 Introducing interpreter run scopes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-04 17:39:48 +03:00
Ruben Ayrapetyan 712f8b0c9a Introducing 'try' and 'with' nestings in parser.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-04 17:39:48 +03:00
Ruben Ayrapetyan 3ec6948bae Fix parsing of 'default' switch-case label in 'parse_switch_statement'.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-04 17:34:44 +03:00
Laszlo Vidacs 4547b0fdac Array.prototype.map()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-04 14:31:26 +02:00
Akos Kiss 9d423d9901 Make exit behaviour of jerry_fatal flag-dependent
* Added new flag `JERRY_FLAG_ABORT_ON_FAIL`.
* Added new internal api function `jerry_is_abort_on_fail` to
  check the status of the flag.
* Changed `jerry_fatal` bail-out function to call `abort` when the
  flag is set and exit code is non-zero (i.e., not only for
  assertion failures).
* Added `--abort-on-fail` command line option to linux and nuttx
  apps to set the flag.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-06-03 17:09:51 +02:00
Ruben Ayrapetyan 4c10a6d057 Restoring lost review fixes for pull request #102 (instantiation of Arguments object).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-03 15:58:07 +03:00
Ruben Ayrapetyan 67161c890b Adding missing copyright notices to tests, prepared by Szeged.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-06-03 15:48:43 +03:00
Akos Kiss 6a607751bf Terminate with signal in case of an assert
Automated debugging is easier if the process terminates with a
signal instead of a regular `exit (code);` call, since in this
latter case the cause of error cannot be automatically backtraced.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-06-03 12:07:55 +02:00
Kristof Kosztyo a838461649 Implement Object.isExtensible and Object.preventExtensions function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-06-03 11:22:34 +02:00
Laszlo Vidacs 2a8c928395 Implement Array.prototype.reduceRight()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-03 11:03:45 +02:00
Peter Gal e4db5aa539 Improvements for ecma_op_general_object_define_own_property.
List of improvements:
 - Get the [[Enumerable]] and [[Configurable]] attributes before removing a property.
 - Directly check the type of the property in asserts.

Related issues: #115 and #132

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-03 10:47:00 +02:00
Akos Kiss d6fb76416a Add abort () to jerry-libc
Added declaration and implementations of `void abort (void)` to
jerry-libc. As the linux implementation relies on the `getpid`
syscall - which has no arguments - `syscall_0` implementations
have been added as well.

`libc_fatal` has been adapted to use the new `abort` function
instead of `exit`. This also made the definition of
`LIBC_FATAL_ERROR_EXIT_CODE` unnecessary.

Finally, the syscall fatal error message was fixed.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2015-06-02 18:12:29 +02:00
Peter Gal 5c012a1183 Implement Object.getOwnPropertyNames and Object.keys.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-06-01 16:01:02 +02:00
Laszlo Vidacs 89e5444438 Array.prototype.reduce() fixes.
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-01 14:18:03 +02:00
Laszlo Vidacs 95adf0e21f Array.prototype.reduce() fixes.
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-01 14:18:03 +02:00
Laszlo Vidacs f22f3c50e7 Array.prototype.reduce() tests, minor fixes.
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-01 14:18:03 +02:00
Laszlo Vidacs 71059fe346 Array.prototype.reduce() minor fixes.
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-01 14:18:03 +02:00
Laszlo Vidacs d6e4e19852 Implement Array.prototype.reduce()
JerryScript-DCO-1.0-Signed-off-by: Laszlo Vidacs lvidacs.u-szeged@partner.samsung.com
2015-06-01 14:17:57 +02:00
Szilard Ledan 6b8e34a9cd Implemented Array.prototype.sort()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-05-29 15:22:58 +02:00
Ruben Ayrapetyan 8b28cac99e Implementing escape sequences support with the exception of "\0" ("<NUL>") character and cases that depend on Unicode support.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-29 14:03:11 +03:00
Ruben Ayrapetyan 7025f97fdd Adding routine for conversion of any character sequence (not only strings contained in source code buffer) to lexer token.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-29 13:46:07 +03:00
Ruben Ayrapetyan da7e9d9871 Fixing retrieval of [[Class]] properties for built-in function objects, optimizing memory related to [[Class]] property.
- introduced ecma_object_get_class_name interface;
 - removed creation of [[Class]] internal property for types of objects that unambiguously determine the [[Class]] value.

Related issue: #112

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-29 12:52:24 +03:00
Ruben Ayrapetyan bc7c28ce12 Changing ecma_new_ecma_string_from_number to check if the string to create is equal to a magic string, and, if so, to invoke corresponding magic string construction.
Related issue: #113

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-29 12:31:33 +03:00
Ruben Ayrapetyan 77df022468 Adding jerry-test-suite tests on Arguments object to precommit testing and removing them from unsupported list.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan d4537eb0d1 Instantiation of Arguments object.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan ed4ff8e5bb Introducing a function object's flag indicating whether Arguments object should be instantiated upon call of the function.
The Arguments object is supposed to be unnecessary if function's code:
  - doesn't reference 'arguments' identifier;
  - doesn't reference 'eval' identifier (so, it doesn't perform direct call to eval).

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan b1a31c8144 Adding scope's code flags indicating whether the scope's code reference 'arguments' and 'eval' identifiers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan cb600da269 Introducing 'scope flags' opcode containing set of flags that indicate various properties of a scope; replacing 'strict mode' meta opcode with a flag in the flags set.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan e984bc30ea Fix of 'strict mode' meta type handling in opfunc_meta.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Ruben Ayrapetyan 3a9bf24001 Update of several 'vm' component interfaces naming.
init_int -> vm_init;
 run_int -> vm_run_global;
 run_int_loop -> vm_loop;
 run_int_from_pos -> vm_run_from_pos;
 read_opcode -> vm_get_opcode.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-28 19:12:54 +03:00
Peter Gal c3f9169eb7 Fix property lookup in Object.getOwnPropertyDescriptor.
The ecma_op_general_object_get_own_property call does not find all
properties, we need to use the ecma_op_object_get_own_property method
for correct property lookup.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-28 15:44:03 +02:00
Dániel Bátyai 3329583435 Implemented Array.prototype.filter()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-28 15:36:28 +02:00
Peter Gal aaeec7fb09 Implement Array.prototoype.toLocaleString()
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-27 15:18:43 +02:00
Szilard Ledan cf70fc2500 Implemented Array.prototype.concat()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
JerryScript-DCO-1.0-Signed-off-by: Szilard Ledan szledan.u-szeged@partner.samsung.com
2015-05-27 14:58:57 +02:00
Zsolt Borbély dd94064a8e Implement Array.prototype.splice().
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-05-27 14:27:25 +02:00
Zsolt Borbély b0d4acd026 Implement Object.prototype.propertyIsEnumerable().
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-05-27 12:55:25 +02:00
Peter Gal e5e876cf95 Fix test search in run-test-pass.sh
Using the find program with an argument "*" could lead to problems.
If there are ".js" files in the executing directory then the
shell replaces the asterisk with that filenames.

The fix is simple: quote the argument which has the asterisk.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-27 11:44:28 +02:00
Dániel Bátyai 0ef0b0d595 Implemented Array.prototype.reverse()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-27 11:25:04 +02:00
Dániel Bátyai b049998606 Implemented Array.prototype.every()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-27 11:13:06 +02:00
Tamas Czene 677a0a45d0 Fixed nuttx build with fdlibm
JerryScript-DCO-1.0-Signed-off-by: Tamas Czene tczene.u-szeged@partner.samsung.com
2015-05-26 14:03:07 +02:00
Dániel Bátyai d144cbfe90 Implemented Array.prototype.some()
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-22 15:03:15 +02:00
Peter Gal b614c0bd9a Implement Array.prototype.join
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-21 16:22:48 +02:00
Dániel Bátyai 36b8fa5452 Implemented Array.prototype.lastIndexOf().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-21 14:39:43 +02:00
Peter Gal c16e065263 Implement Array.prototype.toString
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-20 16:18:47 +02:00
Zsolt Borbély 137c5f3b25 Implemented Array.prototype.slice().
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
2015-05-20 15:46:56 +02:00
Kristof Kosztyo fc309cae92 Implement Object.getOwnPropertyDescriptor function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-05-20 15:05:27 +02:00
Andrey Shitov d6c9c5911e Add logging support for linux.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-05-20 15:28:36 +03:00
Ilyong Cho 0c058747f1 Implemented jerry_api_create_error()
JerryScript-DCO-1.0-Signed-off-by: Ilyong Cho ily.cho@samsung.com
2015-05-20 19:59:46 +09:00
Tamas Czene 7dfbc88cc0 Added Math functions
JerryScript-DCO-1.0-Signed-off-by: Tamas Czene tczene.u-szeged@partner.samsung.com
2015-05-19 18:09:12 +02:00
Peter Gal 7d703040d0 Implement Object.prototype.isPrototypeOf
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-19 16:02:39 +02:00
Peter Gal eac7372f41 Improve compiler detection for x86_64 target
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-19 15:45:51 +02:00
Peter Gal 7954df3e82 Implement Object.prototype.toLocaleString
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-19 10:31:03 +02:00
Kristof Kosztyo 6b09e53060 Fix implementation of the Object.defineProperties according to the review.
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-05-18 14:05:36 +02:00
Kristof Kosztyo 8058a42e3d Implement Object.defineProperties function
JerryScript-DCO-1.0-Signed-off-by: Kristof Kosztyo kkosztyo.u-szeged@partner.samsung.com
2015-05-18 14:05:21 +02:00
Dániel Bátyai a750317766 Implemented Array.prototype.forEach().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-18 10:46:22 +02:00
Dániel Bátyai 3c1563a3c0 Implemented Array.prototype.unshift().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-18 10:36:20 +02:00
Dániel Bátyai 1f8772d35f Implemented Array.prototype.shift().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-18 10:20:32 +02:00
Ruben Ayrapetyan ecbc2850ff Support 'make push' for non-master branches.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-15 20:55:26 +03:00
Ruben Ayrapetyan 5c76b3f558 Fixing ecma_op_from_property_descriptor semantics (type check for input property descriptor was implemented incorrectly).
Related issue: https://github.com/Samsung/jerryscript/issues/70

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-15 19:18:19 +03:00
Ruben Ayrapetyan 584149112d Recordset dynamic storage.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-15 18:31:18 +03:00
Dániel Bátyai fd0c943feb Implemented Array.prototype.indexOf().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-15 16:03:57 +02:00
Peter Gal 6c4e988a06 Implement Object.property.hasOwnProperty
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
2015-05-15 15:43:10 +02:00
Ruben Ayrapetyan b5d8444c2c Introducing chunked lists (list of nodes that exactly fit the heap chunk size).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-15 14:52:13 +03:00
Ruben Ayrapetyan 82f9afcde9 Speeding up procedure for getting start of a heap block's data space for one-chunked blocks, removing general blocks support from the procedure.
- heap area is aligned on heap chunk size;
 - mem_heap_get_block_start is renamed to mem_heap_get_chunked_block_start,
   now this interface is applicable only to one-chunked blocks,
   and is significantly faster - instead of iterating list of heap blocks
   to find block header, it just aligns value of pointer to heap chunk size.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-15 14:45:19 +03:00
Evgeny Gavrin 253e172127 Fix failed build using gcc-4.9.2
JerryScript-DCO-1.0-Signed-off-by: Evgeny Gavrin e.gavrin@samsung.com
2015-05-15 11:55:25 +03:00
Ruben Ayrapetyan 99ecdd4a44 Introducing one-chunked heap blocks - special type for heap blocks that are guaranteed to fit into one heap chunk.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-14 21:29:43 +03:00
Andrey Shitov 9763a93df3 Add new coding style rules and fix appeared issues.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-05-14 14:44:57 +03:00
Dániel Bátyai ca12c16607 Implemented Array.prototype.pop().
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai.u-szeged@partner.samsung.com
2015-05-14 11:11:25 +02:00
Ruben Ayrapetyan 198afd0072 Signed-off-by checker in precommit testing script.
Related issue: #15 (https://github.com/Samsung/jerryscript/issues/15).

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-13 23:22:26 +03:00
Ruben Ayrapetyan 51ddb25344 Adding missing long-term allocation requests to heap unit test.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-13 22:38:51 +03:00
Ruben Ayrapetyan 593b1d793f Removing magic number from mem_block_header_t.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-13 22:21:18 +03:00
Ruben Ayrapetyan c4e7f56562 Introducing MEM_CP_{GET_[NON_NULL_]POINTER, SET_[NON_NULL_]POINTER} getters / setters for compressed pointers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-13 22:05:21 +03:00
SaeHie Park da86a52fe9 Fix object free callback.
- remove jerry_set_object_free_callback()
- change jerry_api_set_object_native_handle() with object_free_callback
- related issue: https://github.com/Samsung/jerryscript/issues/17

JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-05-10 17:55:26 +09:00
Ruben Ayrapetyan b8e43286cc Increasing per-test timeout from 5s to 30s in precommit testing.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-09 22:41:20 +03:00
Ruben Ayrapetyan b05d239cf7 Supplementing ECMA_TRY_CATCH with assertion that 'return_value' contains empty completion value prior to execution of ECMA_TRY_CATCH statement.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-08 22:34:57 +03:00
Ruben Ayrapetyan 2852d93af6 Fixing toolchain_external.cmake build configuration: generalizing it from Nuttx OS.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-08 21:02:33 +03:00
Ruben Ayrapetyan 290eb2f9b0 Adding support to specify interfaces for external libraries other than libc.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-08 21:02:31 +03:00
SaeHie Park d0f30f5753 Prerequisites preparation fix for behind firewall.
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-05-08 08:58:11 +09:00
Ilyong Cho 8276255975 Implemented Array.prototype.push()
JerryScript-DCO-1.0-Signed-off-by: Ilyong Cho ily.cho@samsung.com
2015-05-07 00:56:32 +09:00
László Langó 7c99170f54 Fix assertion in print method.
ICE: Assertion 'args_number == 1' failed at Jerry/jerry-core/vm/opcodes-native-call.cpp(opfunc_native_call):55.
Error: ERR_FAILED_INTERNAL_ASSERTION

Test case:
  print('a', 'a');

Print all of the arguments separated by space.

JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
2015-05-06 09:07:10 +02:00
Ruben Ayrapetyan 1f5a4f2690 Adding missing API availability assertion.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-05-05 17:37:31 +03:00
SaeHie Park 5ec3e2f59a Native callback in embedding jerry when object is to be freed.
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-05-04 19:59:58 +09:00
SaeHie Park 17036c854e new jerry_assert_api_available for APIs that need to disable re-enter jerry_api
JerryScript-DCO-1.0-Signed-off-by: SaeHie Park saehie.park@samsung.com
2015-04-30 22:28:21 +03:00
Andrey Shitov b496e68d27 Fix missing var_decl.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov a.shitov@samsung.com
2015-04-30 20:49:25 +03:00
Ruben Ayrapetyan 9b9e537d35 Printing memory consumption notes in tools/log.sh (make log).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan ee77c4269d Fixing RSS measurement in tools/mem_stats.sh: using mem_stats build for heap usage statistics and non-mem_stats build for RSS measurement.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan f3983be337 Fixing heap usage limit condition of starting GC.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan f6b3943ffd Introducing dynamically adjustable heap usage limit, so that GC tries to free heap space, when heap usage reached the limit.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan 9a7a644f50 Removing mem_heap_try_to_resize_block interface.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan 8c4765892f Memory consumption measurement script.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
Ruben Ayrapetyan 9b256b9bc9 Renaming --mem-stats-at-exit option to --mem-stats; adding --mem-stats-separate option for dumping memory statistics and resetting memory usage peak values after parse.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
2015-04-30 18:54:51 +03:00
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
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 r.ayrapetyan@samsung.com
2015-04-29 20:36:41 +03:00
Seo-Young Isabelle Hwang 09073afb3a Update README.md 2015-04-27 19:01:35 +09:00
Seo-Young Isabelle Hwang ee183851a2 Update README.md 2015-04-27 19:01:22 +09:00
Seo-Young Isabelle Hwang 12ac86dc0c Create README.md 2015-04-27 19:00:53 +09: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
Andrey Shitov 0c7d358157 Fix invalid processing of keyword literals. 2015-04-14 14:28:39 +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
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 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
Saehie Park 1fbbcbd64f to make compiler happy with 'its scope is only this definition or declaration' 2015-04-06 20:21:07 +09:00
Ruben Ayrapetyan 4dbc6a9d1a Implementing [[Construct]] for external function objects. 2015-04-06 12:31:29 +03:00
Ilyong Cho 72d8c38d77 Reimplementation of jerry_api_is_funciton and jerry_api_is_constructor 2015-04-06 11:41:22 +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
Ilyong Cho 23ade8f4ff wip: Implementing external function api 2015-04-03 18:11:21 +09:00
Ilyong Cho 7b5764c445 Storing global envorinment on global object's SCOPE internal property 2015-04-03 16:11:03 +09: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
e.gavrin 9886c163cc Fix extension API issue with <=gcc4.8 2015-04-02 11:00:54 +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
Andrey Shitov e459ab7d64 Optimize parser memory consumption. Remove 'prev' and 'block_size' fields form the linked list structure. Remove 'magic' field from structures used in parser. 2015-04-01 11:48:23 +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 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
Andrey Shitov ac7edde72e Fixed --mem-stats flag. 2015-03-30 11:31:09 +03:00
Ilyong Cho cf5e158510 Implement some Jerry API / jerry_api_call_function() and jerry_api_get_object_field_value() 2015-03-30 16:04:49 +09: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
e.gavrin d50cff78ac Rename jrt_types.h to jrt-types.h 2015-02-16 19:32:55 +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
e.gavrin 26288b6b1b Rename main_* to main-* 2015-02-13 22:33:30 +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
e.gavrin 145fba4109 Remove optimizer. Move literal to JS folder. 2015-02-11 12:49:09 +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
Jerry Deferred Test Account (ARM Linux Host) c104a58008 CMake: fixing search of gcc-ar and gcc-ranlib tools, linkage of libgcc; Makefile: replacing path to out with $(OUT_DIR). 2015-02-10 10:53:18 +00: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
Ruben Ayrapetyan 57f645c18c Passing ecma_value_t arguments by const reference instead of by value. 2015-01-23 20:22:21 +03:00
Ruben Ayrapetyan 11e37ad7f3 Switching cppcheck to c++11-compatible mode. 2015-01-22 18:07:56 +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 eef966869a Revert "Switching get_variable_value to returning value through ecma-stack (stack convention)."
This reverts commit 6415130925187a877b83b14db40cade0c336ea44.
2015-01-15 17:26:08 +03:00
Ruben Ayrapetyan e570d18936 Switching get_variable_value to returning value through ecma-stack (stack convention). 2015-01-14 20:09:24 +03:00
Ruben Ayrapetyan e70626f92d Removing free of throw completion value in ECMA_TRY_CATCH macro, instead just copying it to the return value variable. 2015-01-14 18:14:28 +03:00
Ruben Ayrapetyan 917ebe4a83 Creating ecma-stack frames in run_int_from_pos. 2015-01-12 20:52:04 +03:00
Ruben Ayrapetyan b843167b91 Introducing ecma-stack structures and routines. 2015-01-12 19:33:04 +03:00
Ruben Ayrapetyan d03b2dafba Upon receiving 'give some memory back' request check if any corresponding callback set instead of asserting that. 2015-01-12 19:07:35 +03:00
Ruben Ayrapetyan f96770a811 Adding '-min' option to tools/perf.sh: the option switches to output of minimum instead of average of performance measurements. 2014-12-19 21:37:26 +03:00
Ruben Ayrapetyan 42c44830ce Removing trailing whitespace from sources. 2014-12-19 14:35:17 +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
Ruben Ayrapetyan 8febd2bae8 Increasing heap size from 8K to 16K for MCU targets. 2014-12-18 17:17:08 +03:00
Ruben Ayrapetyan 5539afc60e Adding #pragma GCC optimize "O0" to libperipherals' modules. 2014-12-18 17:16:33 +03:00
Ruben Ayrapetyan 5c4c47514a Fixing new line marks output in tools/generator.sh. 2014-12-18 16:14:31 +03:00
Ruben Ayrapetyan 84294018a3 Replacing dynamically sized on-stack arrays with heap allocated arrays defined through MEM_DEFINE_LOCAL_ARRAY. 2014-12-18 13:56:45 +03:00
Ruben Ayrapetyan 1e0eea3d73 Returning NULL from mem_heap_alloc_block if requested block size is zero. 2014-12-18 13:26:42 +03:00
Ruben Ayrapetyan 9b1fff1d8b Introducing MEM_DEFINE_LOCAL_ARRAY and MEM_FINALIZE_LOCAL_ARRAY to replace on-stack allocation of dynamic sized arrays. 2014-12-17 22:18:32 +03:00
Ruben Ayrapetyan 005fcb008e Changing dynamic sized (syntactically) array to constant-sized array in ecma_op_general_object_default_value. 2014-12-17 22:14:33 +03:00
Ruben Ayrapetyan 14620e30a6 Defining constant limit on magic string length instead of runtime calculation of maximum among magic strings' lengths. 2014-12-17 22:14:04 +03:00
Ruben Ayrapetyan c9b73da82d Changing dynamic sized (syntactically) array to constant-sized array in ecma_gc_run. 2014-12-17 21:29:45 +03:00
Ruben Ayrapetyan 001f262590 Limiting maximum command line arguments by CONFIG_JERRY_MAX_COMMAND_LINE_ARGS configuration option. 2014-12-17 21:29:17 +03:00
Ruben Ayrapetyan dd3271e35d Changing uint8_t* to void* in arguments and return values of mem_heap_alloc_block, mem_heap_free_block and mem_heap_try_resize_block operations. 2014-12-17 21:27:02 +03:00
Ruben Ayrapetyan 8349ad8ecf Inter-commit performance comparison script. 2014-12-17 19:16:16 +03:00
Ruben Ayrapetyan d836dc32af Introducing ECMA_OP_TO_NUMBER_TRY_CATCH and ECMA_OP_TO_NUMBER_FINALIZE macroses.
- the ECMA_OP_TO_NUMBER_TRY_CATCH macro gets number from given value,
    converting the value to number if it's type is different,
    and catching possible conversion exceptions;

  - using the macroses instead of ecma_op_to_number to reduce allocator invocations
    in several routines with arguments that are likely to be numbers.
2014-12-15 23:08:34 +03:00
Ruben Ayrapetyan 386a530d4d Upon assignment of a number to a register variable reusing the variable's space if it already contains a number. 2014-12-15 23:08:34 +03:00
Ruben Ayrapetyan eb80e817d8 Removing trailing whitespace in src/libcoreint/opcodes.c. 2014-12-15 23:08:34 +03:00
Ilmir Usmanov 7e7bdc2aac Rework literal indexes hash table to simple array in order to improve performance 2014-12-15 22:56:22 +03:00
Ilmir Usmanov 864bd3de06 Fix comment. 2014-12-15 22:47:41 +03:00
Ilmir Usmanov ddac13f944 Fix parsing of empty file 2014-12-15 17:10:04 +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 6aee69d6df Fix native_call opcode dumping 2014-12-12 16:34:59 +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
Ilmir Usmanov a251bf5d6f Add array list structure.
Change hash table to use array lists instead of linked lists.
2014-12-10 18:27:36 +03:00
Ruben Ayrapetyan 2c86712e21 Introducing number chunk for storage of temporary (stack-only) number operands. 2014-12-09 18:24:16 +03:00
Ruben Ayrapetyan 1182f7bbfe Removing JERRY_UNREACHABLE from lexical environment related routines. 2014-12-05 13:25:41 +03:00
Ruben Ayrapetyan 5bb90fb8ca Initializing object / lexical environment descriptors with zeroes before field initialization. 2014-12-05 13:24:39 +03:00
Ruben Ayrapetyan ee7ac6602b Fixing insertion to lookup cache: removing possibility of invalidation of entry during it's initialization, skipping empty entries during search for entry containing specified property. 2014-12-04 17:03:14 +03:00
Ruben Ayrapetyan 2b9b729c37 Invoking jerry_exit (ERR_OUT_OF_MEMORY) instead of JERRY_UNREACHABLE in in ecma_alloc_*. 2014-12-04 15:10:39 +03:00
Ruben Ayrapetyan f7f0681698 Invoking tools/perf.sh in tools/run_benchmarks.sh. 2014-12-04 12:52:55 +03:00
Ruben Ayrapetyan 3b1c6b5c37 Fixing an issue in garbage collection module: correctly updating 'may reference younger objects' flag. 2014-12-04 12:38:06 +03:00
Ruben Ayrapetyan d2f6b36cf7 Implementing Math.sin and Math.cos built-in routines. 2014-12-04 11:39:23 +03:00
Ruben Ayrapetyan 557a4b6460 Removing ecma_op_object_has_property and ecma_op_general_object_has_property routines. 2014-12-03 22:48:37 +03:00
Ruben Ayrapetyan 90fccc04ba Passing property descriptors by const ref instead of by value. 2014-12-03 21:57:11 +03:00
Ruben Ayrapetyan b7daa16b99 Implementing number comparisons through simple comparison operators, checking under !JERRY_NDEBUG that behaviour is equivalent to ECMA-defined comparisons. 2014-12-03 20:22:29 +03:00
Ruben Ayrapetyan 8998860c7b Extract non-inlineable long path from ecma_op_object_get_own_property. 2014-12-03 19:25:16 +03:00
Ruben Ayrapetyan 98a11c13d5 Padding ecma_lcache_entry_t to 8 bytes size. 2014-12-03 19:25:01 +03:00
Ruben Ayrapetyan e955d8f742 Assigning numbers to named data properties' values without reallocating pool chunk if the value already contains a number. 2014-12-03 16:03:13 +03:00
Ruben Ayrapetyan 3190089818 Introducing getter and setter for named data property's value field, ecma_named_data_property_assign_value interface; using boolean flags for 'Writable', 'Enumerable' and 'Configurable' attributes values while passing them in routine arguments. 2014-12-03 15:45:58 +03:00
Ruben Ayrapetyan 668eef73c8 Implementing system call sequences in plain assembler routines; removing -fomit-frame-pointer for non-optimized builds. 2014-12-02 15:42:09 +03:00
Ruben Ayrapetyan ef012d9cd4 Adding lcache lookup and insert to ecma_find_named_property; removing lcache insert from ecma_op_object_get_own_property. 2014-11-28 21:27:52 +03:00
Ruben Ayrapetyan 3b29280b79 Using hash value stored in ecma-string for lcache search; comparing string faster but with possible false negatives while performing lcache lookup. 2014-11-28 21:27:48 +03:00
Ruben Ayrapetyan fe7e34d93e Adding ecma-string's hash to ecma_string_t. 2014-11-28 21:12:44 +03:00
Ruben Ayrapetyan 6c65c48772 Removing 'length' field from ecma-string descriptor (calculating length upon request). 2014-11-28 16:26:22 +03:00
Ruben Ayrapetyan 7b75dcf0c9 Removing assertion checks with possible side effects. 2014-11-27 21:04:14 +03:00
Ruben Ayrapetyan f6e7621d3f Adding __always_inline attribute to some value handling helpers. 2014-11-27 19:40:14 +03:00
Ruben Ayrapetyan 1f3d96cffa Representing ecma_completion_value_t as integer instead of structure with bit-fields, adding corresponding field accessors; adding __attribute_const__ to some value handling helpers. 2014-11-27 18:20:12 +03:00
Ruben Ayrapetyan 0d870a1e74 Representing ecma_value_t as integer instead of structure with bit-fields, adding corresponding field accessors. 2014-11-27 17:34:03 +03:00
Ruben Ayrapetyan 815309c7e9 Introducing ecma_get_[type]_from_value, ecma_get_[type]_from_completion_value and ecma_get_completion_value_value interfaces. 2014-11-27 14:19:53 +03:00
Ruben Ayrapetyan 22e1941050 Moving pools that received request on allocation / free to beginning of pools' list; extracting long path from mem_pools_alloc. 2014-11-26 20:22:44 +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 9a0081b856 Splitting free block from end if block search direction is backward (currently, for short-term blocks). 2014-11-24 18:52:47 +03:00
Ruben Ayrapetyan 5b8077b976 Storing provideThis flag and pointer to binding object immediately in descriptor of object-bound lexical environment. 2014-11-21 20:37:04 +03:00
Ruben Ayrapetyan 958126f5c8 Adding debug assertion about incoming state of formal parameters collection to ecma_create_arguments_object. 2014-11-21 17:08:40 +03:00
Ruben Ayrapetyan 103e1b1c8a Running cppcheck only for sources affected by local changes. 2014-11-21 16:28:52 +03:00
Ruben Ayrapetyan 036521627e Introducing "on-stack" ecma-string descriptors and using them in get_variable_value / set_variable_value. 2014-11-21 13:06:30 +03:00
Ruben Ayrapetyan 14ab1b3355 Removing construction of ecma_reference_t in get_variable_value and set_variable_value. 2014-11-20 22:09:14 +03:00
Ruben Ayrapetyan f5ffae0fec Removing runtime checks for reading / writing 'arguments' variable in CompactProfile mode (the checks should be performed during parsing). 2014-11-20 18:24:31 +03:00
Ruben Ayrapetyan d7764dfc6e Implementation of ecma_make_simple_value and ecma_make_completion_value through bitwise operations (instead of through bit-fields). 2014-11-20 15:34:46 +03:00
Ruben Ayrapetyan 76aab95aac Implementation of ecma_is_value_* for simple values through comparison with integer constants (instead of bit-fields). 2014-11-20 15:33:27 +03:00
Ruben Ayrapetyan 6dd357a554 Using ecma_is_value_* instead of switches for determining of ecma-value's type. 2014-11-20 15:33:04 +03:00
Ruben Ayrapetyan 7b3eaf146b Introducing ecma_is_value_{number,string,object} for checking type of ecma-value. 2014-11-20 14:21:33 +03:00
Ruben Ayrapetyan 30ff59fca3 Reverting c2933d9e44eb5346161964c7c52f1ca793c4c7b4 changes of ecma_number_{is,make}_infinity routines. 2014-11-19 17:55:15 +03:00
Ruben Ayrapetyan 27827e607c Reducing cases in which full static source analysis is performed.
- starting vera++ only on changed sources;
 - starting cppcheck only on changed sources, if no header file was changed,
   and on all sources, if at least one header file was changed.
2014-11-19 16:54:52 +03:00
Ruben Ayrapetyan 24c9b12ce5 Compacting some ecma_number_* helpers, allowing NaN in argument of ecma_number_negate, using ecma_number_negate instead of immediate unary minus in ecma_number_substract. 2014-11-19 16:11:05 +03:00
Ruben Ayrapetyan 9f7e17e9fd Removing musl libc usage. Linking to libgcc (for __aeabi_* routines on ARM target). 2014-11-18 21:17:31 +03:00
Ruben Ayrapetyan 988288c9e4 Fixing _start routine for ARM Linux targets (non-musl builds). 2014-11-18 20:12:25 +03:00
Ruben Ayrapetyan fb6bdd151a Moving part of ecma_compare_ecma_strings to ecma_compare_ecma_strings_longpath. 2014-11-18 17:28:03 +03:00
Ruben Ayrapetyan e7f96336f8 Fixing ecma_lcache_init. 2014-11-17 21:26:36 +03:00
Ruben Ayrapetyan fd155d4699 Fixing calculation of ecma-string's hash in ecma_string_try_hash. 2014-11-17 20:19:38 +03:00
Ruben Ayrapetyan 76ed780895 Introducing cache for property by name lookup (LCache). 2014-11-17 18:52:48 +03:00
Ruben Ayrapetyan 8a6eae0ca5 Reordering comparisons in ecma_compare_ecma_strings to improve performance for frequent cases. 2014-11-17 18:52:38 +03:00
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
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
Ilmir Usmanov 4735570b31 Add SyntaxErrors on parsing ObjectDeclarations. 2014-10-28 13:39:25 +04: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
Ilmir Usmanov cd8ab6594b Fix test262 runner script 2014-10-27 18:08:22 +04: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
Ilmir Usmanov 7d13970e95 Fix compiling several input files 2014-10-27 15:27:25 +04:00
Ilmir Usmanov a55517f57a Remove 'logical_or' and 'logical_and' opcodes 2014-10-27 14:55:02 +04: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
Ilmir Usmanov f163f9f5da Allocate memory for string literals and identifiers dinamically. 2014-10-23 17:04:36 +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
Ilmir Usmanov 6b06cef1c8 Property getters and setters also create scope 2014-10-22 14:26:14 +04:00
Ilmir Usmanov ec6572d501 Add support of function expressions scopes. Uncomment tests. 2014-10-21 22:22:04 +04:00
Ilmir Usmanov 62a42fa087 Add fail tests. Fix parser. 2014-10-21 20:35:07 +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
Ilmir Usmanov 3f7fca4d39 Implement full support of strict mode in parser. 2014-10-20 16:54:40 +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
Ilmir Usmanov bd7fd40a32 Fix 'function' declaration parsing 2014-10-16 21:12:03 +04:00
Ilmir Usmanov 99d21743b0 Fix tests from test-suite 2014-10-16 20:42:24 +04:00
Ilmir Usmanov b1e6656fb4 Fix property increment 2014-10-16 20:32:19 +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
Ilmir Usmanov 90789453ba Fix 'prototype' property. 2014-10-16 18:07:56 +04:00
Ilmir Usmanov 2a5cbe5975 Fix tests from jerry-test-suite. 2014-10-16 18:03:35 +04:00
Ilmir Usmanov 2637911b3e Fix 'this_arg' 2014-10-16 16:05:48 +04:00
Ilmir Usmanov 16556eb830 Fix 'switch' bytecode generation. Remove __strtof. Fix opcodes pretty-printing. 2014-10-16 15:33:54 +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
Ruben Ayrapetyan e25f1297ff Adding a test that is not working due to insufficient float32 precision to corresponding section of tests/jerry-test-suite/unsupported_list. 2014-10-16 11:37:24 +04:00
Ruben Ayrapetyan b98363ce05 Adding rest tests with for-in loops to tests/jerry-test-suite/unsupported_list. 2014-10-16 11:27:28 +04:00
Ruben Ayrapetyan 5b242d6cc5 Fixing some tests from internal test suite. 2014-10-16 11:23:34 +04:00
Ruben Ayrapetyan 2eedfdc334 Fixing some tests from internal test suite. 2014-10-16 11:01:39 +04:00
Ruben Ayrapetyan 1de6eb8707 Fixing paths in tests/jerry-test-suite/unsupported_list. 2014-10-16 10:46:53 +04:00
Ruben Ayrapetyan a975e53f49 List of test with features, which are now unsupported and will not be supported before next release. 2014-10-15 21:15:51 +04:00
Ilmir Usmanov 6b733b8cd2 Fix 'continue' bytecode generation. Fix tests. 2014-10-15 21:04:00 +04:00
Ruben Ayrapetyan a66c175d98 Fixing 'delete_var' opcode handler. 2014-10-15 20:39:56 +04:00
Ruben Ayrapetyan b7ad84c76a Fixing a test from internal test suite. 2014-10-15 20:32:19 +04:00
Ruben Ayrapetyan 8088163d04 Fixing some tests in internal test suite. 2014-10-15 20:22:05 +04:00
Ilmir Usmanov e1e7752a62 Fix bytecode generation of binary expressions. Fix bytecode generation of query operator. Fix tests. 2014-10-15 20:08:43 +04:00
Ruben Ayrapetyan aaadfec530 Fixing assertion checks in 'try' opcode handler. 2014-10-15 19:40:46 +04:00
Ruben Ayrapetyan c7eec63e28 Fixing array instance construction routine: setting prototype to Array.prototype built-in object. 2014-10-15 19:31:30 +04:00
Ruben Ayrapetyan 9b178f5ab0 Implementing 'length' property of String instances. 2014-10-15 19:02:41 +04:00
Ruben Ayrapetyan 5d874596ec Fixing 'instanceof' opcode handler. 2014-10-15 18:46:40 +04:00
Ruben Ayrapetyan 9bafe2a2ae Fixing a test from internal test suite. 2014-10-15 18:44:35 +04:00
Ruben Ayrapetyan b7df625666 Fixing a test from internal test suite. 2014-10-15 18:12:46 +04:00
Ruben Ayrapetyan 11252394a5 Fixing 'delete_prop' opcode handler. 2014-10-15 18:11:45 +04:00
Ruben Ayrapetyan 0c9f03c313 Fixing opfunc_delete_var. 2014-10-15 18:02:29 +04:00
Ruben Ayrapetyan e8d728f8ce Fixing typeof for boolean arguments. 2014-10-15 18:02:10 +04:00
Ilmir Usmanov 49d990ad32 Allow some of FutureReservedWords in non-strict mode 2014-10-15 17:53:19 +04:00
Ruben Ayrapetyan 41b7ca2faa Fixing 'in' opcode handler. 2014-10-15 17:41:48 +04:00
Ruben Ayrapetyan 47ed774232 Fixing obj_decl opcode handler to handle property name argument as index of register variable containing a declared property's name. 2014-10-15 17:33:58 +04:00
Ilmir Usmanov 77d56c5f93 Fix function end meta in property setter and getter 2014-10-15 17:15:43 +04:00
Ruben Ayrapetyan b3f45c5c82 Fixing ecma_op_abstract_equality_compare. 2014-10-15 16:56:58 +04:00
Ruben Ayrapetyan f4ff85e861 Fixing test 11/11.02/11.02.02/11.02.02-008.js from internal test suite. 2014-10-15 16:56:58 +04:00
Ruben Ayrapetyan e5b0bb1a0d Fixing ecma_op_abstract_equality_compare. 2014-10-15 16:56:58 +04:00
Ruben Ayrapetyan 4e9958edb5 Fixing mistype in 12.06.02-005.js. 2014-10-15 16:56:58 +04:00
Ilmir Usmanov af5cf79d3c Use tmps as property names 2014-10-15 16:40:56 +04:00
Ruben Ayrapetyan 2d9a8da5c2 Fixing some tests from internal test suite. 2014-10-15 16:11:05 +04:00
Ruben Ayrapetyan efe713f2a9 Fixing memory leak in ecma_op_function_construct. 2014-10-15 16:11:04 +04:00
Ruben Ayrapetyan 2a8adf7698 Fixing memory leak in ecma_op_string_object_get_own_property. 2014-10-15 16:11:04 +04:00
Ruben Ayrapetyan 7dcbeec487 Fixing typeof with null argument. 2014-10-15 16:11:04 +04:00
Ilmir Usmanov a9856dcf9a Add support of NaN in opfunc_unary_minus 2014-10-15 15:33:00 +04:00
Ilmir Usmanov 032031a861 Add unary_plus and unary_minus opcodes 2014-10-15 15:20:49 +04:00
Ilmir Usmanov 819361c234 Fix postfix expression parsing 2014-10-15 14:33:39 +04:00
Ruben Ayrapetyan 391b6caebe Fixing this_arg handling in opfunc_call_n. 2014-10-15 13:57:26 +04:00
Ilmir Usmanov a49b52105e Fix generation of this_arg. Fix pretty-printing of retval, prop_setter, prop_getter and string assignments 2014-10-15 12:57:11 +04:00
Ilmir Usmanov c8686d9d9b Fix test 2014-10-15 10:53:40 +04:00
Ilmir Usmanov 7a156334bb Fix vargs pretty-printing 2014-10-15 10:53:40 +04:00
Ilmir Usmanov 948c74b4b9 Os by default. 2014-10-14 22:06:04 +04:00
Ilmir Usmanov 562f877328 Remove end-of-file marker and fix lsr's operands. 2014-10-14 22:02:02 +04:00
Ruben Ayrapetyan e9a632ea4e Fixing sign of converted number in ecma_zt_string_to_number. 2014-10-14 19:11:11 +04:00
Ruben Ayrapetyan 427dd83d99 Fixing postfix increment and postfix decrement opcodes handlers. 2014-10-14 18:52:06 +04:00
Ruben Ayrapetyan ab5a66cebe Implementing __aeabi_llsr (ARM Runtime ABI: long long right shift). 2014-10-14 18:09:11 +04:00
Ruben Ayrapetyan 4689f6c3c5 Handling elements bigger than 8 bytes in linked_list_set_element. 2014-10-14 17:35:07 +04:00
Ruben Ayrapetyan 004541fdc4 loop_demo.js in 'generated_source' as modifiable characters array. 2014-10-14 17:23:11 +04:00
Ruben Ayrapetyan 05103b1ecc Reducing waitTime in loop_demo.js 2014-10-14 17:23:11 +04:00
Ruben Ayrapetyan 7d27375860 Representing script as modifiable characters array for MCU. 2014-10-14 17:23:11 +04:00
Ilmir Usmanov 9be0a85c1c Fix 'while' bytecode generation 2014-10-14 16:55:09 +04:00
Ruben Ayrapetyan 78367993db Replacing -O3 optimization option with -Os. 2014-10-14 15:13:16 +04:00
Ruben Ayrapetyan d49dfd3956 Implementing __aeabi_llsl (ARM Runtime ABI: long long left shift). 2014-10-14 15:13:16 +04:00
Ilmir Usmanov 64e286f766 Enable pretty-printer only on host and debug 2014-10-14 15:06:21 +04:00
Ilmir Usmanov 053cbc769f Fix alignment: part 2 2014-10-14 15:06:21 +04:00
Ruben Ayrapetyan c4ba033970 Renaming ERR_MEMORY -> ERR_OUT_OF_MEMORY. 2014-10-14 14:08:38 +04:00
Ilmir Usmanov 85ad5f8350 Fix alignment 2014-10-13 21:42:25 +04:00
Ruben Ayrapetyan 38b47eaba7 Reducing number of iterations in nested_function.js: 1000 -> 100. 2014-10-13 19:34:16 +04:00
Ruben Ayrapetyan d2ceca87d2 Enabling jerry/sunspider/controlflow-recursive and jerry/sunspider/math-spectral-norm benchmarks. 2014-10-13 19:09:09 +04:00
Ruben Ayrapetyan 6430a104b3 ecma_ref_ecma_string -> ecma_copy_or_ref_ecma_string: copying ecma-string when the string's reference counter reaches maximum value. 2014-10-13 18:59:07 +04:00
Ruben Ayrapetyan 9a15286aad Fixing ecma_gc_is_object_may_ref_younger_objects. 2014-10-13 18:35:27 +04:00
Ilmir Usmanov 8a517ab03e Add support of octal integer literals 2014-10-13 17:45:20 +04:00
Ilmir Usmanov c33afca360 Add support of 'default' clause in 'switch' statement 2014-10-13 16:32:17 +04:00
Ruben Ayrapetyan 9f6ebb310b Removing test suite for Compact Profile. 2014-10-13 16:27:16 +04:00
Ruben Ayrapetyan 211ea32dbf Fixing jrt_set_mem_limits. 2014-10-13 15:53:04 +04:00
Ruben Ayrapetyan ee0d800b82 Copying and reducing test suite for Compact profile. 2014-10-13 14:59:33 +04:00
Ruben Ayrapetyan db6b12f958 Fixing two tests in Jerry test suite. 2014-10-13 14:58:46 +04:00
Ruben Ayrapetyan 7819adcf99 Implementing ToObject routine for case argument is string literal. 2014-10-13 13:29:29 +04:00
Ruben Ayrapetyan fc69e52ca3 Fixing memory leak in ecma_op_string_object_get_own_property. 2014-10-13 13:29:29 +04:00
Ruben Ayrapetyan 76bebfc532 Fixing GetValue / PutValue routines for primitive base values (access after ToObject). 2014-10-13 13:29:29 +04:00
Ilmir Usmanov 18618c6501 Freaking FINALLY: postparser 2014-10-12 20:34:23 +04:00
Ilmir Usmanov 63662dfb35 Postparser landing patch: add tree of scopes 2014-10-12 20:34:23 +04:00
Ilmir Usmanov cb7e54fe22 Preparser landing patch: refactor linked-list 2014-10-12 20:34:22 +04:00
e.gavrin ff935ea417 Add support scripts for testing and becnmarking 2014-10-11 19:09:21 +04:00
Ilmir Usmanov cd67b69bf9 Fix integer overflow while parsing numbers 2014-10-10 20:22:08 +04:00
Ilmir Usmanov 5c6dbd1466 Allow absent of semicolon before '}' token 2014-10-10 19:05:37 +04:00
Ilmir Usmanov 19d0690586 Support properties named 'get' and 'set' 2014-10-10 18:27:28 +04:00
Ilmir Usmanov e91cb75dcc Fix locus of strings 2014-10-10 17:14:48 +04:00
Ilmir Usmanov 64a0d8a8b0 Fix error message on for-in loops 2014-10-10 14:57:56 +04:00
Ilmir Usmanov 2c90f8a7f1 Fix break and continue generation 2014-10-09 20:55:16 +04:00
Ilmir Usmanov 9cd4344c4e Fix for loop parsing 2014-10-09 19:58:13 +04:00
Ilmir Usmanov eeb497b84b Fix if-else without braces 2014-10-09 19:41:42 +04:00
Ilmir Usmanov 29c734d95d Reuse tmps in vargs 2014-10-09 18:28:28 +04:00
e.gavrin 1590fe6180 Add benchmarks 2014-10-09 18:18:26 +04:00
Ilmir Usmanov a902a97025 Add another 'out of memory' error message 2014-10-09 17:49:02 +04:00
e.gavrin d272a36acc Fix benchmarks 2014-10-09 16:24:51 +04:00
e.gavrin 130238b01c Add tests for chapter 11 2014-10-09 15:41:15 +04:00
Ilmir Usmanov bfa186d43a Generate only one var_decl opcodes for each variable declared in a scope 2014-10-09 15:30:30 +04:00
Ilmir Usmanov 29ffa6f777 Pretty-printer refactoring. Add pretty-printing of metas. 2014-10-09 13:19:36 +04:00
Ilmir Usmanov 1dd94c12b2 Fix insert_semicolon 2014-10-08 19:15:25 +04:00
Ilmir Usmanov 24920cba57 Fix property names parsing 2014-10-08 17:09:02 +04:00
Ilmir Usmanov c3f493c693 Some minor fixes in parser: Do not warn on escape sequences. Allow 'new' operator without parens. Fix 'var' parsing in preparser. Fix a test. 2014-10-08 16:32:36 +04:00
e.gavrin f2760fdac6 Add test from chapter 11. Part2. 2014-10-08 15:06:17 +04:00
e.gavrin 3c815cc68a Add test from chapter 11. Part1. 2014-10-08 15:06:17 +04:00
Ilmir Usmanov 9775d23274 Support 'delete' and 'void' operators in parser. 2014-10-08 14:52:38 +04:00
e.gavrin 2ebc8ef6fd Fix tests 2014-10-07 22:28:15 +04:00
Ilmir Usmanov 3d3da5d481 Preparser: new pass to order var_decls prior to parser 2014-10-07 20:14:41 +04:00
e.gavrin 7f8f03ad20 Add test on chapter 15 2014-10-07 17:43:18 +04:00
Ilmir Usmanov 62cc3cc604 Fix && and || parsing 2014-10-06 14:35:26 +04:00
Ilmir Usmanov 17ee2eca50 Warn on escape sequences 2014-10-06 14:35:26 +04:00
Ilmir Usmanov 3d5fd214f3 Add switch-case 2014-10-06 14:35:26 +04:00
Ilmir Usmanov 8c7daf4850 Print ERR_MEMORY on stack 2014-10-06 14:35:26 +04:00
Ilmir Usmanov d3dc64ca53 Pretty-print native_calls 2014-10-06 14:35:26 +04:00
e.gavrin a79c816553 Add jerry-test-suite for chapters 7,8,10,12,13 2014-10-05 20:34:47 +04:00
Ilmir Usmanov 3819883f80 Add human-readable syntax errors 2014-10-03 19:01:45 +04:00
Ilmir Usmanov c4c713535e Fix insert_semicolon 2014-10-02 21:35:39 +04:00
Ilmir Usmanov af00691d1d Add this_arg dumping in parser 2014-10-02 19:31:29 +04:00
Ilmir Usmanov eff5e1a80b Fix stack operations in parser 2014-10-02 15:04:00 +04:00
Ilmir Usmanov c8b97214fe Parse undefined as simple 2014-10-01 14:30:04 +04:00
Ilmir Usmanov 6561c3fe6c Add support of array initialization like [1,,,'4'] 2014-09-30 19:44:45 +04:00
Ilmir Usmanov 9d129e15dc Allocate stack memory by chunks 2014-09-30 18:40:24 +04:00
e.gavrin 1c3bf4951d Add working benchmark tests 2014-09-29 14:27:38 +04:00
Ruben Ayrapetyan 47d384c565 Partial implementation of the Array.prototype built-in object. 2014-09-26 20:07:45 +04:00
Ruben Ayrapetyan 0e22967653 Fixing Arguments object construction routine. 2014-09-26 19:36:14 +04:00
Ruben Ayrapetyan add24b93fe Fixing various FIXMEs that depend on Function.prototype built-in. 2014-09-26 19:36:14 +04:00
Ruben Ayrapetyan bef5289cb6 Adding stubs for Function and Function.prototype built-ins. 2014-09-26 19:26:17 +04:00
Ruben Ayrapetyan 2d332bc98b Implementing 'Object.prototype.toString' and 'Object.prototype.valueOf' built-ins. 2014-09-26 18:50:46 +04:00
Ruben Ayrapetyan f82ae90040 Fixing various FIXMEs that depend on built-in Object constructor and Object.prototype. 2014-09-26 18:33:50 +04:00
Ruben Ayrapetyan a0a2ec2cea Replacing items of ecma_object_class_t with corresponding ecma magic strings. 2014-09-26 18:04:42 +04:00
Ruben Ayrapetyan 897ed2d5c2 Adding stubs for Object.prototype routines. 2014-09-26 17:47:53 +04:00
Ruben Ayrapetyan 508573b398 Compacting declaration of dispatch routines for built-in objects. 2014-09-26 17:07:04 +04:00
Ruben Ayrapetyan 6b02835547 Refactoring 'call_n' opcode handler so that it looks for meta 'this_arg' at start of argument list. 2014-09-26 15:13:43 +04:00
e.gavrin 24c75a5707 Add config for doxygen. 2014-09-26 08:01:43 +04:00
Ruben Ayrapetyan ba2eeb84af Implementing String.prototype.toString and String.prototype.valueOf built-in routines. 2014-09-25 21:04:24 +04:00
Ruben Ayrapetyan 5bee6cad0f Adding stubs for String.prototype routines. 2014-09-25 20:39:00 +04:00
Ruben Ayrapetyan caa2663b28 Adding magic strings for property names of built-in prototype objects. 2014-09-25 19:23:22 +04:00
Ruben Ayrapetyan c235021147 Implementing [[DefaultValue]] general objects' method. 2014-09-25 18:37:38 +04:00
Ilmir Usmanov cde880b1cf Fix 'break' parsing 2014-09-25 18:06:21 +04:00
Ruben Ayrapetyan f380b30e75 Fixing 'print' native call. 2014-09-25 16:08:48 +04:00
Ilmir Usmanov 42876bdc8f Add support of native calls 2014-09-25 15:57:57 +04:00
Ruben Ayrapetyan c2ca158d19 Implementing Array built-in. 2014-09-25 14:58:45 +04:00
Ruben Ayrapetyan 448b67f6dd Fixing memory leak and type of completion value in implementation of Object.defineProperty built-in. 2014-09-25 14:21:57 +04:00
Ruben Ayrapetyan c06c6a5ed8 Introducing ecma_free_property_descriptor. 2014-09-25 14:19:09 +04:00
Ruben Ayrapetyan 4c5c48eef2 Magic strings for Array built-in. 2014-09-25 14:18:07 +04:00
Ruben Ayrapetyan 679d86dc8f Passing 'this' argument to built-in routines. 2014-09-24 23:19:32 +04:00
Ruben Ayrapetyan 3efdcfa2ea Implementing String built-in object. 2014-09-24 21:40:11 +04:00
Ruben Ayrapetyan c4ec42635b Implementing String's constructor and [[GetOwnProperty]]. 2014-09-24 21:31:24 +04:00
Ruben Ayrapetyan 10ee3c4fb1 Implementing Math.pow built-in. 2014-09-24 18:49:41 +04:00
Ruben Ayrapetyan 44a2f7ba39 Implementing Math.log built-in. 2014-09-24 17:10:42 +04:00
Ilmir Usmanov 05a2224faa Fix parsing of assignment expressions without assignment operator. 2014-09-24 16:53:58 +04:00
Ilmir Usmanov 0a4616b65f Remove call_0, call_1, func_decl_0, func_decl_1, func_decl_2 opcodes. 2014-09-24 16:33:28 +04:00
Ruben Ayrapetyan 85a3a9a690 Implementing Math.exp built-in. 2014-09-24 16:01:57 +04:00
Ilmir Usmanov 0738ec6a54 Add generation of prop_setter. 2014-09-24 15:30:37 +04:00
Ruben Ayrapetyan 25ec2bea17 Refactoring function call operations to return 'normal' completion values instead of 'return' completion values. Removing ECMA_FUNCTION_CALL macro. 2014-09-24 14:27:27 +04:00
Ruben Ayrapetyan 3a31bf6eb1 Adding 'print' native call. 2014-09-24 14:22:57 +04:00
Ilmir Usmanov 8bcc37d0f8 Fix prop_getter, construct_n, array_n generation. 2014-09-23 22:53:35 +04:00
Ruben Ayrapetyan 9b69ea4d6d Implementing Math.sqrt. 2014-09-23 21:56:44 +04:00
Ilmir Usmanov f17ca4c455 Fix post_* opcodes generation 2014-09-23 20:32:22 +04:00
Ruben Ayrapetyan 34a5e00b7f Implementing Math.random. 2014-09-23 20:25:59 +04:00
Ilmir Usmanov d26b7f9f4e Fix reg_var_decl generation. 2014-09-23 20:05:10 +04:00
Ruben Ayrapetyan 6c422fec2e Implementing Math.min and Math.max built-ins. 2014-09-23 18:44:27 +04:00
Ruben Ayrapetyan c5fd835931 Implementing Math.abs and Math.round built-ins. 2014-09-23 17:22:01 +04:00
Ruben Ayrapetyan 4798807451 Fixing remainder calculation operation (ecma_op_number_remainder). 2014-09-23 17:22:01 +04:00
Ilmir Usmanov 8a5b956e38 Simplify serializer/deserializer. Reduce memory usage in lexer. Create HashTable data structure. Finish preparations for introducing new strings addressation. 2014-09-23 16:45:10 +04:00
Ruben Ayrapetyan f237a8d5e1 Adding stubs for Math object's routines. 2014-09-23 16:23:36 +04:00
Ruben Ayrapetyan 288478926e Implementing Math object's value properties. 2014-09-23 15:32:32 +04:00
Ruben Ayrapetyan ae244f0148 Common built-in object's constructor. 2014-09-23 15:29:08 +04:00
Ruben Ayrapetyan fd7f153747 Additional assertions in jrt_{get/set}_bit_field_value. 2014-09-23 15:23:50 +04:00
Ruben Ayrapetyan 1fed738217 Replacing ecma_builtin_is_*_object interfaces with ecma_builtin_is (object, builtin_id), and ecma_builtin_get_*_object with ecma_builtin_get (builtin_id). 2014-09-22 21:46:26 +04:00
Ruben Ayrapetyan 5f9a068a61 Adding magic strings for the Math object's properties names. 2014-09-22 21:34:11 +04:00
Ilmir Usmanov 615903dbf5 Fix call expression without args bytecode generation 2014-09-22 20:21:44 +04:00
Ruben Ayrapetyan 49486757ca Implementing 'Object.defineProperty' built-in routine. 2014-09-22 20:07:29 +04:00
Ruben Ayrapetyan 1e642fd527 Implementing ToPropertyDescriptor and FromPropertyDescriptor ECMA operations. 2014-09-22 19:31:35 +04:00
Ruben Ayrapetyan a287406e1f Implementing 'new Object(...)' built-in constructor. 2014-09-22 18:19:34 +04:00
Ruben Ayrapetyan d7314a7300 Adding stubs for the Object object. 2014-09-22 15:56:50 +04:00
Ruben Ayrapetyan a3ca61fe0e Setting Function's [[Get]] method to default [[Get]] method as they're behaviours for Function objects are equivalent. 2014-09-22 15:49:49 +04:00
Ruben Ayrapetyan 94f7f710a6 Fixing attributes of several properties of the Global object. 2014-09-22 15:35:35 +04:00
Ruben Ayrapetyan e55ceb22f5 Implementing [[HasInstance]] for non-bound functions. 2014-09-19 21:14:14 +04:00
Ruben Ayrapetyan 34984d31de Adding comment to parameter of ecma_number_make_infinity. 2014-09-19 18:13:39 +04:00
Ruben Ayrapetyan f46853bdd8 Introducing interfaces for invoking built-in functions and constructors.
Implementing property instantiation routine dispatcher for Global object.
Adding instantiation for 'undefined', 'NaN', 'Infinity' and built-in routine
properties of the Global Object. Implementing isNaN and isFinite built-in routines.
2014-09-19 18:10:49 +04:00
Ruben Ayrapetyan 1dd631178f Renaming ecma_get_object_has_non_instantiated_builtins -> ecma_get_object_is_builtin, ecma_set_object_has_non_instantiated_builtins -> ecma_set_object_is_builtin. 2014-09-19 17:51:40 +04:00
Ruben Ayrapetyan d44b13e0cd Adding magic strings for the Global object's properties names. 2014-09-19 17:45:52 +04:00
Ruben Ayrapetyan f478e161e6 Fixing ecma_string_to_zt_string and ecma_copy_zt_string_to_buffer routines. 2014-09-19 16:15:42 +04:00
Ruben Ayrapetyan 7fc3b178d8 Introducing ecma_is_string_magic, ecma_init and ecma_finalize interfaces, 'magic-string' container type for ecma-strings. Renaming ecma_is_magic_string to ecma_is_zt_string_magic. Moving magic-string related routines to ecma-helpers-string.c. 2014-09-19 12:08:19 +04:00
Ruben Ayrapetyan 9a667596de Implementing constructor of Function object for built-in routines. 2014-09-18 19:48:43 +04:00
Ruben Ayrapetyan d9e0f2936d Adding jerry_unreachable and jerry_unimplemented routines that print file name and line for corresponding unreachable, unimplemented marks. 2014-09-18 17:08:32 +04:00
Ruben Ayrapetyan 55d9b12176 Introducing built-in routines dispatcher and stubs for the Global object's routines. 2014-09-18 16:25:33 +04:00
Ruben Ayrapetyan 30008f8dc5 Splitting ERR_GENERAL error code in ERR_FAILED_INTERNAL_ASSERTION and ERR_UNIMPLEMENTED_CASE; introducing ERR_FAILED_ASSERTION_IN_SCRIPT error code for handling non-zero script's exit values. 2014-09-18 14:02:34 +04:00
Ruben Ayrapetyan f402e42d2f Moving Global object related routines to libecmabuiltins component. Introducing ecma_init_builtins and ecma_finalize_builtins routines. 2014-09-18 13:55:56 +04:00
Ruben Ayrapetyan 11cf22f06c Introducing 'ecmabuiltins' component and interface for instantiating built-in properties. 2014-09-17 21:12:05 +04:00
Ilmir Usmanov 56e6d2a380 Add if_else.js test. Fix bytecode generation. 2014-09-17 20:21:30 +04:00
Ruben Ayrapetyan 2edc921be7 Introducing has_non_instantiated_built_in_properties flag in ecma_object_t and 'built-in function' object type. 2014-09-17 20:05:15 +04:00
Ilmir Usmanov 70cc5128cc Add test try_catch_finally.js. Fix parser and interpreter 2014-09-17 18:58:16 +04:00
Ruben Ayrapetyan 51b7dc0d69 Turning off performance measurement during pre-commit testing. 2014-09-17 18:04:53 +04:00
Ruben Ayrapetyan 24fc505440 Introducing ecma_is_magic_string routine. 2014-09-17 18:00:11 +04:00
Ruben Ayrapetyan 70d76efc98 Adding cppcheck utility to repository. 2014-09-17 15:50:55 +04:00
Ruben Ayrapetyan b5a579cc41 Pulling before pre-push testing instead of just before pushing in ./tools/push.sh. 2014-09-17 15:38:06 +04:00
Ruben Ayrapetyan aa6a45962d Reducing scope of variable in deserialize_num_by_id to satisfy cppcheck's requirements. 2014-09-17 15:37:39 +04:00
Ruben Ayrapetyan 59ef3bf074 Little refactoring of control paths in general objects' [[DefineOwnProperty]] to satisfy cppcheck's requirements. 2014-09-17 15:37:12 +04:00
Ruben Ayrapetyan 5df12d2e04 Fixing NULL pointer dereference in PutValue routine. 2014-09-17 15:24:48 +04:00
Ruben Ayrapetyan 318a62e9b3 Adding debug.linux-valgrind.check and release.linux-musl-valgrind.check to precommit testing. 2014-09-17 12:56:48 +04:00
Ruben Ayrapetyan 6f23dd879d Increasing test timeout for valgrind runs. 2014-09-17 12:56:16 +04:00
Ruben Ayrapetyan 64613b5513 Reducing number of iterations in tests/jerry/nested_function.js 10000 -> 1000. 2014-09-17 12:55:22 +04:00
Ilmir Usmanov d4cd8be349 Fix asserts in opfunc_*jmp_down functions. 2014-09-16 22:36:26 +04:00
Ilmir Usmanov e77bd4f4e5 Add try-catch-finally support: parse and generate opcodes for this construct
Fix varg generation: generate *_n opcodes with parameters in following meta opcodes
Add stack internal structure: dimanically allocated stack.
Use dynamically allocated memory in parser: every local and global variables are stored in dinamically allocated stacks.
Use dynamically allocated memory in serializer: opcodes are also stored in stack.
Change is_true_jmp and is_false_jmp opcodes to relative.
Change *jmp* opcodes to be able to store opcode_counter_t instead of idx_t.
2014-09-16 21:32:59 +04:00
Ruben Ayrapetyan cd41b236d9 Statistics of memory usage during interpretation. 2014-09-16 21:19:07 +04:00
Ruben Ayrapetyan e8991abadb Fixing __printf for format strings with '+' specifier like '%+5d'. 2014-09-16 20:53:02 +04:00
Ruben Ayrapetyan fbcd393962 Adding configuration flag indicating whether Global Environment is bound to Global Object or it is simple declarative lexical environment. 2014-09-08 19:16:30 +04:00
Ruben Ayrapetyan dafbaa742e Adding configuration option for ECMA exception support. 2014-09-08 19:09:34 +04:00
Ruben Ayrapetyan 4d34bab9a0 Adding memory leak checks to unit tests. 2014-09-05 20:35:33 +04:00
Ruben Ayrapetyan c5dd81cf76 Fixing memory leak in opfunc_throw. 2014-09-05 20:28:02 +04:00
Ruben Ayrapetyan 5a9d4563ec Fixing performance degradation that occured in commit 9b040f31d2a2e1e4d43dd347d5e81282997dd2b5. 2014-09-05 16:27:43 +04:00
Ruben Ayrapetyan b9fd80ce36 Fixing object declaration and function expression opcode handlers; adding unit test that declares object and operates on the object's properties. 2014-09-04 21:02:29 +04:00
Ruben Ayrapetyan 5630352f36 Adding arm-linux-perf notes ref to tools/pull.sh and tools/log.sh. 2014-09-04 17:29:54 +04:00
Ruben Ayrapetyan 3bb990d782 Fixing LIBC_MUSL build for ARM Linux host (adjusting heap limit under LIBC_MUSL). 2014-09-04 16:47:39 +04:00
Ruben Ayrapetyan 31b5451b50 Moving label descriptor from ecma_completion_value_t to separate structure on heap (fixing performance degradation that occured in commit 5d92544db57203603a6ed53b5c18562065a70b77). 2014-09-04 14:27:40 +04:00
Ruben Ayrapetyan 50371ddf20 Implementing Array construction routine; adding unit test on array operations. 2014-09-03 17:30:03 +04:00
Ruben Ayrapetyan 76de0e9a06 Improving precision of ecma_number_to_string in case number can be represented as UInt32. 2014-09-03 15:05:58 +04:00
Ruben Ayrapetyan b275218e63 Fixing [[DefineOwnProperty]] routine of general object. 2014-09-02 22:34:50 +04:00
Ruben Ayrapetyan d45748a001 Implementing [[Get]] routine for function objects. 2014-09-02 22:34:38 +04:00
Ruben Ayrapetyan 57058c30ef Implementing rest unimplemented cases in ecma comparison routines. 2014-09-02 22:18:28 +04:00
Ruben Ayrapetyan 3dc9a5838a Fixing ecma_uint32_to_string helper. 2014-09-02 21:55:04 +04:00
Ruben Ayrapetyan 9acbaafc8e Implementing ecma-strings relational comparison helper. 2014-09-02 21:10:50 +04:00
Ruben Ayrapetyan 0a6e1a83f8 Renaming ecma_compare_ecma_string_to_ecma_string to ecma_compare_ecma_strings. 2014-09-02 20:16:41 +04:00
Ruben Ayrapetyan 11d772fda4 Implementing unimplemented cases in ecma comparison routines. 2014-09-02 19:57:55 +04:00
Ruben Ayrapetyan c581f10b94 Changing return value of ecma_op_abstract_equality_compare to ecma_completion_value_t. 2014-09-02 19:07:43 +04:00
Ruben Ayrapetyan c9f954ec2e Implementing several unimplemented cases in ecma conversion routines. 2014-09-02 18:49:45 +04:00
Ruben Ayrapetyan aa86a3643b Implementing remainder operation according to ECMA. Checking that implementations of other arithmetic operations already conform to ECMA and removing corresponding TODOs from them. 2014-09-02 15:09:36 +04:00
Ruben Ayrapetyan afc21fad8e Simple implementation of string concatenations comparison. 2014-09-02 13:31:56 +04:00
Ruben Ayrapetyan 4d9602ba0d Supporting string concatenations that are longer than 64k. 2014-09-01 22:11:54 +04:00
Ruben Ayrapetyan 813831a23b Decimal conversion of Number to zt-string (still not precise enough). Zt-string copy and length calculation helpers. 2014-09-01 21:12:02 +04:00
Ruben Ayrapetyan e35f54fe86 Implementing ECMA String to Number conversion helper. 2014-08-29 22:46:38 +04:00
Ruben Ayrapetyan 23b62bce54 Replacing doxygen header for ECMA modules 'addtogroup ecma ---TODO---' -> 'addtogroup ecma ECMA'. 2014-08-29 18:35:44 +04:00
Ruben Ayrapetyan 32d111fecf Changing pool's chunk size to 8 bytes. Adding configurable value for minimum chunks in a pool allocated by pools' manager: CONFIG_MEM_LEAST_CHUNK_NUMBER_IN_POOL = 32. 2014-08-29 18:21:22 +04:00
Ruben Ayrapetyan 32f20a02a3 Adding missing may_ref_younger flags updates and assertion check for the flags value. 2014-08-29 18:06:20 +04:00
Ruben Ayrapetyan 1d02085dc6 Packing ecma_object_t to 8 bytes. 2014-08-29 17:38:05 +04:00
Ruben Ayrapetyan 8e14f32806 Introducing getters/setters for ecma_object_t structure. 2014-08-29 15:53:07 +04:00
Ruben Ayrapetyan f7968e617d Adding several completion value construction and comparison helpers. 2014-08-29 12:51:06 +04:00
Ruben Ayrapetyan 164350b369 Introducing constructor for label completion values (for 'break' and 'continue' completion types). 2014-08-28 23:08:31 +04:00
Ruben Ayrapetyan 227c09fb3e Adding target counter and depth level to 'break' and 'continue' completion values. 2014-08-28 22:56:29 +04:00
Ruben Ayrapetyan 16cbe0c63b Removing try_get_string_by_idx and get_number_by_idx. 2014-08-28 21:19:44 +04:00
Ruben Ayrapetyan b36f997ef2 Determining if global code is strict code by checking if first opcode is 'meta' opcode of OPCODE_META_TYPE_STRICT_CODE type; setting 'configurableBindings' in 'var_decl' opcode to true if current code is eval code. 2014-08-28 20:29:42 +04:00
Ruben Ayrapetyan b529fc2da9 Processing unhandled exception by exiting engine with ERR_UNHANDLED_EXCEPTION; determining if function's code is strict by checking for appearance of 'meta' opcode of OPCODE_META_TYPE_STRICT_CODE type at the beginning of the function's code. 2014-08-28 20:21:47 +04:00
Ruben Ayrapetyan ddb2e6e9d5 Introducing and implementing 'throw' and 'try' opcode handlers. 2014-08-28 18:57:34 +04:00
Ruben Ayrapetyan 647f6b3c67 Renaming OPCODE_META_TYPE_OPCODE_COUNTER -> OPCODE_META_TYPE_FUNCTION_END. 2014-08-28 16:49:03 +04:00
Ruben Ayrapetyan 9d45f68370 Introducing 'opcode counter' type for 'meta' opcode; replacing 'jmp_down' opcodes that are used as pointers only with 'meta' opcodes of the introduced type. 2014-08-28 15:17:49 +04:00
Ruben Ayrapetyan 5d2b535cec Implementing 'with' opcode; replacing 'end_with' opcode with 'meta' opcode of corresponding type. 2014-08-27 21:38:53 +04:00
Ruben Ayrapetyan f08c242156 Implementing 'obj_decl' opcode; replacing 'prop', 'prop_get_decl', 'prop_set_decl' with 'meta' opcodes of corresponding types. 2014-08-27 20:43:31 +04:00
Ruben Ayrapetyan d286a93e2c Replacing 'varg' opcode with 'meta' opcode with corresponding type. 2014-08-27 19:35:56 +04:00
Ruben Ayrapetyan 2feb159fd8 Implementing 'array_decl' opcode handler. 2014-08-27 18:28:26 +04:00
Ruben Ayrapetyan 76121926d1 Splitting 'delete' opcode to 'delete_var' and 'delete_prop'. Implementing corresponding opcode handlers. 2014-08-27 17:12:59 +04:00
Ruben Ayrapetyan 05185bb2e9 Implementing 'native_call' opcode handler. 2014-08-27 15:38:31 +04:00
Ruben Ayrapetyan bc2f827447 Implementing 'unreachable' handler for 'meta' opcode. 2014-08-27 13:45:27 +04:00
Ruben Ayrapetyan f8907573dd Implementing 'func_expr_n' opcode handler. 2014-08-26 22:15:40 +04:00
Ruben Ayrapetyan 6cfcedb053 Evaluation of expressions passed in arguments lists just before corresponding 'varg' opcodes. 2014-08-26 21:39:54 +04:00
Ruben Ayrapetyan 6f58335f23 Replacing 'varg_list' (3 args) with 'varg' (1 arg). 2014-08-26 20:50:41 +04:00
Ruben Ayrapetyan 32ba30ddef Extracting interpreter loop from run_int_from_pos. 2014-08-26 20:20:33 +04:00
Ruben Ayrapetyan bf5bda11ed Implementing 'construct_n' opcode handler. 2014-08-26 17:47:14 +04:00
Ruben Ayrapetyan 9573b7234d Implementing 'func_decl_n' and 'func_call_n' opcodes' handlers. 2014-08-26 17:30:23 +04:00
Ruben Ayrapetyan 02f31fbcfb Adding 'func_expr_n' opcode; replacing arg1 and arg2 of 'func_decl_n' opcode with arg_list. 2014-08-26 15:58:57 +04:00
Ruben Ayrapetyan 7a80b7f4f1 Renaming 'construct_decl' opcode to 'construct_n'. 2014-08-26 12:50:23 +04:00
Ruben Ayrapetyan dc3f529307 Implementing 'typeof' opcode handler. 2014-08-26 12:43:13 +04:00
Ruben Ayrapetyan 704c26ff80 Setting ThisBinding of the Global Environment to the Global Object. 2014-08-26 12:43:10 +04:00
Ruben Ayrapetyan 9a203c580e Implementing 'this' opcode handler. 2014-08-26 12:17:29 +04:00
Ruben Ayrapetyan 38fdcba69c Implementing opfunc_addition with a string-operand. 2014-08-26 11:26:47 +04:00
Ruben Ayrapetyan c72555d25f Introducing new type of ecma-string: concatenation of two ecma-strings (comparison is not implemented). loop_arithmetics_1kk.js: 2.8968 -> 2.8464. 2014-08-26 11:11:20 +04:00
Ruben Ayrapetyan d0963f6d3d Fixing deref and comparison for uint32-represented ecma-strings. loop_arithmetics_1kk.js: 2.8448 -> 2.9056. 2014-08-26 11:06:06 +04:00
Ruben Ayrapetyan 2194f80d71 Revert "Fixing deref and comparison for uint32-represented ecma-strings."
This reverts commit c3adae65625c4fcf25049a3a67e1f1862b443c35.
2014-08-26 11:05:19 +04:00
Ruben Ayrapetyan 6ca0942b74 Fixing deref and comparison for uint32-represented ecma-strings. 2014-08-26 10:26:47 +04:00
Ruben Ayrapetyan aeb363075b Adding const qualifier to ecma_string_t* in ecma-string comparison and property search routines. 2014-08-25 20:28:26 +04:00
Ruben Ayrapetyan ebfacc82d3 Removing is_length_valid from ecma-string descriptor. 2014-08-25 20:11:24 +04:00
Ruben Ayrapetyan 8998189bc0 Storing Number as UInt32 in ecma-string if the Number may be represented as UInt32. Calculating length for Number-represented ecma-strings in ecma-string constructor. loop_arithmetics_1kk.js: 2.9112 -> 2.8536. 2014-08-25 20:03:33 +04:00
Ruben Ayrapetyan 57965bf160 Moving {get,set}_variable_value and do_strict_eval_arguments_check from opcodes-ecma-support.h to opcodes-helpers-variables.c. loop_arithmetics_1kk.js: 3.0848 -> 2.9584. 2014-08-25 18:54:46 +04:00
e.gavrin 4ffbdd2c3f __opcode -> opcode_t 2014-08-23 02:01:56 +04:00
e.gavrin a99907670b OPCODE define replaced with opcode_t. T_IDX define replaced with idx_t. 2014-08-23 00:53:41 +04:00
e.gavrin 0eece0be5a Remove not needed opcode-support.[c,h] 2014-08-23 00:24:49 +04:00
e.gavrin d80cb10361 Refine opcodes OP_LIST macro. Removed ambiguous lists of opcodes in several files. The only list is in opcodes.h 2014-08-23 00:16:56 +04:00
e.gavrin d4a9d9430e Refactoring of libcoreint part1 2014-08-23 00:16:56 +04:00
Ruben Ayrapetyan 6fbf3e4eed Implementing accessor properties operations in general objects' [[Get]] and [[Put]] routines. 2014-08-22 21:27:46 +04:00
Ruben Ayrapetyan 90c006771f One more fix in Function objects' [[Construct]] routine 2014-08-22 21:16:43 +04:00
Ruben Ayrapetyan e6c10655c5 Fixing Function objects'[[Construct]] routine 2014-08-22 21:01:58 +04:00
Ruben Ayrapetyan a341fe044b call_0, call_1 opcode handlers: wrapping function calls using ECMA_FUNCTION_CALL helper 2014-08-22 20:50:40 +04:00
Ruben Ayrapetyan bf1841ce54 Full implementation of GetValue, PutValue operations. 2014-08-22 20:27:07 +04:00
Ruben Ayrapetyan 6801f22bd9 Introducing ECMA_FUNCTION_CALL helper macro for handling return completion values of function calls. 2014-08-22 20:26:23 +04:00
Ruben Ayrapetyan 80e6cd3a60 Fixing ecma_create_arguments_object: adding deref for allocated ecma-string 2014-08-22 18:47:46 +04:00
Ruben Ayrapetyan 077392e5c5 Fixing ecma_compare_zt_string_to_zt_string 2014-08-22 18:44:54 +04:00
Ruben Ayrapetyan f266b84016 Adding configuration header file for engine's parameters/limitations 2014-08-22 18:29:39 +04:00
Ruben Ayrapetyan dca9bcc387 Removing ECMA_TYPE__COUNT enum value; fixing comment to ecma_copy_value 2014-08-22 17:50:57 +04:00
Ruben Ayrapetyan a8486b01ed Partial implementation of 'Object' object construction routine 2014-08-22 17:18:29 +04:00
Ruben Ayrapetyan 3bcf02137e Adding stub for Array construction routine 2014-08-22 17:17:17 +04:00
Ruben Ayrapetyan 5713373279 Partial implementation of [[Construct]] routine for Function objects 2014-08-22 16:56:00 +04:00
Ruben Ayrapetyan 50a1532801 Implementing opfunc_instanceof using ecma_op_has_instance for [[HasInstance]] call 2014-08-22 15:39:23 +04:00
Ruben Ayrapetyan 7a20454047 Using ToString for property name conversion in opfunc_in 2014-08-22 15:26:05 +04:00
Ruben Ayrapetyan b1b6ae5a41 Partial implementation of [[HasInstance]] ecma-object's operation 2014-08-22 15:24:09 +04:00
Ruben Ayrapetyan 9cc27115fa Using ToString for property name conversion in opfunc_getter, opfunc_setter 2014-08-22 15:07:21 +04:00
Ruben Ayrapetyan f7cdb454ed Implementing ToString operation (ecma_op_to_string) 2014-08-22 14:40:58 +04:00
e.gavrin 7bda6e9d01 Add opcode handlers for logical_[not, or, and]] 2014-08-22 01:27:37 +04:00
e.gavrin 8e4ff93436 Add instanceof opcode handler. Untested. 2014-08-22 00:29:42 +04:00
e.gavrin 3dc1f8df77 Add in opcode handler. Untested. 2014-08-21 23:59:58 +04:00
e.gavrin b822c704e5 Add b_not opcode handler. Fixes in shift opcodes and in test 2014-08-21 22:52:34 +04:00
e.gavrin 7dea812364 Add shift opcodes handlers 2014-08-21 21:39:05 +04:00
Ruben Ayrapetyan 148d9c4cb6 Disabling creation of testing notes during pre-push testing 2014-08-21 20:14:54 +04:00
e.gavrin dfcc3a0986 Add retval opcode handler. 2014-08-21 20:01:50 +04:00
Ruben Ayrapetyan 7d38fee700 Implementing comparison of ecma-strings for different types of string containers. 2014-08-21 19:54:11 +04:00
Ruben Ayrapetyan bb55d895c4 ./tools/pull.sh: pulling notes with git pull --rebase. tools/push.sh: make pull just before pushing; pushing master and notes with one command. 2014-08-21 18:21:35 +04:00
Ruben Ayrapetyan 2851c59d97 Add noopt=1 option to override OPTION_OPTIMIZE to disable. 2014-08-21 17:48:26 +04:00
e.gavrin c6a41c167e Add native_call opcode. 2014-08-21 17:30:52 +04:00
Ruben Ayrapetyan 902f8c3414 Reducing build time: make debug.linux 8.778s -> 6.426s; make unittests: 32.230s -> 9.259s. 2014-08-21 17:28:14 +04:00
Ruben Ayrapetyan 616c96d3bb Implementing ecma_string_to_zt_string for number-represented string and strings that are stored in literal table 2014-08-21 16:46:45 +04:00
e.gavrin 1261820838 Add meta opcode. 2014-08-21 16:07:05 +04:00
e.gavrin 5b2b04f5f9 Various opcode's refinements: obj[0,1, 2, n]->obj_decl, array[0, 1, 2, n]->array_decl, func_expr[0, 1, n]->removed, varg[1_end, 2_end, 3_end, 3]->varg_list. 2014-08-21 15:49:10 +04:00
Ruben Ayrapetyan a96705701d Implementing prototype of ToString (Number) routine - ecma_number_to_zt_string; adding unit tests for the routine. 2014-08-21 14:43:43 +04:00
Ruben Ayrapetyan 5095bd31c9 Ecma-number decoding helpers 2014-08-20 19:20:03 +04:00
Ruben Ayrapetyan 284e7fc91b Renaming prop_access opcode to prop_getter; introducing prop_setter opcode; implementing property getter/setter opcode handlers. 2014-08-20 16:34:03 +04:00
Ruben Ayrapetyan fe34bf7e01 Fixing: deallocation of number-represented ecma-string; [[Get]] of Arguments object for index arguments. 2014-08-20 13:47:51 +04:00
Ruben Ayrapetyan f9ff4e1ba3 Reducing includes of system headers in jerry-libc.c (LIBC_RAW). 2014-08-19 20:51:30 +04:00
Ruben Ayrapetyan 50554a81e4 Implementing Arguments object construction, [[Get]], [[GetOwnProperty]], [[DefineOwnProperty]], [[Delete]] routines. 2014-08-19 19:17:03 +04:00
Ruben Ayrapetyan d5f50ebd04 Add dbgsyms=1 option to override OPTION_DEBUG_SYMS to enable, OPTION_STRIP to disable. 2014-08-19 19:17:03 +04:00
Ilmir Usmanov a2fe594d0f Merge branch 'geppetto' 2014-08-19 16:22:39 +04:00
Ilmir Usmanov 126b8814a8 Add rules to check switch-cases 2014-08-19 16:22:05 +04:00
e.gavrin 0fb8076d2a fix formatting issues in src/*. Ignore #define.. in jerry_funcname_space_parentheses.tcl 2014-08-19 15:03:05 +04:00
e.gavrin abd686242a Reorder fields in rss_measure.sh 2014-08-19 13:32:51 +04:00
e.gavrin 27b24a45f2 Refine rss_measure.sh 2014-08-19 02:13:18 +04:00
e.gavrin 98e544459d Add shared_clean/dirty collection to rss_measure script 2014-08-18 22:48:03 +04:00
e.gavrin 7f77a1aafd Add private_clean/dirty collection to rss_measure script 2014-08-18 22:26:48 +04:00
Ruben Ayrapetyan d393d0c041 Fixing check of git push status code in tools/push.sh 2014-08-18 21:14:35 +04:00
Ruben Ayrapetyan 9d33a91822 Storing literals' indexes instead of literals' contents in ecma-strings if possible. 2014-08-18 20:52:02 +04:00
Ruben Ayrapetyan 8bc41358ec Replacing const ecma_char_t* with ecma_string_t*; supporting number-represented string in ecma_string_t. 2014-08-18 18:34:34 +04:00
Ruben Ayrapetyan 15b65a27fb Moving type conversion helpers from libecmaoperations to libecmaobjects. 2014-08-18 16:26:22 +04:00
Ruben Ayrapetyan bcddffbefb Preparations to lazy conversion of Number to String: introducing ECMA_STRING_CONTAINER_HEAP_NUMBER container type for ecma_string_t. 2014-08-18 16:10:54 +04:00
Ruben Ayrapetyan 471bbd9fc4 Test for function calls with args. 2014-08-15 20:14:02 +04:00
Ruben Ayrapetyan 04112c6fea Implementing opfunc_call_1. 2014-08-15 20:10:22 +04:00
Ruben Ayrapetyan 116a80f8ae Ilmir's fix of register variables counting. 2014-08-15 19:46:02 +04:00
Ruben Ayrapetyan b582d56ecb Implementing opfunc_decl_1, opfunc_decl_2. 2014-08-15 18:30:47 +04:00
Ruben Ayrapetyan 4de3da90a5 Implementing function's argument variables instantiation during function call. Implementing function declaration routine. 2014-08-15 17:30:11 +04:00
Ruben Ayrapetyan 04c6cb30c7 Adding ecma_is_lexical_environment_global helper. 2014-08-15 17:26:49 +04:00
Ruben Ayrapetyan 21a84afc4f Adding ecma_is_property_enumerable, ecma_is_property_configurable helpers. 2014-08-15 17:22:29 +04:00
Ruben Ayrapetyan 8f08c1c70e Fixing collections' construction and iteration routines. 2014-08-15 17:21:21 +04:00
Ruben Ayrapetyan 2a199cc6a7 Iterators for ecma-values collections 2014-08-15 15:58:34 +04:00
Ruben Ayrapetyan cf098ad4ac Adding missing 'break's in ecma_op_{create,initialize}_immutable_binding. 2014-08-14 21:36:33 +04:00
Ruben Ayrapetyan f638c381a3 Introducing ecma-values collection. Implementing ecma-strings collection through ecma-values collection. 2014-08-14 21:19:56 +04:00
e.gavrin af798a7142 Fix mistype in opfunc_greater_or_equal_than and opfunc_less_or_equal_than opcodes 2014-08-14 20:42:28 +04:00
Ruben Ayrapetyan 3f01ac6c45 Removing commit notes if push failed in tools/push.sh 2014-08-14 20:11:30 +04:00
Ruben Ayrapetyan 1d70fe0a37 Fixing ecma_op_abstract_equality_compare 2014-08-14 20:03:50 +04:00
Ruben Ayrapetyan 0447d128d0 Implementing b_and, b_or, b_xor opcode handlers. 2014-08-14 19:56:55 +04:00
Ruben Ayrapetyan 86a0c701df Partial stub for Int32 operation. 2014-08-14 19:15:25 +04:00
Ruben Ayrapetyan 85556504e4 Fixing exit code of tools/log.sh 2014-08-14 18:55:21 +04:00
e.gavrin a075051d6f Add opfunc_equal_value_type and opfunc_not_equal_value_type opcode handlers. Add test. 2014-08-14 18:04:43 +04:00
Ruben Ayrapetyan 0cd5fbfd81 Adding src/main.c to cppcheck and vera++ source list. 2014-08-14 17:55:46 +04:00
Ruben Ayrapetyan 04dedd8f87 Adding 'make log' to list commits with commit testing notes. 2014-08-14 17:52:54 +04:00
Ruben Ayrapetyan 5bb76486b0 Fixing exit code of tools/push.sh 2014-08-14 17:38:31 +04:00
Ruben Ayrapetyan 5ebc744511 Logging performance and memory benchmarks to git notes during precommit testing. 2014-08-14 17:28:41 +04:00
Ruben Ayrapetyan e25b1d0249 Performance measurement script tools/perf.sh 2014-08-14 16:52:45 +04:00
e.gavrin 7803e073c4 Add opfuncs for greater_or_equal_than and less_or_equal_than opcodes. Add test. 2014-08-14 16:36:53 +04:00
Ruben Ayrapetyan 6553daa22b Limiting data and stack size by setrlimit. 2014-08-14 16:08:06 +04:00
Ruben Ayrapetyan 63133c247f Initializing [[FormalParameters]] internal property of Function object in ecma_op_create_function_object. 2014-08-13 21:47:56 +04:00
Ruben Ayrapetyan daf1cfc9e6 Introducing helpers for construction and freeing of ecma-strings' collections. 2014-08-13 21:36:36 +04:00
e.gavrin 684c028954 Add script to run ubench. Fix rss_meaasure.sh 2014-08-13 21:11:53 +04:00
Ruben Ayrapetyan eb7441198c Commenting out performance and memory benchmarking in tools/push.sh 2014-08-13 20:59:39 +04:00
Ruben Ayrapetyan 507b91973a Renaming ecma_array_first_chunk_t -> ecma_collection_header_t; ecma_array_non_first_chunk_t -> ecma_collection_chunk_t. 2014-08-13 20:58:17 +04:00
Ruben Ayrapetyan 25ae71353d Removing print of opcode in optimizer_reorder_scope. 2014-08-13 20:28:12 +04:00
Ruben Ayrapetyan 613c43cc14 Fixing internal properties handling in ecma_gc_mark. 2014-08-13 20:18:41 +04:00
Ruben Ayrapetyan 4bacc6c957 Adding literal variable to tests/jerry/variables.js. 2014-08-13 19:30:37 +04:00
Ruben Ayrapetyan c831912ae5 Replacing ecma_array_first_chunk_t with ecma_string_t for ecma-strings. 2014-08-13 19:21:25 +04:00
e.gavrin 871c36feb7 Enable variables.js test 2014-08-13 18:10:04 +04:00
Ruben Ayrapetyan b66981d19f Introducing ecma_string_t type that will be used for ecma-strings instead of ecma_array_first_chunk_t. 2014-08-13 17:01:05 +04:00
Ruben Ayrapetyan 567d54f7e5 Move ecma-string helpers from ecma-helpers.c to ecma-helpers-string.c 2014-08-13 17:01:05 +04:00
Ruben Ayrapetyan bd280df9bf Making vera++ to stop compilation on style errors. 2014-08-13 16:50:44 +04:00
Ruben Ayrapetyan a672807990 Style fix in stm32f4/jerry-libc.c. 2014-08-13 16:50:17 +04:00
e.gavrin 350580c49e Fix style in liboptimizer 2014-08-13 16:41:39 +04:00
e.gavrin c5f33d184d fix style errors in libjsparser 2014-08-13 16:23:59 +04:00
e.gavrin 9ad1e27c75 Merge branch 'master' of git-server:jerry 2014-08-13 15:40:05 +04:00
e.gavrin 19e71e98e2 fix style error 2014-08-13 15:39:56 +04:00
Ruben Ayrapetyan c3cc674fef Definition of function object's 'length' property in ecma_op_create_function_object. 2014-08-13 15:17:12 +04:00
Ruben Ayrapetyan 4fe85cdd1a Full implementation of [[DefineOwnProperty]] for array objects. 2014-08-13 14:55:40 +04:00
Ilmir Usmanov 2e1da4cae5 Quickfix N2 2014-08-12 22:48:24 +04:00
Ilmir Usmanov 6f41c1c59b Quickfix 2014-08-12 22:30:24 +04:00
Ilmir Usmanov bbde9f4180 Merge branch 'geppetto' 2014-08-12 22:27:32 +04:00
Ilmir Usmanov 0a68baa479 Add support of floating-point literals 2014-08-12 22:27:12 +04:00
Ruben Ayrapetyan 3ae7a284dc Partially implementing [[DefineOwnProperty]] for Array objects. 2014-08-12 21:45:11 +04:00
Ruben Ayrapetyan eee1daec91 Introducing ecma_compare_zt_string_to_zt_string interface that is __strcmp for ecma_char_t* zero-terminated strings. 2014-08-12 18:51:49 +04:00
Ruben Ayrapetyan 389d88bbb8 Adding tools/some_style_fixes.sh script that makes some style fixes in code. 2014-08-12 18:18:50 +04:00
Ruben Ayrapetyan a886053e54 Extracting ecma_op_object* routines to ecma_op_general_object_*. Redefining ecma_op_object* interface to be usable for all object types (not only for general objects). 2014-08-12 18:11:56 +04:00
Ruben Ayrapetyan bc34fa3be6 Renaming src/libecmaoperations/ecma-objects-properties.[ch] -> src/libecmaoperations/ecma-objects.[ch]. 2014-08-12 17:09:46 +04:00
Ruben Ayrapetyan 8bde4ecbf2 Implementing ecma_compare_ecma_string_to_ecma_string helper. 2014-08-12 16:56:35 +04:00
Ruben Ayrapetyan b987bcc920 Compaction of heap block's header from 32 bytes to 8 bytes. ./benchmarks/jerry/loop_arithmetics_1kk.js: 2.77 -> 2.82. 2014-08-12 16:23:44 +04:00
Ruben Ayrapetyan b4a29f754a Style fixes in libruntime. 2014-08-12 14:16:05 +04:00
Ruben Ayrapetyan aa43e06366 Style fixes in liballocator, libecmaobjects, libecmaoperations: putting else on separate line after closing brace of 'if' block. 2014-08-12 13:53:34 +04:00
Ruben Ayrapetyan 701f03309a Replacing -O2 with -O3. ./benchmarks/jerry/loop_arithmetics_1kk.js: 2.97 -> 2.79. 2014-08-12 12:28:37 +04:00
Ruben Ayrapetyan b260f2458e Fixing debug.stm32f4 build. 2014-08-12 12:01:47 +04:00
e.gavrin b3b1ba0206 Formatting fixes in libcoreint 2014-08-12 01:13:32 +04:00
e.gavrin d40c21b616 Fixes for interpreter.* 2014-08-12 00:53:40 +04:00
e.gavrin 464bf578cc Remove unneeded test 2014-08-12 00:20:39 +04:00
e.gavrin e76f690a25 Merge branch 'master' of git-server:jerry 2014-08-12 00:19:36 +04:00
e.gavrin 0510b66504 Formatting fixes for libperipherals 2014-08-12 00:15:13 +04:00
Ilmir Usmanov bca7f7f095 Merge branch 'geppetto' 2014-08-11 23:18:06 +04:00
Ilmir Usmanov 5373b60955 Reformat 2014-08-11 23:17:45 +04:00
Ruben Ayrapetyan 839ad7e4b4 Fixing cppcheck warning about comma in return statement (libecmaobjects/ecma-helpers-value.c). 2014-08-11 22:17:35 +04:00
Ruben Ayrapetyan 1b84ca8412 Style fix: indentation in src/libecmaoperations/ecma-objects-properties.c. 2014-08-11 22:10:55 +04:00
Ruben Ayrapetyan 48cff24f08 Styles fixes in libecmaobjects, libecmaoperations: indentation and braces rules. 2014-08-11 22:05:59 +04:00
Ruben Ayrapetyan 38c6c2357d Styles fixes in liballocator: indentation and braces rules. 2014-08-11 21:10:06 +04:00
Ruben Ayrapetyan 59940fb648 Style fixes in liballocator, libecmaobjects, libecmaoperations: now lines are not longer than 120 characters. 2014-08-11 19:51:40 +04:00
Ruben Ayrapetyan 0b592470d5 Style fixes in libecmaoperations: space between function name and opening parenthesis, no space after opening parenthesis/before closing parenthesis. By mistake, the changes weren't commited with 8081e5cdb38ad0f9789a89c92362fc73a716d85c. 2014-08-11 19:34:49 +04:00
Ruben Ayrapetyan b02eefd4ae Style fixes in liballocator, libecmaobjects, libecmaoperations: space between function name and opening parenthesis, no space after opening parenthesis/before closing parenthesis. 2014-08-11 19:28:14 +04:00
Ruben Ayrapetyan e53be2b441 Renaming ecma_get_pointer, ecma_set_pointer, ecma_set_pointer_non_null macroses to uppercase names. 2014-08-11 19:13:59 +04:00
e.gavrin 14d8b0d55e Add new runtime tests 2014-08-11 19:08:54 +04:00
Ruben Ayrapetyan 6564cbee76 Indentation checking rule for vera++. 2014-08-11 18:37:43 +04:00
Ruben Ayrapetyan 8ce1ef3c8b Removing trailing whitespace in liballocator, libecmaobjects and libecmaoperations. 2014-08-11 15:59:19 +04:00
Ruben Ayrapetyan 8e87c8d3ed Temporarily disabling error mode of vera++ style checker. 2014-08-11 14:55:02 +04:00
e.gavrin 3d946da4fb Revert "fix formatting in rc/libruntime/target/linux/jerry-libc.c"
This reverts commit 22892ba01bf9fe0fea2f04bfb5767285c0fa270c.

Conflicts:
	Makefile.mk
2014-08-11 13:05:22 +04:00
e.gavrin 18a3f7f64e Remove check gnu style 2014-08-11 12:54:13 +04:00
e.gavrin 4b651ab427 fix formatting in rc/libruntime/target/linux/jerry-libc.c 2014-08-11 11:33:42 +04:00
e.gavrin 3a388b07a1 Add several checking rules. Add some fixes. Force vera++ to produce error 2014-08-09 00:41:24 +04:00
Ruben Ayrapetyan 4fb0080701 Adding test nested_function.js. 2014-08-08 23:20:34 +04:00
Ruben Ayrapetyan 7b04e9eaeb Compacting pool header to 8 bytes. Replaced typed pool chunks with fixed-size untyped ones. loop_arithmetics_1kk.js benchmark: 2.98517 -> 2.9443. 2014-08-08 23:11:06 +04:00
e.gavrin 49a809d56f Add optional vera++ support. Add several rules. Fixes for vera compatibility - new lines at EOF 2014-08-08 22:40:17 +04:00
e.gavrin 06d394cc2b reduce number of mandatory precommit builds 2014-08-08 22:27:33 +04:00
e.gavrin 887ac9c114 reduce number of mandatory precommit builds 2014-08-08 22:24:40 +04:00
Ruben Ayrapetyan cd0246bedc Changing size of ecma-array's chunk to fixed 8 bytes. 2014-08-08 18:23:02 +04:00
e.gavrin 0007adce8b Add new line for vera++ compatibility 2014-08-08 18:00:31 +04:00
e.gavrin f7a4b330d0 repeat test 5 times for better stability 2014-08-08 16:35:00 +04:00
Ruben Ayrapetyan 1ab3eaa389 Optimizing ecma_get_pointer/ecma_set_pointer, introducing ecma_set_non_null_pointer. loop_arithmetics_1kk.js benchmark: 3.450 -> 3.025. 2014-08-08 15:22:05 +04:00
Ruben Ayrapetyan 0194e63331 Removing pool bitmaps; optimizing search for free pool chunks. loop_arithmetics_1kk.js benchmark: 4.134s -> 3.479s. 2014-08-08 14:26:28 +04:00
Ruben Ayrapetyan b6d9ed42ec Adding test_stability.sh to pre-commit testing. 2014-08-08 14:19:38 +04:00
e.gavrin 7038288f7f add test_stability.sh script to test last N commit for perf 2014-08-08 13:56:59 +04:00
Ruben Ayrapetyan c688f27f62 Adding memmove (for compiler usage). 2014-08-08 12:42:57 +04:00
Ruben Ayrapetyan f76795db8c Replacing -Os wth -O2. 2014-08-08 12:42:19 +04:00
Ruben Ayrapetyan 5788ce1199 Fixing OPTION_OPTIMIZE setup in Makefile. 2014-08-08 12:41:56 +04:00
e.gavrin 88515c9776 Extend rss_measure 2014-08-08 11:35:23 +04:00
e.gavrin 6506147ebb Temporaly remove sanitize builds from precommit(until fixed), fix mistype in rss_measure.sh 2014-08-08 11:22:07 +04:00
e.gavrin af61b73a3e Fix perf degradation while using rss_measure.sh. Pretify output of script. Add RSS, PSS and SHARE to the script 2014-08-08 10:57:40 +04:00
Ruben Ayrapetyan 7ad6c25bb2 Fix invocation of GC for non-zero generations. 2014-08-07 21:10:36 +04:00
Ruben Ayrapetyan d7e28e3a28 Fixing memory leak in mem_pools_alloc. 2014-08-07 21:08:31 +04:00
Ruben Ayrapetyan 2887332573 Fixing valgrind annotations in mem_heap_alloc_block for path added in ae189c6107f943f5273f9b2fce14ad17a396636c. 2014-08-07 21:08:07 +04:00
Ruben Ayrapetyan cc4d55803c Fix func_decl_0: correctly set interpreter's opcode counter. 2014-08-07 19:35:11 +04:00
Ruben Ayrapetyan 99c15ef802 Implementing object model, memory allocators finalization routines. Adding assertion that all memory was freed before exit. 2014-08-07 19:24:32 +04:00
Ruben Ayrapetyan 5e1c4b533f Fix ecma_copy_ecma_string_chars_to_buffer. 2014-08-07 18:36:05 +04:00
Ruben Ayrapetyan 6d7c2120ef Fix ecma_gc_mark routine: checking properties, located immediately in an object descriptor. 2014-08-07 18:28:46 +04:00
Ruben Ayrapetyan 93c7b813cf Fixing heap's block allocation routine. Adding related checks to mem_check_heap. 2014-08-07 18:26:26 +04:00
Ilmir Usmanov 32c97b97a7 Merge branch 'master' of git-server:jerry 2014-08-07 15:01:29 +04:00
Ruben Ayrapetyan e3cd8ee942 Generational mark and sweep GC. 2014-08-07 14:54:32 +04:00
Ilmir Usmanov 5690be49dd Move serializer and deserializer to liboptimizer 2014-08-06 20:32:16 +04:00
e.gavrin ba6713e295 Replace -Og -> -O0 2014-08-06 16:40:27 +04:00
Ruben Ayrapetyan 4ff5042abc Enabling full testing mode during pre-commit. 2014-08-06 15:54:37 +04:00
e.gavrin 8dcafe6239 <Merge branch 'master' of git-server:jerry 2014-08-06 15:11:08 +04:00
e.gavrin 545e8fe698 Merge branch 'master' of git-server:jerry 2014-08-06 15:01:41 +04:00
Ruben Ayrapetyan 084ca2325c Implementing __printf. Setting libc_raw as default libc. Removing LIBC_STD mode. 2014-08-06 15:00:33 +04:00
Ruben Ayrapetyan 440a3c64a2 Handling git push non-zero exit code in tools/push.sh. 2014-08-06 14:51:37 +04:00
Ilmir Usmanov 8afbb39df0 Merge branch 'master' of git-server:jerry 2014-08-06 14:21:06 +04:00
Ilmir Usmanov 4a7bb710fa Add 'assert' intrinsic 2014-08-06 14:17:53 +04:00
e.gavrin 95c1fba2f6 Merge branch 'master' of git-server:jerry 2014-08-06 14:09:18 +04:00
Ruben Ayrapetyan 6c01782e91 Hiding *.check targets. Enablings pre-commit parse-only tests from ./benchmarks/jerry except cse.js and chess.js. Making tests named beginning from N to be skipped in jerry_test.sh. Renaming cse.js and chess.js to N.cse.js, N.chess.js. 2014-08-06 13:49:51 +04:00
Ruben Ayrapetyan 137ace24db Handling return value of run_int by setting exit code. 2014-08-06 13:06:55 +04:00
e.gavrin 3984df5c9e Replace -Og -> -O0 2014-08-05 21:27:49 +04:00
Ruben Ayrapetyan 411791ea32 Fix: remove unnecessary ecma_ref_object. 2014-08-05 17:59:20 +04:00
Ruben Ayrapetyan cd0c7ab9a0 Fixing make push output. 2014-08-05 16:02:07 +04:00
Ruben Ayrapetyan 4a3195cbba Adding *.swp to .gitignore. 2014-08-05 15:58:14 +04:00
Ruben Ayrapetyan e4ce585823 Implementing 'nop' opcode handler. 2014-08-05 15:53:17 +04:00
Ruben Ayrapetyan adfa6d3576 Adding -s (silent) flag to make command line in tools/push.sh. 2014-08-05 15:37:16 +04:00
Ruben Ayrapetyan 9f56d42ceb Adding push target. Handling empty commit list by early exit. Successful push message coloring. 2014-08-05 15:24:37 +04:00
e.gavrin 8530cf6cd4 Merge branch 'master' of git-server:jerry 2014-08-05 15:09:29 +04:00
e.gavrin 96939be7ac fix smth 2014-08-05 15:02:38 +04:00
e.gavrin 94fe8803e1 fix smth 2014-08-05 14:58:04 +04:00
Ilmir Usmanov 998a52b416 Merge branch 'geppetto' 2014-08-05 14:52:32 +04:00
Ilmir Usmanov bfe2293d43 Replace repeated var_decls with nop 2014-08-05 14:52:03 +04:00
e.gavrin be42a7b128 fix formatting. add commit message 2014-08-05 14:48:32 +04:00
e.gavrin f52a6a6ae3 add verbosity 2014-08-05 14:31:02 +04:00
e.gavrin f247162255 add out dir to git ignore. clean up main.c 2014-08-05 14:23:17 +04:00
Ruben Ayrapetyan 447d0295eb Adding tools/push.sh that runs precommit testing for every commit prepared for pushing, pushes the whole commit pack upon successful pass of all test runs. 2014-08-05 14:17:25 +04:00
Ruben Ayrapetyan eb233804d7 Removing git status checking from 'make precommit'. 2014-08-05 13:55:59 +04:00
Ruben Ayrapetyan 78a782b791 Fixing text of message in precommit script. 2014-08-05 12:50:58 +04:00
Ruben Ayrapetyan 0f8798aa1f Removing '.SILENT' special target. 2014-08-05 12:49:46 +04:00
Ilmir Usmanov 3b624be051 Fix adjusting jumps 2014-08-05 11:51:49 +04:00
Ilmir Usmanov fb86387675 Merge branch 'geppetto' 2014-08-04 22:56:41 +04:00
Ilmir Usmanov 557100059a Add bytecode pretty-printing 2014-08-04 22:56:26 +04:00
Ruben Ayrapetyan c5930c8775 Adding new line after 'OK to push' message. 2014-08-04 22:14:26 +04:00
Ruben Ayrapetyan 8c2e5b1f7a Fixing command that excludes 'out' directory from list outputted by git status for checking if Git status of directory is clean. 2014-08-04 22:10:42 +04:00
Ruben Ayrapetyan 304098a984 Introducing make target for precommit testing: 'make precommit' that also supports parallel run: 'make -j precommit'. Introducing set of modifiers for linux target: libc_raw, musl, sanitize, valgrind. For example: 'make debug.linux-libc_raw-sanitize' or 'make release.linux-valgrind'. Removing corresponding flags. 2014-08-04 22:02:48 +04:00
Ruben Ayrapetyan 1834887a93 Fixing conflicting types for serializer_rewrite_opcode function. 2014-08-04 18:58:16 +04:00
Ruben Ayrapetyan feba25f055 Supporting ASAN with LIBC_RAW. 2014-08-04 18:43:46 +04:00
Ruben Ayrapetyan ac35a4ebf2 Fixing cppcheck warnings in mem-heap.c (appeared when valgrind=1) and in jerry-libc.c (appeared libc_raw=1). 2014-08-04 18:42:40 +04:00
Ilmir Usmanov 97dc322085 Fix assertions in parser 2014-08-04 17:50:08 +04:00
Ilmir Usmanov 084ed7aee4 Add --suppress=sizeofwithnumericparameter param to cppcheck 2014-08-04 17:22:32 +04:00
Ilmir Usmanov 039efcc3ae Merge branch 'geppetto' 2014-08-04 17:09:22 +04:00
Ilmir Usmanov eee88ffdc2 Add basic support of 'break' and 'continue' statements (without identifiers) 2014-08-04 17:09:02 +04:00
Ruben Ayrapetyan 09136e3e38 Moving cppcheck run from check targets to corresponding build targets; setting cppcheck's error exit code to 1. 2014-08-04 16:59:45 +04:00
Ruben Ayrapetyan a16c1a0597 Reducing scope of 'data' variable in deserialize_num_by_id. 2014-08-04 16:57:28 +04:00
Ruben Ayrapetyan 0025827eac Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early. 2014-08-01 18:30:24 +04:00
Ruben Ayrapetyan fa87696275 Revert "Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early."
This reverts commit 53c0da4307b1407f506ff71b0e014eefe00da985.
2014-08-01 18:29:55 +04:00
Ruben Ayrapetyan a6feea1068 Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early. 2014-08-01 18:28:18 +04:00
Ruben Ayrapetyan e1c57dc231 Adding valgrind's memcheck support in mem-heap. Adding valgrind's headers valgrind.h and memcheck.h to third-party/valgrind directory. 2014-08-01 18:22:34 +04:00
Ilmir Usmanov 806b4828af Merge branch 'master' of git-server:jerry 2014-08-01 15:49:57 +04:00
Ilmir Usmanov 59403ac7f2 Parse empty files correctly 2014-08-01 15:49:35 +04:00
Ruben Ayrapetyan 61dd7a5dd9 nostdlib under libc_raw=1 option. 2014-08-01 15:49:27 +04:00
Ilmir Usmanov 0ee1b9b54e Merge branch 'master' into geppetto 2014-08-01 15:25:49 +04:00
Ilmir Usmanov d15cf8f436 Fix some bugs in lexer 2014-08-01 15:24:48 +04:00
Ruben Ayrapetyan f4a4c91a98 Fixing read_sources: buffer and buffer_size were filled incorrectly. 2014-08-01 14:37:23 +04:00
Ruben Ayrapetyan 8260cc0214 Implementing case 3.b in PutValue operation. 2014-08-01 12:48:03 +04:00
e.gavrin a7b2aa1014 Improved generator.sh script to generate file to the specified file 2014-08-01 00:53:07 +04:00
e.gavrin 22b7797a83 -03 causes crashes on release 2014-08-01 00:37:43 +04:00
e.gavrin b1f940c863 add new benchmark and new test 2014-07-31 23:44:18 +04:00
e.gavrin d97c51d76e Add -O3 for host builds 2014-07-31 23:41:57 +04:00
Ilmir Usmanov dd5f90d50f Merge branch 'master' of git-server:jerry 2014-07-31 23:16:45 +04:00
Ilmir Usmanov 3f108ec1e7 Add asserts for testing and add test for 'for' loops 2014-07-31 23:16:24 +04:00
e.gavrin 0518c41121 refine tests 2014-07-31 22:45:59 +04:00
Ruben Ayrapetyan 779fe64161 Introducing ERR_SYSCALL that should be used on failures during syscalls execution. 2014-07-31 22:31:47 +04:00
Ruben Ayrapetyan 5c72a30228 Adding ./src/libruntime/target/linux/asm_{x86,x64}.h for architecture specific assembler blocks. 2014-07-31 22:26:01 +04:00
Ruben Ayrapetyan 020325d199 __HOST -> __TARGET_HOST_X64 2014-07-31 22:23:05 +04:00
e.gavrin 7ba8167591 Add exports 2014-07-31 22:11:46 +04:00
e.gavrin c2ad77b2b5 Add sanitize=1 flag to enable build with address sanitizer, while disabling it from default build 2014-07-31 22:04:42 +04:00
e.gavrin 3a53cc406b Merge branch 'master' of git-server:jerry 2014-07-31 21:59:44 +04:00
e.gavrin 2c193c1e2b Rename Makefile.mak -> Makefile.mk; Replace -O0 -> -Og 2014-07-31 21:59:35 +04:00
Ilmir Usmanov 420d3bf8f5 Merge branch 'master' of git-server:jerry 2014-07-31 21:52:33 +04:00
Ilmir Usmanov 1d41e8a355 Add 'exit' intrinsic 2014-07-31 21:52:25 +04:00
e.gavrin 7a076c3624 Remove PID printing 2014-07-31 21:26:27 +04:00
Ilmir Usmanov 2e0a3d4aca Add support of input several files 2014-07-31 21:23:29 +04:00
Ilmir Usmanov 14f0563d1a Fix couple of bugs show-opcodes: lexer should not dump lines, serializer must not rewrite a single opcode when dumping 2014-07-31 21:09:42 +04:00
Ilmir Usmanov 0d1935e3a8 Merge 2014-07-31 20:11:31 +04:00
Ilmir Usmanov 2809ffb36d Add scope reordering ("use strict" -> func_decl -> var_decl -> other opcodes); Add --show-opcodes console parameter 2014-07-31 19:30:27 +04:00
e.gavrin 7ff82e63c4 fix stm build 2014-07-31 17:58:29 +04:00
e.gavrin cf613ad594 Merge branch 'master' of git-server:jerry 2014-07-31 17:56:29 +04:00
e.gavrin 6f7e2ecdbc add --mem-stats flag to print memory usage statistics at exit 2014-07-31 17:56:17 +04:00
Ruben Ayrapetyan f177633622 Decreasing array chunk size to 8 bytes. 2014-07-31 17:53:43 +04:00
Ruben Ayrapetyan 4d7f14d059 Fixing ecma_compare_zt_string_to_ecma_string routine. 2014-07-31 17:52:10 +04:00
Ruben Ayrapetyan 9fd708eabe Revert "Fixing ecma_compare_zt_string_to_ecma_string routine."
This reverts commit c6e955aa2b231076b3ec70c55b38084afb4d01d2.
2014-07-31 17:51:40 +04:00
Ruben Ayrapetyan d327bf5682 Fixing ecma_compare_zt_string_to_ecma_string routine. 2014-07-31 17:49:16 +04:00
Ruben Ayrapetyan 2c85a55c85 Introducing Global Environment constructor; using Global Environment as starting lexical environment. 2014-07-31 17:21:47 +04:00
Ruben Ayrapetyan bfad8e897d Implementing ECMA-262 v5 10.2.1.2 operations (object environment record's CreateMutableBinding, SetMutableBinding, etc.). 2014-07-31 17:13:20 +04:00
Ruben Ayrapetyan f8ef3deaf3 Full implementation of general objects' [[DefineOwnProperty]]. 2014-07-31 17:07:21 +04:00
Ruben Ayrapetyan a084273286 Minor style fixes. 2014-07-31 17:05:51 +04:00
Ruben Ayrapetyan 9610680e3c Fix ecma_create_object_lex_env: increasing binding object's reference counter. 2014-07-31 14:56:22 +04:00
Ruben Ayrapetyan c364461b80 Splitting ecma_create_lexical_environment to ecma_create_decl_lex_env and ecma_create_object_lex_env. 2014-07-31 14:48:28 +04:00
Ruben Ayrapetyan 16cab18ae9 Introducing partially implemented Global object constructor. 2014-07-31 14:26:24 +04:00
Ruben Ayrapetyan e25e4d6cab Introducing constructor for ecma_property_descriptor_t. 2014-07-31 14:03:11 +04:00
e.gavrin 0709c3d07c fix main 2014-07-31 13:35:41 +04:00
e.gavrin 454744d816 add counters to MCU version 2014-07-31 00:26:58 +04:00
e.gavrin dba333c2c4 add timers 2014-07-30 23:49:49 +04:00
e.gavrin 1b47f87c5f Merge branch 'master' of git-server:jerry 2014-07-30 21:57:53 +04:00
e.gavrin c25db6d7b9 refine peripherals processing. Use libs 2014-07-30 21:57:41 +04:00
Ruben Ayrapetyan b50e091b08 Renaming opcode_idx_t to opcode_counter_t. 2014-07-30 21:54:53 +04:00
Ruben Ayrapetyan 4ebf551525 Renaming interp_bytecode_idx to op_idx_t. 2014-07-30 21:52:17 +04:00
Ruben Ayrapetyan c344cc7422 Correct implementation of opfunc_call_0 that was commited in c8dc00f4558efeb4bc0c2cd5d21e778294cb0d3a. The comment to that revision is incorrect: it specifies that opfunc_func_decl_0 should be rewritten; it is mistake, really it was about opfunc_call_0. 2014-07-30 21:46:02 +04:00
Ruben Ayrapetyan e540590ddd Partial implementation of function call routine ([[Call]]). 2014-07-30 20:34:04 +04:00
Ruben Ayrapetyan 221fb47a77 Implementing steps 16 - 19 of 'Function object creation' routine; creating ecma_op_get_throw_type_error stub. 2014-07-30 18:27:48 +04:00
Ruben Ayrapetyan 45a3d52d70 Fixing [[DefineOwnProperty]]: correctly setting up value of data named property; correctly increasing reference counters of getter and setter. 2014-07-30 18:24:14 +04:00
Ruben Ayrapetyan df224408fc Introducing ecma_get_magic_string that returns pointer to requested magic string that is used in an ECMA routine. 2014-07-30 17:56:53 +04:00
Ruben Ayrapetyan b059212e32 Implementing IsCallable operation. 2014-07-30 17:48:28 +04:00
Ruben Ayrapetyan d4d446cd4f Temporary implementation of 'func_decl_0' opcode handler. Should be rewritten from scratch after 'Function object creation' routine is fully implemented. 2014-07-30 15:44:28 +04:00
Ruben Ayrapetyan ccb0701469 Removing 'ret' opcode from unimplemented opcodes' list. 2014-07-30 15:42:32 +04:00
Ruben Ayrapetyan fe54e4dfd8 Implementation of 'ret' opcode handler. 2014-07-30 15:41:47 +04:00
Ruben Ayrapetyan e6f0057456 Partial implementation of func_decl_0 opcode handler. 2014-07-30 15:40:41 +04:00
Ruben Ayrapetyan f05719d622 Partial implementation of ECMA Function object creation routine. 2014-07-30 15:36:21 +04:00
Ruben Ayrapetyan 7bca73b8be Removing build targets from 'all' because check targets call build targets themself. 2014-07-30 15:08:50 +04:00
Ruben Ayrapetyan 52495b2cc1 Generating version info without header file. 2014-07-30 15:08:02 +04:00
e.gavrin c6baf89035 Merge branch 'master' of git-server:jerry 2014-07-30 14:43:13 +04:00
e.gavrin ab4e59700f add message on top main with info about branch/revision data 2014-07-30 14:43:02 +04:00
Ruben Ayrapetyan c1d0a4dd13 Introducing interp_bytecode_idx type for opcode indexes. 2014-07-30 14:34:31 +04:00
Ruben Ayrapetyan 0dd67e4799 Introducing ecma_object_class_t type that describes ecma-defined object classes (value of ECMA_INTERNAL_PROPERTY_CLASS internal property); adding outer lexical environment's reference counter increment in ecma_create_lexical_environment; updating ecma_create_object to support object type field (that is not connected with ecma-defined object class, but is internal implementation defined type of an object). 2014-07-30 14:24:01 +04:00
Ruben Ayrapetyan f8743a1375 Switching from 'echa_char_t*' to 'const ecma_char_t*' where appropriate. 2014-07-30 14:20:20 +04:00
Ruben Ayrapetyan 56daef38eb Fixing debug.stm32f4: uncommented memcpy and memset aliases, placed them under #ifndef LIBC_MUSL. 2014-07-30 13:57:40 +04:00
e.gavrin d8c721f57a Fix not working ulimit while using musl=1. Add color flag, that enables -fdiagnostics-color=always if specified 2014-07-30 00:22:14 +04:00
e.gavrin 076af9e1d3 add musl support for host systems using musl=1 flag 2014-07-29 23:28:11 +04:00
Ilmir Usmanov 8c5309d131 Add jump after function declaration and function expression header 2014-07-29 20:22:12 +04:00
Ilmir Usmanov 7d20bb3361 Merge branch 'master' into geppetto 2014-07-29 17:49:23 +04:00
Ilmir Usmanov e497875c06 Change strings offset size from 8 bits to 16 bits 2014-07-29 17:49:13 +04:00
Ruben Ayrapetyan 8d387cd32f Introducing make parameters todo, fixme and echo: todo/fixme enable printing of todo/fixme pragma messages if set to 1 (that are disabled by default after this commit); echo enables compilation/linking command line echoing if set to 1. 2014-07-29 14:52:42 +04:00
Ruben Ayrapetyan 299c94ee85 Implementation of general objects' [[GetOwnProperty]], [[GetProperty]], [[CanPut]], [[HasProperty]], [[Delete]]; partial implementation of general objects' [[Get]], [[Put]], [[DefineOwnProperty]]. 2014-07-29 14:32:01 +04:00
e.gavrin 5aaa853b9f Stable and tested demo ^^ 2014-07-29 12:23:04 +04:00
e.gavrin f4cdf1d266 Stable demo 2014-07-29 12:21:30 +04:00
Ilmir Usmanov ac22173ddd Merge branch 'master' of git-server:jerry 2014-07-29 11:55:37 +04:00
Ilmir Usmanov bc9d80147a Reduce lexer's memory consumption 2014-07-29 11:55:16 +04:00
Ruben Ayrapetyan 4cefa6950e Fix ecma_op_define_own_property argument list: the routine now takes property descriptor as an argument instead of property. 2014-07-28 21:57:27 +04:00
Ruben Ayrapetyan b073701da4 Introducing ECMA property descriptor (8.10) type and helpers for it: constructor and destructor. 2014-07-28 21:54:42 +04:00
Ruben Ayrapetyan 3ee0e8a8a5 Style fixes regarding 'empty' value: introducing ecma_is_empty_completion_value, reducing usage of the 'empty' value, listing possible usage cases of the 'empty' value in the comment to it's definition. 2014-07-28 21:21:31 +04:00
Ilmir Usmanov 177a2d1382 Merge branch 'geppetto' 2014-07-28 19:39:25 +04:00
Ilmir Usmanov 1b6638f073 Add ERR_MEMORY exit code to show that there was not enough memory; fix debug.stm build 2014-07-28 19:39:11 +04:00
Ruben Ayrapetyan cae07c0832 Implementing stubs for ecma objects' common internal properties and methods (ECMA-262 v5, Table 8). 2014-07-28 18:16:05 +04:00
Ilmir Usmanov d927d3e320 Fixes after review: simplification 2014-07-28 17:59:46 +04:00
Ilmir Usmanov 306f111a28 Add 'make testparser' option to test parser only 2014-07-28 17:28:18 +04:00
Ilmir Usmanov 24403c618e Merge branch 'geppetto' 2014-07-28 15:56:56 +04:00
Ilmir Usmanov 06473f0db2 Add Dolphin's .directory files to ignore 2014-07-28 15:56:28 +04:00
Ruben Ayrapetyan 7840a846e8 Fix: removing extra semi-colon after FIXME. 2014-07-28 15:46:12 +04:00
Ruben Ayrapetyan 7984c7e65f Fixing comment about an object's maximum reference counter. Adding runtime check for the counter's overflow. 2014-07-28 15:17:01 +04:00
Ruben Ayrapetyan 27f6d2b552 Fixing test_poolman that is failing after 6b050cc03719bfdb49b68eeb5deeed61bc51ff5a. 2014-07-25 20:23:34 +04:00
Ruben Ayrapetyan f1a0e616b1 Resident set size measurement script. 2014-07-25 20:16:43 +04:00
Ruben Ayrapetyan 09c1f91bb3 Printing heap's block headers before beginning of unit test. 2014-07-25 20:00:59 +04:00
e.gavrin 43ad060aa0 add js fuzz 2014-07-25 19:44:00 +04:00
e.gavrin 65b4968a69 fix text 2014-07-25 19:24:19 +04:00
Ruben Ayrapetyan e3c8af68f5 Enhancement of heap memory usage statistics output. 2014-07-25 19:16:52 +04:00
Ruben Ayrapetyan 5e4078095a Print heap memory usage statistics before exit (host version). 2014-07-25 19:09:10 +04:00
Ruben Ayrapetyan d90dccde9a Reducing heap's chunk size to 64 bytes, heap size to 2.5K; RAM size to 8K in stm32f4 linker script. 2014-07-25 19:03:45 +04:00
e.gavrin 78f92d8377 fix generated with appropriate example, limit ram with 48KB 2014-07-25 18:34:13 +04:00
Ruben Ayrapetyan 222e9e680c Adding assertion checks in serializer_dump_opcode and serializer_rewrite_opcode to avoid buffer overrun. 2014-07-25 18:20:54 +04:00
Ruben Ayrapetyan ff2609eb88 Implementing {pre,post}_{incr,decr} opcodes. 2014-07-25 18:07:18 +04:00
Ruben Ayrapetyan cfdef23303 Adding compilation flag '-Wfatal-errors'. 2014-07-25 18:06:45 +04:00
e.gavrin 43a8bbd576 fixed led processing and wait 2014-07-25 17:47:09 +04:00
e.gavrin 5da1df37de add led_on, led_off, led_toggle, led_blink_one to lib 2014-07-25 16:29:12 +04:00
Ilmir Usmanov 8745c47192 Merge branch 'geppetto' 2014-07-25 14:16:52 +04:00
Ilmir Usmanov 40007126fa Fix memory corruptions in lexer, which occured while parsing cse.js; remove lexer.log and parser.log files 2014-07-25 14:16:29 +04:00
Ruben Ayrapetyan 361e5a6f38 Use -gdwarf-3 by default, -gdwarf-4 if dwarf4=1 option is passed to make. 2014-07-25 13:51:35 +04:00
e.gavrin 1d42426fa4 Merge branch 'master' of git-server:jerry 2014-07-25 13:18:44 +04:00
e.gavrin 8094de86d1 add wait for stm, move fake_exit to peripheraks 2014-07-25 13:18:31 +04:00
Ilmir Usmanov c9c26251a4 Add savings bytecode in memory on target 2014-07-25 12:37:29 +04:00
Ilmir Usmanov 518ff9a864 Merge branch 'master' into geppetto 2014-07-24 21:51:17 +04:00
Ruben Ayrapetyan 7077e42c85 Improving performance of building unittests. 2014-07-24 21:41:04 +04:00
Ilmir Usmanov 8fadaf5277 Merge branch 'master' into geppetto 2014-07-24 21:40:59 +04:00
Ilmir Usmanov c6c2abce0e Merge 2014-07-24 21:40:30 +04:00
Ruben Ayrapetyan 7f918612c1 Removing 'dev.*' targets. 2014-07-24 21:19:34 +04:00
Ruben Ayrapetyan 6301cba0c3 Implementing equal_value, not_equal_value, less_than, greater_than opcodes. 2014-07-24 21:09:02 +04:00
Ruben Ayrapetyan 20b04a5ed7 Adding ecma-try-catch-macro.h that should have been a part of previous commit. 2014-07-24 20:33:58 +04:00
Ruben Ayrapetyan b2ae827fbd Partially implementing ECMA 'Absract relational comparison' (11.8.5). 2014-07-24 20:31:57 +04:00
Ruben Ayrapetyan 61550f2029 Fixing opcode unit tests. 2014-07-24 20:04:27 +04:00
Ilmir Usmanov 1f3b5a4c29 Merge 2014-07-24 19:50:37 +04:00
Ilmir Usmanov 3b0fef6e04 Add opcodes for increment and decrement; add optimizer 2014-07-24 19:27:58 +04:00
e.gavrin c2f82eefc0 add blink_toggle_once 2014-07-24 19:27:19 +04:00
Ruben Ayrapetyan 89834cd616 Printing of called function's name in 'call_1' opcode handler. 2014-07-24 18:30:49 +04:00
Ruben Ayrapetyan 63a757a5a7 Connecting try_get_str_by_idx with deserialize_string_by_id and get_number_by_idx with deserialize_num_by_id. 2014-07-24 18:28:46 +04:00
Ruben Ayrapetyan b7a3a13bc9 Implementing register variables. 2014-07-24 18:13:32 +04:00
Ilmir Usmanov c837c7d435 Optimize reg_var_decl memory usage 2014-07-24 16:54:59 +04:00
e.gavrin 389cd34bc0 Enable address sanitizer + color output 2014-07-24 15:57:10 +04:00
Ilmir Usmanov 1790739b93 Add 'reg_var_decl' opcode 2014-07-24 15:45:55 +04:00
Ilmir Usmanov b4404578ca Lazy initialization in deserializer 2014-07-24 15:24:51 +04:00
Ilmir Usmanov ea4278184c Rename deserializer_get_* -> deserialize_* 2014-07-24 12:17:59 +04:00
Ilmir Usmanov 60fa1d1178 Add checks of dumped literals and identifiers. Fix deserializer and serializer. 2014-07-24 11:55:14 +04:00
Ilmir Usmanov 597b5fe5c2 Merge branch 'master' of git-server:jerry 2014-07-23 22:56:06 +04:00
Ilmir Usmanov ed4e2a20e4 Add deserializer 2014-07-23 22:55:45 +04:00
Ruben Ayrapetyan 2718d8e918 Fixing is_false_jmp, is_true_jmp opcodes; adding them to var_decl and assignment unit tests as partial checks. 2014-07-23 22:22:50 +04:00
Ruben Ayrapetyan d659b703a1 Style fix in ecma_make_reference. 2014-07-23 21:59:32 +04:00
Ruben Ayrapetyan 826c6aeca2 Implementing is_false_jmp, is_true_jmp opcodes. 2014-07-23 21:58:15 +04:00
Ilmir Usmanov b923468720 Merge branch 'geppetto' 2014-07-23 21:34:43 +04:00
Ilmir Usmanov db9d18bd26 Don't dump trash 2014-07-23 21:34:25 +04:00
Ruben Ayrapetyan 13b6d13c3c Implementing jmp_down, jmp_up opcodes. 2014-07-23 21:00:03 +04:00
Ilmir Usmanov f1dd405933 Merge 2014-07-23 20:50:29 +04:00
Ilmir Usmanov 764efa41b8 Fix parsing of for-loops. 2014-07-23 20:47:31 +04:00
Ruben Ayrapetyan 8d180e9be1 Minor style fixes. 2014-07-23 20:41:21 +04:00
e.gavrin 2ff5d14b06 new test 2014-07-23 19:44:29 +04:00
Ruben Ayrapetyan 26c00acd50 Refinement of src/main.c. 2014-07-23 19:08:06 +04:00
e.gavrin 0b76dfb6df Merge branch 'master' of git-server:jerry 2014-07-23 18:59:21 +04:00
Ilmir Usmanov e5cdf93d2d Dump script line before bytecode (Only on host). Fix parsing literals: assing literal to temp before usage. 2014-07-23 18:43:03 +04:00
Ilmir Usmanov d57da2aa8a Num literals outside of assignments (in lists) are not allowed 2014-07-23 17:52:02 +04:00
Ilmir Usmanov b3b1d485ab Merge 2014-07-23 17:37:49 +04:00
Ilmir Usmanov f264d24b5a Rewrite serializer and lexer: adjust nums' ids, dump strings, nums and rewrites 2014-07-23 17:36:11 +04:00
Ruben Ayrapetyan dafae023e3 Merge branch 'master' of git-server.vd:jerry 2014-07-23 15:50:07 +04:00
Ruben Ayrapetyan cbba89c7f8 Extending each *.check target by unit tests' run. 2014-07-23 15:48:58 +04:00
Ilmir Usmanov 7fdbc84e3e Merge branch 'geppetto' 2014-07-23 15:39:21 +04:00
Ilmir Usmanov 1b2a52da51 Parse blinky 2014-07-23 15:39:01 +04:00
Ruben Ayrapetyan d17e28b7bf Fixing *.stm32f4 builds. 2014-07-23 14:57:37 +04:00
Ruben Ayrapetyan 0eea67ceb2 Renaming camelCase-named identifiers in unit tests' code. 2014-07-23 14:14:45 +04:00
Ruben Ayrapetyan 1796b9d903 Renaming rest camelCase-named identifiers according to underscore_named_value-naming. 2014-07-23 14:07:45 +04:00
Ruben Ayrapetyan 79f3d97434 Renaming jerry_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 13:03:30 +04:00
Ruben Ayrapetyan c0df259726 Renaming ecma_GC_info_t -> ecma_gc_info_t (missed this renaming in previous commit). 2014-07-23 13:00:01 +04:00
Ruben Ayrapetyan bc0c7824c2 Renaming ecma_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 12:54:56 +04:00
Ruben Ayrapetyan b3b4c74cbe Renaming mem_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 12:54:45 +04:00
Ruben Ayrapetyan 2d4ed154ee Removing m_ prefix from identifiers (m_ValueType -> ValueType, ...). 2014-07-23 11:41:58 +04:00
Ruben Ayrapetyan 3ef9ee9eb4 Merge branch 'master' of git-server.vd:jerry 2014-07-22 22:15:03 +04:00
Ruben Ayrapetyan 8e08d5f6d6 Partially implementing ECMA 'Absract equality comparison' (11.9.3). 2014-07-22 22:13:51 +04:00
e.gavrin 844382be19 Moved scopes of several variables closer to usage; 2014-07-22 21:53:18 +04:00
Ruben Ayrapetyan 19c15b03b0 Reverting changes in jerry_Exit and adding comment about jerry_AssertFail call. 2014-07-22 21:47:33 +04:00
Ilmir Usmanov 931815c915 Merge branch 'master' of git-server:jerry 2014-07-22 21:19:48 +04:00
Ilmir Usmanov 18fcf4bd77 Merge with 'geppetto': Generate bytecode while parsing 2014-07-22 21:18:19 +04:00
Ilmir Usmanov efb7009cfb Generate bytecode while parsing 2014-07-22 20:49:51 +04:00
Ruben Ayrapetyan cc513e9f35 Adding assertion that interpreter doesn't receive non-empty normal ecma completion value. 2014-07-22 19:01:11 +04:00
Ruben Ayrapetyan 488ed41c2b Implementing 'substraction' opcode handler and, partially (except string operands), 'addition' opcode handler; adding unit tests for them. 2014-07-22 18:55:13 +04:00
Ruben Ayrapetyan cbbd71588a Implementing 'division' and 'remainder' opcode handlers, adding unit tests for the opcodes. 2014-07-22 18:26:06 +04:00
Ruben Ayrapetyan f71e8c521a Adding stubs with partial implementation for ecma numbers' addition, substraction, division, remainder calculation and negation. 2014-07-22 17:38:39 +04:00
Ruben Ayrapetyan f0abfbb31b Refinement of exception handling code in 'multiplication' and 'assignment' opcode handlers. 2014-07-22 17:23:29 +04:00
Ruben Ayrapetyan 739d19be5b Implementing 'multiplication' opcode handler and unit test for the opcode. 2014-07-21 21:59:15 +04:00
Ruben Ayrapetyan 9b2b248728 Partially implementing ToNumber operation. 2014-07-21 20:36:08 +04:00
Ruben Ayrapetyan 7a0612d441 Adding is_strict flag to interpreter context. 2014-07-21 20:24:48 +04:00
Ruben Ayrapetyan 7e87a1fde0 Implementing CheckObjectCoercible operation and partial stubs for ToPrimitive and ToObject operations. 2014-07-21 19:58:04 +04:00
Ruben Ayrapetyan 2590b032e1 Fixing get_number_by_idx. 2014-07-21 19:41:12 +04:00
Ruben Ayrapetyan ff4d3e4af3 Implementing assignment of number literal values in 'assignment' opcode handler. 2014-07-21 19:22:25 +04:00
Ruben Ayrapetyan 84131d9a28 Introducing get_number_by_idx interface for retrieving literal number value by it's identifier. Change ecma_Number_t type from double to float. 2014-07-21 19:16:08 +04:00
Ruben Ayrapetyan 5df6233e0b Fix description comment for ecma_op_put_value. 2014-07-21 18:11:05 +04:00
Ruben Ayrapetyan 30c383556d Unit test for 'assignment' opcode. 2014-07-21 18:09:05 +04:00
Ruben Ayrapetyan 6abc3ae3a2 Merge branch 'master' of git-server.vd:jerry 2014-07-21 18:06:54 +04:00
Ruben Ayrapetyan d62f145ff2 Implementing 'assignment' opcode handler. 2014-07-21 18:03:12 +04:00
e.gavrin cfcdc72dc9 Merge branch 'master' of git-server:jerry 2014-07-21 17:56:35 +04:00
e.gavrin 90a8e86bbe fixes 2014-07-21 17:56:23 +04:00
Ruben Ayrapetyan 5e503ced32 Fixing ecma_op_get_value, ecma_op_put_value: correctly distinguishing whether the base is object or lexical environment. 2014-07-21 17:51:11 +04:00
Ruben Ayrapetyan 57629912e4 Rename: ecma_OpGetValue -> ecma_op_get_value; ecma_OpSetValue -> ecma_op_put_value. 2014-07-21 17:47:39 +04:00
Ruben Ayrapetyan 1175526d52 Fixing value copying/value leakage issues. 2014-07-21 17:39:39 +04:00
Ruben Ayrapetyan 0ff6d7ae9e Fixing ecma_CopyValue: adding missing breaks in switch. 2014-07-21 16:55:39 +04:00
Ruben Ayrapetyan 98a0c0f933 Introducing type argument in 'assignment' opcode handler. 2014-07-21 15:57:15 +04:00
e.gavrin 123df0f185 added benchmarks.js 2014-07-21 15:01:55 +04:00
Ruben Ayrapetyan 0af0c86532 Unit test: single var_decl, followed by exitval. 2014-07-18 15:27:38 +04:00
Ruben Ayrapetyan aa6bed0c4c Implementing ecma_CompareZtStringToEcmaString - zero-terminated- and ecma- strings compare routine. 2014-07-18 14:07:07 +04:00
Ruben Ayrapetyan ef51126aab Adding boolean return value, indicating whether script execution finished with success or failure, to run_int. Moving opcode loop from run_int to run_int_from_pos. 2014-07-18 12:27:17 +04:00
Ruben Ayrapetyan dd7029e15d Fixing ecma_OpHasBinding, ecma_OpCreateMutableBinding and ecma_OpSetMutableBinding (inserting missing breaks in switches). 2014-07-17 22:06:51 +04:00
Ruben Ayrapetyan f1d33b9236 Inverting properties' attributes' values in corresponding enums - now not_{writable,configurable,enumerable} correspond to 0 and {writable,configurable,enumerable} to 1. 2014-07-17 22:02:57 +04:00
Ruben Ayrapetyan f7abe7190d Implementing var_decl opcode. 2014-07-17 22:02:07 +04:00
Ruben Ayrapetyan 383853c116 Introducing string_literal_copy type descripting string literal copy for using in opcode handlers implementation. 2014-07-17 21:53:26 +04:00
Ruben Ayrapetyan 0209acad65 Introducing exitval opcode for end of script and assertions in unit tests. The opcode finishes interpretation with status code 0 (success) or 1 (failure). 2014-07-17 21:32:29 +04:00
Ruben Ayrapetyan 819b947445 Introducing try_get_string_by_idx interface for retrieving literal string value by it's identifier. 2014-07-17 21:07:25 +04:00
Ruben Ayrapetyan 0a87643eb6 Changing size of ecma_Char_t to 1 byte. 2014-07-17 20:56:20 +04:00
Ruben Ayrapetyan dd5c9dfb39 Changing return type of opcode handlers to ecma_CompletionValue_t. 2014-07-17 20:53:48 +04:00
Ruben Ayrapetyan a20aa29354 Templating definition of unimplemented opcodes. 2014-07-17 20:46:47 +04:00
Ruben Ayrapetyan d7a1566c23 During compilation of unit tests print compilation command line if it has been failed. 2014-07-17 20:43:30 +04:00
Ruben Ayrapetyan dd3f85b594 Making cppcheck to suppress warnings about missing system includes and unused functions. Setting --error-exitcode to 0 until all other warnings are fixed. 2014-07-17 18:55:25 +04:00
Ruben Ayrapetyan ffe6ab14bb Adding ctags and ID database to .gitignore list. 2014-07-17 18:55:10 +04:00
e.gavrin 0c9f81dbf9 add var_decl 2014-07-17 15:19:55 +04:00
Ruben Ayrapetyan 124673b5b4 Merge branch 'master' of git-server.vd:jerry 2014-07-17 14:48:41 +04:00
Ruben Ayrapetyan c0232c45f3 Redirecting all build's and tests' output to out/$(TARGET)/{.,obj,check}. Make clean now is rm -rf ./out. 2014-07-17 14:46:50 +04:00
e.gavrin 9a0b54313d remove opcodes 2014-07-17 13:08:43 +04:00
e.gavrin 080fb4aa5a aaa lickser.c 2014-07-17 11:54:31 +04:00
e.gavrin a61d31e9bf fix style error: Variable xxx hides enumerator with same name 2014-07-16 23:20:27 +04:00
e.gavrin 73bf0f9be1 remove unused gen_bytecode and save_op_data 2014-07-16 23:03:58 +04:00
Ilmir Usmanov c53eccbdd6 Merge branch 'master' into geppetto 2014-07-16 22:24:42 +04:00
Ilmir Usmanov 270ee301b4 Start dumping assignment expressions to bytecode; revise bytecode instructions 2014-07-16 22:23:55 +04:00
Ruben Ayrapetyan 6891039184 Fixing assertion on HasBinding result in ecma_OpGetIdentifierReference. 2014-07-16 22:21:15 +04:00
Ruben Ayrapetyan b300316403 Fixing assertion in ecma_OpGetIdentifierReference. 2014-07-16 22:16:14 +04:00
Ruben Ayrapetyan 6cdb927d14 Implementing ECMA-262 v5 10.2.1.1 operations (declarative environment record's CreateMutableBinding, SetMutableBinding, etc.). 2014-07-16 21:44:10 +04:00
Ruben Ayrapetyan 2598d01105 Renaming ecma_IsUndefinedValue -> ecma_IsValueUndefined and the like; introducing ecma_IsCompletionValueNormal{True,False} helpers. 2014-07-16 21:42:49 +04:00
Ruben Ayrapetyan c8605bb4d1 Renaming ecma_GC*Property to ecma_Free*Property and moving them to ecma-helpers.c; introducing ecma_CreateNamedProperty, ecma_GetNamedProperty, ecma_GetNamedDataProperty, ecma_FreeProperty (extracted from ecma_GCRun), ecma_DeleteProperty; removing length argument of ecma_NewEcmaString helper. 2014-07-16 21:37:24 +04:00
Ruben Ayrapetyan 8d07e2b239 Introducing ecma_Property{Writable,Enumerable,Configurable}Value_t enum value types for properties' attributes. 2014-07-16 21:19:44 +04:00
Ruben Ayrapetyan 6918db2f59 Replacing 'ecma_Free' prefix in ecma_Free{Object,Property,Number,ArrayFirstChunk,ArrayNonFirstChunk} to 'ecma_Dealloc'. 2014-07-16 21:17:43 +04:00
Ruben Ayrapetyan b72185696a Introducing ecma_MakeReference and ecma_FreeReference, moving ecma_OpGetIdentifierReference to libecmaoperations/ecma-reference.c. 2014-07-16 17:20:40 +04:00
Ruben Ayrapetyan 60063683aa Rename ecma_GCValue to ecma_FreeValue and move it to ecma-helpers-value.c. Introduce ecma_CopyValue. 2014-07-16 17:12:45 +04:00
Ruben Ayrapetyan ca420ea0e9 Implementing PutValue for cases:
- base is lexical environment;
      - base is undefined (unresolvable reference);

    Descripting implementation of other PutValue's cases in comments.
2014-07-16 14:41:17 +04:00
Ilmir Usmanov 0c64b78430 Merge branch 'geppetto' 2014-07-16 13:04:54 +04:00
Ilmir Usmanov 438318d788 Generate getop_* functions 2014-07-16 13:04:30 +04:00
e.gavrin 3721569d6c minor formatting fix 2014-07-16 12:47:27 +04:00
Ruben Ayrapetyan b1f9275048 Merge branch 'master' of git-server.vd:jerry 2014-07-15 21:44:21 +04:00
Ilmir Usmanov 32b4b7c869 Merge branch 'geppetto' 2014-07-15 21:42:33 +04:00
Ilmir Usmanov 87072c6088 Merge with master 2014-07-15 21:42:05 +04:00
Ruben Ayrapetyan c5cfff3d92 Adding comment to ecma_NewStandardError. 2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan 16be2ee3ab Implementing GetValue for cases:
- base is lexical environment;
  - base is undefined (unresolvable reference);

Descripting implementation of other GetValue's cases in comments.
2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan 56f731a3f2 Introducing ecma_MakeThrowValue constructor for throw completion values. 2014-07-15 21:41:47 +04:00
Ruben Ayrapetyan cdde0900e3 Introducing native ecma error types and ecma_NewStandardError interface. 2014-07-15 21:41:47 +04:00
Ilmir Usmanov 0647cdd4f1 Add bytecode generator 2014-07-15 19:32:26 +04:00
Ruben Ayrapetyan 4395da05d3 Renaming ecma_Object_t::u_Attributes to u.
Renaming ecma_CompletionValue_t:: completion_type to type, completion_value to value.
Introducing ECMA_TARGET_ID_RESERVED value of ecma_CompletionValue_t::target when it is unused.
Adding ecma_Reference_t type for ECMA-reference.
Introducing some constructors and helpers for ecma-values.
Introducing ecma_FindNamedProperty helper.
Removing ecma_SyntacticReference_t type.
Implementing ecma operation GetIdentifierReference.
Stubs and partial implementation for GetValue, SetValue, lexical environment operations (HasBinding, etc.).
2014-07-15 19:27:15 +04:00
Ruben Ayrapetyan f88fe5fae3 Moving jerry defines from CFLAGS_COMMON to DEFINES_JERRY and fixing cppcheck arguments. 2014-07-15 19:17:21 +04:00
Ruben Ayrapetyan 2615f28700 Adding JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(...) macros that allow referencing variables that are unused due to partial implementation. 2014-07-15 18:56:09 +04:00
Ruben Ayrapetyan 4ffbb5dc0c Emptying LDFLAGS_OPTIMIZE and LDFLAGS_NO_OPTIMIZE, because their current values are duplicating flags in $(CFLAGS_COMMON). 2014-07-15 15:43:16 +04:00
Ruben Ayrapetyan b4cafc2ae8 Removing *.linux.flash targets. Adding dependency from check, flash to target of an action, fix path used in flash action. Temporarily changing --error-exitcode parameter of cppcheck to 0. 2014-07-14 21:00:40 +04:00
Ruben Ayrapetyan 18a5852914 Fix src/main.c for target MCU. 2014-07-14 20:53:06 +04:00
Ruben Ayrapetyan 7a2397f235 Introducing new make targets scheme: {dev,debug,release,debug_release}.{linux,stm32f{4}}[.{check,flash}]. 2014-07-14 20:10:46 +04:00
Ruben Ayrapetyan d4b84f47a8 Fixing type conversion warnings in src/main.c and disabling warnings for third-party headers, included from that module. 2014-07-14 20:03:43 +04:00
Ruben Ayrapetyan dfb9441e8c Removed typedefs for basic int types and bool, definition of NULL from globals.h. Included <stdint.h>, <stdbool.h>, <stddef.h> in that header. 2014-07-14 19:59:29 +04:00
Ruben Ayrapetyan 63547e9f2c Change bit fields' type from uint32_t to unsigned int (because uint32_t is defined as something other than unsigned int in arm-none-eabi stdint.h; using that type for bit-fields is GCC extension). 2014-07-14 19:56:17 +04:00
Ruben Ayrapetyan c9e98171fd Remove inline attributes from src/libjsparser/lexer.c. 2014-07-14 19:53:41 +04:00
Ruben Ayrapetyan 4ca4c71c8b Fix warning about unused parameter 'opdata' in opfunc_call_1. 2014-07-14 19:51:11 +04:00
Ruben Ayrapetyan 0dd13021ae Remove usage of 'double' type. 2014-07-14 19:44:54 +04:00
Ruben Ayrapetyan 30b1a43e1e Adding memcpy, memset (for compiler usage). 2014-07-14 19:43:07 +04:00
Ruben Ayrapetyan bc83f77abe Fixing warnings and removing call to vprintf in src/libruntime/target/stm32f4/*. 2014-07-14 19:39:22 +04:00
Ruben Ayrapetyan 97a2776996 Deleting tests/jerry/*.exp. 2014-07-14 19:36:05 +04:00
Ruben Ayrapetyan 25ad63c9be Adding forgotten jerry-libc.c for linux and stm32f4 targets. 2014-07-10 22:20:31 +04:00
Ruben Ayrapetyan 5b48cb1a37 Move src/libruntime/{linux,stm32f4} to src/libruntime/target. 2014-07-10 22:17:33 +04:00
Ruben Ayrapetyan 6a27068dbd Move fatal from lexer.c to parser.c, rename it to parser_fatal, replace calls from main.c to parser_fatal with calls to jerry_Exit. 2014-07-10 22:06:09 +04:00
Ruben Ayrapetyan e6b3be5dfc jerry_Exit - exit function that under !JERRY_NDEBUG, in case status code is non-zero, prints exit status as string and calls handler of failed assertion. 2014-07-10 21:52:15 +04:00
Ruben Ayrapetyan f9ee8960c7 Move fatal from parser.c to lexer.c. 2014-07-10 21:12:26 +04:00
Ruben Ayrapetyan 224c509ff3 Merge with master. 2014-07-10 21:02:48 +04:00
Ruben Ayrapetyan c531c78b10 Setting non-zero error exit code to cppcheck and jerry_test.sh. 2014-07-10 19:46:24 +04:00
Ruben Ayrapetyan b71daa172c Enable -flto. 2014-07-10 19:46:24 +04:00
Ruben Ayrapetyan 4cb5fb646e memmove, fprintf. 2014-07-10 19:46:24 +04:00
Ruben Ayrapetyan 76e579d4e1 Remove inclusion of std headers to our headers; move fatal from src/error.h to src/libjsparser/parser.c. 2014-07-10 19:46:24 +04:00
Ruben Ayrapetyan c132f6aa3c Creating libruntime, moving jerry-libc and pretty-printer to libruntime, creating platform-dependent handlers of failed assertions. 2014-07-10 19:46:23 +04:00
Ruben Ayrapetyan 8641b79ed5 Fix type conversion warnings in unit tests for memory allocators. 2014-07-10 19:45:31 +04:00
Ilmir Usmanov 4e17a97dca Merge branch 'master' into geppetto 2014-07-10 18:09:25 +04:00
Ilmir Usmanov 1d6aac7839 Fixes in triple-address code parser, 1% tests passed 2014-07-10 18:08:52 +04:00
Ruben Ayrapetyan 74af82c983 Enable warning compilation options. 2014-07-10 14:45:40 +04:00
Ruben Ayrapetyan fa63065412 Adding libecmaoperations module that implements ECMA-262 defined operations. 2014-07-10 14:28:01 +04:00
Ilmir Usmanov 7da95ecefa Merge branch 'master' into geppetto 2014-07-10 11:27:07 +04:00
Ilmir Usmanov 99464d6ca7 Quickfix 2014-07-10 11:26:52 +04:00
Ruben Ayrapetyan c4d2c4c916 Moved definition of syntactic reference structure to ecma-refecence.h, removed ctx-reference.[ch] and ctx-manager.[ch]. 2014-07-10 11:16:23 +04:00
Ilmir Usmanov 2d4b325d24 Fix warnings 2014-07-10 11:01:40 +04:00
e.gavrin a787f17a1b Add support of stm32 in Makefile (ugly one) 2014-07-10 01:01:22 +04:00
Ilmir Usmanov 74a0f470d2 Merge branch 'master' of git-server:jerry 2014-07-09 20:03:32 +04:00
Ilmir Usmanov feddd33b00 Quickfix 2014-07-09 20:03:28 +04:00
e.gavrin 7c55a15002 uncomment assert (opcode <=4) 2014-07-09 19:58:28 +04:00
e.gavrin 80ee7731e3 Add TODO and FIXME macroses 2014-07-09 19:47:35 +04:00
Ruben Ayrapetyan aaf2bc4f41 Fix mem-heap.c, mem-poolman.c and test_poolman.c compilation for '#ifndef MEM_STATS' case. 2014-07-09 19:43:50 +04:00
Ruben Ayrapetyan 4afd54d820 Remove JERRY_NDEBUG from DEBUG_OPTIONS. 2014-07-09 19:33:48 +04:00
Ruben Ayrapetyan 1f1190a346 Move mem_GetChunkSize to mem-poolman.c from mem-poolman.h. 2014-07-09 19:24:07 +04:00
Ruben Ayrapetyan c54370bfec Remove inline from mem_GetChunkSize and mem-heap internal static functions. 2014-07-09 19:15:51 +04:00
Ruben Ayrapetyan c5d72afa79 Remove '-m32' compilation flag. Enable warning compilation options. 2014-07-09 19:12:57 +04:00
Ruben Ayrapetyan 6dc72837ba Remove ';' from JERRY_STATIC_ASSERT. 2014-07-09 19:12:41 +04:00
Ruben Ayrapetyan 0163425208 Fix JERRY_STATIC_ASSERT: add __unused attribute to defined type. 2014-07-09 19:03:42 +04:00
Ilmir Usmanov 3f39a50cc8 Merge with master 2014-07-09 18:44:59 +04:00
Ilmir Usmanov a2350cb88e Change parser to stack-only version 2014-07-09 18:05:19 +04:00
Ilmir Usmanov f46d5b440c Merge line-by-line parser 2014-07-09 16:17:42 +04:00
Ruben Ayrapetyan f31ee76c6e Compile options: -Wpedantic -> -pedantic. 2014-07-09 15:01:16 +04:00
Ruben Ayrapetyan aaf3d76cae Memory usage statistics for heap and pools. 2014-07-09 14:59:27 +04:00
e.gavrin d25d33cd58 fixes 2014-07-08 16:16:04 +04:00
e.gavrin 26f94aa6da fyxed typos 2014-07-08 16:14:27 +04:00
e.gavrin 0e6a9b7f22 fix warnings 2014-07-08 16:12:00 +04:00
e.gavrin 294d5e9754 preparation for MCU porting 2014-07-08 16:12:00 +04:00
e.gavrin 26d0824def fix warnings 2014-07-08 16:11:54 +04:00
e.gavrin 45d71fa70f fyxed typos 2014-07-08 16:11:34 +04:00
e.gavrin 3c14dee395 Merge branch 'dev_int' of git-server:jerry into dev_int 2014-07-08 15:46:47 +04:00
e.gavrin 7ef551fdde preparation for MCU porting 2014-07-08 15:45:53 +04:00
e.gavrin 68e6a6241b fix warnings 2014-07-08 15:45:47 +04:00
e.gavrin 4255c43f4a Ported remove_m32.diff by Ruben to master. 2014-07-08 15:45:00 +04:00
e.gavrin 972cd2c885 preparation for MCU porting 2014-07-08 15:43:26 +04:00
e.gavrin 480b2ebaea fix warnings 2014-07-08 13:47:33 +04:00
e.gavrin 823432664e Applied memory tests 2014-07-08 13:24:57 +04:00
e.gavrin f18a5f5e31 opcodes + refined int structure 2014-07-08 13:18:00 +04:00
e.gavrin 21db33fa97 added opcodes 2014-07-07 23:18:49 +04:00
e.gavrin 8ab8adb031 fixed 2014-07-07 11:55:10 +04:00
e.gavrin 2091bfb9e4 opcodes 2014-07-04 23:51:42 +04:00
e.gavrin aace544c55 fixed Makefile and tests, wrapped interpreter and opcodes 2014-07-04 21:34:44 +04:00
e.gavrin 7759e4b99f fixes 2014-07-04 19:08:21 +04:00
e.gavrin e3e0167249 remove output from lexer, fixes 2014-07-04 17:11:06 +04:00
e.gavrin e4122522ae tests 2014-07-04 14:20:06 +04:00
e.gavrin 6e2e50aa9f renaimings 2014-07-04 14:17:57 +04:00
e.gavrin 8fe5dcb14d add AUTHORS, docs, + several benchmarks 2014-07-04 13:06:37 +04:00
e.gavrin d3a26dc982 compacting 2014-07-03 19:45:27 +04:00
e.gavrin 052efb86a9 jmps 2014-07-03 19:22:36 +04:00
e.gavrin 7f878fd8a7 add opcodes 2014-07-03 18:37:57 +04:00
e.gavrin b05eb83966 fixed dump opcode struct 2014-07-03 18:27:49 +04:00
e.gavrin 3fde3400f4 manualy generated blinky opcodes 2014-07-03 16:23:25 +04:00
e.gavrin 1c4873f4b6 Add JSBench 2014-07-02 18:56:08 +04:00
e.gavrin eb38816fc4 new generated file + genscript + skeleton of interpreter 2014-07-02 16:42:03 +04:00
e.gavrin 604771248f renamed ecma-defs.h -> src/ecma-globals.h 2014-07-02 14:20:54 +04:00
e.gavrin 5923418e69 renamed _ -> - 2014-07-02 13:54:22 +04:00
e.gavrin 91313597c6 add memory related files 2014-07-01 21:35:20 +04:00
e.gavrin 4755260930 add generated.h with literal of js app 2014-07-01 19:23:24 +04:00
e.gavrin 6e88d76fec improve Makefile 2014-07-01 19:05:37 +04:00
e.gavrin dcde2cf705 improve Makefile 2014-07-01 19:01:52 +04:00
e.gavrin 2e64056390 add parser 2014-07-01 17:57:11 +04:00
e.gavrin 9a63527b91 add parser tests + magic 2014-07-01 17:09:17 +04:00
e.gavrin de0d6a11bc add skeleton of make_release.sh file 2014-07-01 16:07:54 +04:00
e.gavrin 1bf48a4c51 initial commit with octane 2014-07-01 15:51:35 +04:00
2715 changed files with 143617 additions and 96223 deletions
+40 -2
View File
@@ -1,2 +1,40 @@
_site
.sass-cache
# Produced files
build/*
# IDE related files
nbproject
**.sublime-project
**.sublime-workspace
.idea
# Random Trash
*.swp
*.swo
*~
core
vgcore.*
**.orig
**.directory
**.patch
.tags*
cscope.*
__pycache__
*.pyc
# ctags and ID database
tags
ID
# targets
jerry_targetjs.h
targets/mbedk64f/libjerry
targets/mbedk64f/build
targets/mbedk64f/yotta_modules
targets/mbedk64f/yotta_targets
.output
targets/esp8266/output.map
targets/esp8266/libs
# Generated documentation
docs/doxygen
+25 -8
View File
@@ -1,13 +1,30 @@
language: c
os: linux
dist: trusty
sudo: required
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tools/apt-get-install-deps.sh; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tools/apt-get-install-qemu-arm.sh; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then tools/brew-install-deps.sh; fi
install:
- wget https://raw.githubusercontent.com/${TRAVIS_REPO_SLUG}/master/tools/check-signed-off.sh
- chmod u+x check-signed-off.sh
script: ./check-signed-off.sh --gh-actions
branches:
only:
- master
- gh-pages
- /.*/
script: "python tools/run-tests.py $OPTS"
env:
- OPTS="--check-signed-off --check-cppcheck --check-vera"
- OPTS="--jerry-tests --jerry-test-suite"
- OPTS="--jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake" TIMEOUT=300
- OPTS=--buildoption-test
- OPTS=--unittests
matrix:
include:
- os: osx
env: OPTS="--jerry-tests --jerry-test-suite"
- os: osx
env: OPTS=--unittests
allow_failures:
- os: osx
-196
View File
@@ -1,196 +0,0 @@
---
layout: page
title: Getting Started
category: navbar
permalink: /getting-started/
---
* toc
{:toc}
## Setting up prerequisites
Currently, only Ubuntu 18.04+ is officially supported as primary development environment.
There are several dependencies, that should be installed manually. The following list is the absolute minimum for building:
- `gcc` or any C99-compliant compiler (native or cross, e.g., arm-none-eabi)
- `cmake` >= `2.8.12.2`
Several scripts and tools help the building and development process, thus it is recommended to have the following installed as well:
- `bash` >= `4.3.11`
- `cppcheck` >= `1.61`
- `clang-format-10` >= `10.0.0`
- `python` >= `2.7.6`
```bash
sudo apt-get install gcc gcc-arm-none-eabi cmake cppcheck clang-format-10 python
```
To make our scripts run correctly, several shell utilities should be available on the system:
- `awk`
- `bc`
- `find`
- `sed`
## Building JerryScript
**To build debug version for Linux**
```bash
python tools/build.py --debug
```
**To build debug version for Linux without LTO (Link Time Optimization)**
```bash
python tools/build.py --debug --lto=off
```
**To enable more verbose outputs for debugging**
```bash
tools/build.py --debug --logging=on --error-messages=on --line-info=on
```
**Add custom arguments to CMake**
```bash
python tools/build.py --cmake-param=CMAKE_PARAM
```
**Set a profile mode (es.next, minimal)**
```bash
python tools/build.py --profile=es.next|minimal
```
See also the related [README.md](https://github.com/jerryscript-project/jerryscript/blob/master/jerry-core/profiles/README.md).
**Use (compiler-default, external) libc**
The default libc is the compiler-default libc but you can use an external libc as well:
- compiler-default libc:
```bash
python tools/build.py
```
- external libc:
```bash
python tools/build.py --compile-flag="-nostdlib -I/path/to/ext-libc/include" --link-lib="ext-c"
```
**Add toolchain file**
The ```cmake``` dir already contains some usable toolchain files, which you can use in the following format:
```bash
python tools/build.py --toolchain=TOOLCHAIN
```
For example the cross-compile to RaspberryPi 2 is something like this:
```bash
python tools/build.py --toolchain=cmake/toolchain_linux_armv7l.cmake
```
**Use system memory allocator**
```bash
python tools/build.py --system-allocator=on
```
*Note*: System allocator is only supported on 32 bit systems.
**Enable 32bit compressed pointers**
```bash
python tools/build.py --cpointer-32bit=on
```
*Note*: There is no compression/decompression on 32 bit systems, if enabled.
**Change default heap size (512K)**
```bash
python tools/build.py --mem-heap=256
```
If you would like to use more than 512K, then you must enable the 32 bit compressed pointers.
```bash
python tools/build.py --cpointer-32bit=on --mem-heap=1024
```
*Note*: The heap size will be allocated statically at compile time, when JerryScript memory
allocator is used.
**To build with libfuzzer support**
```bash
CC=clang python tools/build.py --libfuzzer=on --compile-flag=-fsanitize=address --lto=off
```
Check the documentation of libfuzzer to get the runtime settings of the created fuzzer
binary: https://llvm.org/docs/LibFuzzer.html.
**To get a list of all the available buildoptions for Linux**
```bash
python tools/build.py --help
```
## Checking patch
```bash
python tools/run-tests.py --precommit
```
### Running only one type of test
**To run build option tests**
```bash
python tools/run-tests.py --buildoption-test
```
**To run unittests**
```bash
python tools/run-tests.py --unittests
```
**To run jerry-tests**
```bash
python tools/run-tests.py --jerry-tests
```
**To run signed-off check**
```bash
python tools/run-tests.py --check-signed-off
```
**To run cppcheck**
```bash
python tools/run-tests.py --check-cppcheck
```
**To run format check**
```bash
python tools/run-tests.py --check-format
```
**To get a list of all the available test options**
```bash
python tools/run-tests.py --help
```
-410
View File
@@ -1,410 +0,0 @@
---
layout: page
title: Configuration
category: navbar
permalink: /configuration/
---
* toc
{:toc}
# Configuration
JerryScript provides a large number of configuration options which can be used to enable or disable specific features, allowing users to fine tune the engine to best suit their needs.
A configuration option's value can be changed either by providing specific C preprocessor definitions, by adding CMake definitions, or by using the arguments of the `tools/build.py` script.
This document lists the available configuration options, shows the configuration name for C, CMake, and python, and provides a brief description that explains the effect of the options.
### Amalgamated build
Enables the amalgamated build process, which aggregates the contents of each source file per library
(i.e., JerryScript's core, port, and math libraries), and uses these combined files to compile the project.
This process can provide comparable results to link-time optimization, and can be useful when LTO is not available otherwise.
| Options | |
|---------|----------------------------------------------|
| C: | `<none>` |
| CMake: | `-DENABLE_AMALGAM=ON/OFF` |
| Python: | `--amalgam=ON/OFF` |
See also: [Amalgamated sources](#amalgamated-sources)
### Jerry debugger
Enables debugger support in the engine, which can be used to debug running JavaScript code. For more information on using the debugger see [Debugger](07.DEBUGGER.md).
The debugger is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_DEBUGGER=0/1` |
| CMake: | `-DJERRY_DEBUGGER=ON/OFF` |
| Python: | `--jerry-debugger=ON/OFF` |
### Line information
By default, all source code information is discarded after parsing is complete. This option can be used to augment the created bytecode to provide line information during runtime,
that can be used by the debugger to identify the currently executed source context. See [Debugger](07.DEBUGGER.md).
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_LINE_INFO=0/1` |
| CMake: | `-DJERRY_LINE_INFO=ON/OFF` |
| Python: | `--line-info=ON/OFF` |
### Profiles
This option can be used to enable/disable available JavaScript language features by providing profile files. Profile files contain a list of C definitions that configure each individual feature.
The `path` value for CMake and Python arguments should be a file path to the profile file, or one of `es.next` or `minimal`, which are the pre-defined profiles.
To see how a profile file should be created, or what configuration options are available in C, see the profile [README](https://github.com/jerryscript-project/jerryscript/blob/master/jerry-core/profiles/README.md).
| Options | |
|---------|----------------------------------------------|
| C: | `<see description>` |
| CMake: | `-DJERRY_PROFILE="path"` |
| Python: | `--profile="path"` |
### Promise callback
Enables Promise event notification support. This feature allows setting a user callback, which is called when certain Promise related events occur such as
creating a new Promise, resolving a Promise with a value, etc.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_PROMISE_CALLBACK=0/1` |
| CMake: | `-DJERRY_PROMISE_CALLBACK=ON/OFF` |
| Python: | `--promise-callback=ON/OFF` |
### External context
Enables external context support in the engine. By default, JerryScript uses a statically allocated context to store the current state of the engine internals.
When this option is enabled, an externally allocated memory region can be provided through the port API to the engine, to be used as the context.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_EXTERNAL_CONTEXT=0/1` |
| CMake: | `-DJERRY_EXTERNAL_CONTEXT=ON/OFF` |
| Python: | `--external-context=ON/OFF` |
### Snapshot execution
This option can be used to enable snapshot execution in the engine.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_SNAPSHOT_EXEC=0/1` |
| CMake: | `-DJERRY_SNAPSHOT_EXEC=ON/OFF` |
| Python: | `--snapshot-exec=ON/OFF` |
### Snapshot saving
This option can be used to enable snapshot saving in the engine.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_SNAPSHOT_SAVE=0/1` |
| CMake: | `-DJERRY_SNAPSHOT_SAVE=ON/OFF` |
| Python: | `--snapshot-save=ON/OFF` |
### Jerry parser
This option can be used to enable or disable the parser. When the parser is disabled all features that depend on source parsing are unavailable (eg. `jerry_parse`, `eval`, Function constructor).
This option can be useful in combination with the snapshot feature. The parser is enabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_PARSER=0/1` |
| CMake: | `-DJERRY_PARSER=ON/OFF` |
| Python: | `--js-parser=ON/OFF` |
### Dump bytecode
This option can be used to display created bytecode in a human readable format. See [Internals](04.INTERNALS.md#byte-code) for more details.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_PARSER_DUMP_BYTE_CODE=0/1` |
| CMake: | `-DJERRY_PARSER_DUMP_BYTE_CODE=ON/OFF` |
| Python: | `--show-opcodes=ON/OFF` |
### Dump RegExp bytecode
This option can be used to display created RegExp bytecode in a human readable format. The RegExp bytecode is different from the bytecode used by the virtual machine.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_REGEXP_DUMP_BYTE_CODE=0/1` |
| CMake: | `-DJERRY_REGEXP_DUMP_BYTE_CODE=ON/OFF` |
| Python: | `--show-regexp-opcodes=ON/OFF` |
### Strict RegExp
This option can be used to enable strict RegExp mode. The standard RegExp syntax is a lot stricter than what is common in current JavaScript implementations.
When enabled, this flag disables all of the non-standard, quality-of-life RegExp features, that are implemented to provide compatibility with other commonly used engines.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_REGEXP_STRICT_MODE=0/1` |
| CMake: | `-DJERRY_REGEXP_STRICT_MODE=ON/OFF` |
| Python: | `--regexp-strict-mode=ON/OFF` |
### Error messages
Enables error messages for thrown Error objects. By default, error messages are omitted to reduce memory usage.
Enabling this feature provides detailed error messages where available, like line information for Syntax errors, variable names for Reference errors, Type/Range error messages for built-in routines, etc.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_ERROR_MESSAGES=0/1` |
| CMake: | `-DJERRY_ERROR_MESSAGES=ON/OFF` |
| Python: | `--error-messages=ON/OFF` |
### Logging
This option can be used to enable log messages during runtime. When enabled the engine will use the `jerry_port_log` port API function to print relevant log messages.
This feature is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_LOGGING=0/1` |
| CMake: | `-DJERRY_LOGGING=ON/OFF` |
| Python: | `--logging=ON/OFF` |
### LCache
This option enables the LCache, allowing faster access to object properties. The LCache uses a statically allocated hash-map, which increases memory consumption.
See [Internals](04.INTERNALS.md#lcache) for further details.
This option is enabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_LCACHE=0/1` |
| CMake: | `<none>` |
| Python: | `<none>` |
### Property hashmaps
This option enables the creation of hashmaps for object properties, which allows faster property access, at the cost of increased memory consumption.
See [Internals](04.INTERNALS.md#property-hashmap) for further details.
This option is enabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_PROPERTY_HASHMAP=0/1` |
| CMake: | `<none>` |
| Python: | `<none>` |
### Memory statistics
This option can be used to provide memory usage statistics either upon engine termination, or during runtime using the `jerry_heap_stats` jerry API function.
The feature can create a significant performance overhead, and should only be used for measurement purposes. This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_MEM_STATS=0/1` |
| CMake: | `-DJERRY_MEM_STATS=ON/OFF` |
| Python: | `--mem-stats=ON/OFF` |
### Heap size
This option can be used to adjust the size of the internal heap, represented in kilobytes. The provided value should be an integer. Values larger than 512 require 32-bit compressed pointers to be enabled.
The default value is 512.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_GLOBAL_HEAP_SIZE=(int)` |
| CMake: | `-DJERRY_GLOBAL_HEAP_SIZE=(int)` |
| Python: | `--mem-heap=(int)` |
### Garbage collection limit
This option can be used to adjust the maximum allowed heap usage increase until triggering the next garbage collection, in bytes.
When the total allocated memory size reaches the current gc limit, garbage collection will be triggered to try and reduce clutter from unreachable objects.
If the total allocated memory can't be reduced below the current limit, then the limit will be increased by the amount specified via this option.
Similarly, when the total allocated memory goes well below the current gc limit, the limit is reduced by this amount.
The default value is 1/32 of the total heap size, but not greater than 8192 bytes.
A value of 0 will use the default value.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_GC_LIMIT=(int)` |
| CMake: | `-DJERRY_GC_LIMIT=(int)` |
| Python: | `--gc-limit=(int)` |
### GC mark recursion limit
This option can be used to adjust the maximum recursion depth during the GC mark phase. The provided value should be an integer, which represents the allowed number of recursive calls. Increasing the depth of the recursion reduces the time of GC cycles, however increases stack usage.
A value of 0 will prevent any recursive GC calls.
| Options | |
|---------|---------------------------------------------------|
| C: | `-DJERRY_GC_MARK_LIMIT=(int)` |
| CMake: | `-DJERRY_GC_MARK_LIMIT=(int)` |
| Python: | `--gc-mark-limit=(int)` |
### Stack limit
This option can be used to cap the stack usage of the engine, and prevent stack overflows due to recursion. The provided value should be an integer, which represents the allowed stack usage in kilobytes.
The default value is 0 (unlimited).
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_STACK_LIMIT=(int)` |
| CMake: | `-DJERRY_STACK_LIMIT=(int)` |
| Python: | `--stack-limit=(int)` |
### 32-bit compressed pointers
Enables 32-bit pointers instead of the default 16-bit compressed pointers. This allows the engine to use a much larger heap, but also comes with slightly increased memory usage, as objects can't be packed as tightly.
This option must be enabled when using the system allocator.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_CPOINTER_32_BIT=0/1` |
| CMake: | `-DJERRY_CPOINTER_32_BIT=ON/OFF` |
| Python: | `--cpointer-32bit=ON/OFF` |
### System allocator
This option enables the use of malloc/free instead of the internal JerryScript allocator. This feature requires 32-bit compressed pointers, and is unsupported on 64-bit architectures.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_SYSTEM_ALLOCATOR=0/1` |
| CMake: | `-DJERRY_SYSTEM_ALLOCATOR=ON/OFF` |
| Python: | `--system-allocator=ON/OFF` |
### Valgrind support
This option enables valgrind support for the internal allocator. When enabled, valgrind will be able to properly identify allocated memory regions, and report leaks or out-of-bounds memory accesses.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_VALGRIND=0/1` |
| CMake: | `-DJERRY_VALGRIND=ON/OFF` |
| Python: | `--valgrind=ON/OFF` |
### Memory stress test
This option can be used to stress test memory management, by running garbage collection before every allocation attempt.
This option is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_MEM_GC_BEFORE_EACH_ALLOC=0/1` |
| CMake: | `-DJERRY_MEM_GC_BEFORE_EACH_ALLOC=ON/OFF` |
| Python: | `--mem-stress-test=ON/OFF` |
### MSVC CRT
This option enables the use of the MSVC CRT library and is disabled by default.
| Options | |
|---------|----------------------------------------------|
| C: | `<none>` |
| CMake: | `-DENABLE_STATIC_CRT=ON/OFF` |
| Python: | `--static-crt=ON/OFF` |
### Architecture
Specify the platform name if it is supported by the generator.
| Options | |
|---------|----------------------------------------------|
| C: | `<none>` |
| CMake: | `-A (string)` |
| Python: | `--arch=(string)` |
### Tostring function
Enable function toString.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_FUNCTION_TO_STRING=0/1` |
| CMake: | `-DJERRY_FUNCTION_TO_STRING=ON/OFF` |
| Python: | `--function-to-string=ON/OFF` |
### VM throw
Enable VM throw.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_VM_THROW=0/1` |
| CMake: | `-DJERRY_VM_THROW=ON/OFF` |
| Python: | `--vm-throw=ON/OFF` |
### Promise callback
Enable Promise callback.
| Options | |
|---------|----------------------------------------------|
| C: | `-DJERRY_PROMISE_CALLBACK=0/1` |
| CMake: | `-DJERRY_PROMISE_CALLBACK=ON/OFF` |
| Python: | `--promise-callback=ON/OFF` |
# Amalgamated sources
The sources of JerryScript can be combined into a handful of files to allow their easy integration
in other projects. To achieve this, the following command can be executed to create a set of files
into the `amalgam` directory:
```sh
$ python tools/amalgam.py --output-dir amalgam --jerry-core --jerry-port --jerry-math
```
(Note: In the example above, the command is executed from the project's root directory, but that is
not mandatory.)
The command creates the following files in the `amalgam` dir:
* `jerryscript.c`
* `jerryscript.h`
* `jerryscript-config.h`
* `jerryscript-port.c`
* `jerryscript-math.c`
* `math.h`
**Important**: the `jerryscript-config.h` contains the configurations mentioned above and
should be adapted to the required use-case. See the file contents for more details and for the
default configuration. (Note: This config file is created from the the `jerry-core/config.h` file.)
These files can be directly compiled with an application using the JerryScript API.
E.g., using a command similar to the one below:
```sh
$ gcc -Wall -o demo_app demo_app.c amalgam/jerryscript.c amalgam/jerryscript-port.c amalgam/jerryscript-math.c -Iamalgam/
```
(Note: The headers must be available on the include path.)
This approach is also under the hood of the [amalgamated build](#amalgamated-build) process.
# Target specific information
## x86 with GCC
When building for Intel 32 bit architecture it is possible that GCC uses conservative options, thus assuming the most
basic floating-point support (that is it does not generate SSE or others instructions).
However this could lead to loss off precision and/or different results than what is required by the JavaScript standard
in regards of floating-point values and arithmetic.
To resolve this precision problem it is advised to use at least SSE2.
To do this with GCC please provide the `-mfpmath=sse -msse2` options during build.
These options can also be specified via the `build.py` script:
```sh
$ ./tools/build.py --compile-flag=-mfpmath=sse --compile-flag=-msse2 --compile-flag=-m32
```
-13674
View File
File diff suppressed because it is too large Load Diff
-1088
View File
File diff suppressed because it is too large Load Diff
-286
View File
@@ -1,286 +0,0 @@
---
layout: page
title: Port API
category: documents
permalink: /port-api/
---
* toc
{:toc}
# Reference
## Process management
It is questionable whether a library should be able to terminate an application. Any API function can signal an error (ex.: cannot allocate memory), so the engine use the termination approach with this port function.
```c
/**
* Init the program
*/
void jerry_port_init (void);
```
```c
/**
* Signal the port that jerry experienced a fatal failure from which it cannot
* recover.
*
* @param code gives the cause of the error.
*
* Note:
* Jerry expects the function not to return.
*
* Example: a libc-based port may implement this with exit() or abort(), or both.
*/
void jerry_port_fatal (jerry_fatal_code_t code);
```
Error codes
```c
typedef enum
{
JERRY_FATAL_OUT_OF_MEMORY = 10,
JERRY_FATAL_REF_COUNT_LIMIT = 12,
JERRY_FATAL_DISABLED_BYTE_CODE = 13,
JERRY_FATAL_UNTERMINATED_GC_LOOPS = 14,
JERRY_FATAL_FAILED_ASSERTION = 120
} jerry_fatal_code_t;
```
```c
/**
* Makes the process sleep for a given time.
*
* Note:
* This port function is called by jerry-core when JERRY_DEBUGGER is set to 1.
* Otherwise this function is not used.
*
* @param sleep_time milliseconds to sleep.
*/
void jerry_port_sleep (uint32_t sleep_time);
```
## External context
Allows the user to provide external buffer for isolated engine contexts, so that user
can configure the heap size at runtime and run multiple JS applications
simultaneously.
```c
/**
* Allocate a new context for the engine.
*
* This port function is called by jerry_init when JERRY_EXTERNAL_CONTEXT is enabled. Otherwise this function is not
* used. The engine will pass the size required for the context structure. An implementation must make sure to
* allocate at least this amount.
*
* Excess allocated space will be used as the engine heap when jerryscript is configured to use it's internal allocator,
* this can be used to control the internal heap size.
*
* NOTE: The allocated memory must be pointer-aligned, otherwise the behavior is
* undefined.
*
* @param context_size: the size of the internal context structure
*
* @return total size of the allocated buffer
*/
size_t jerry_port_context_alloc (size_t context_size);
```
```c
/**
* Get the currently active context of the engine.
*
* This port function is called by jerry-core when JERRY_EXTERNAL_CONTEXT is enabled.
* Otherwise this function is not used.
*
* @return the pointer to the currently used engine context.
*/
struct jerry_context_t *jerry_port_context_get (void);
```
```c
/**
* Free the currently used context.
*
* This port function is called by jerry_cleanup when JERRY_EXTERNAL_CONTEXT is enabled.
* Otherwise this function is not used.
*
* @return the pointer to the engine context.
*/
void jerry_port_context_free (void);
```
## I/O
```c
/**
* Display or log a debug/error message.
*
* The message is passed as a zero-terminated string. Messages may be logged in parts, which
* will result in multiple calls to this functions. The implementation should consider
* this before appending or prepending strings to the argument.
*
* This function is called with messages coming from the jerry engine as
* the result of some abnormal operation or describing its internal operations
* (e.g., data structure dumps or tracing info).
*
* The implementation can decide whether error and debug messages are logged to
* the console, or saved to a database or to a file.
*/
void jerry_port_log (const char *message_p);
```
```c
/**
* Print a buffer to standard output
*
* This port function is never called from jerry-core directly, it is only used by jerry-ext components to print
* information.
*
* @param buffer_p: input buffer
* @param buffer_size: data size
*/
void jerry_port_print_buffer (const jerry_char_t *buffer_p, jerry_size_t buffer_size);
```
```c
/**
* Read a line from standard input.
*
* The implementation should allocate storage necessary for the string. The result string should include the ending line
* terminator character(s) and should be zero terminated.
*
* An implementation may return NULL to signal that the end of input is reached, or an error occured.
*
* When a non-NULL value is returned, the caller will pass the returned value to `jerry_port_line_free` when the line is
* no longer needed. This can be used to finalize dynamically allocated buffers if necessary.
*
* This port function is never called from jerry-core directly, it is only used by some jerry-ext components that
* require user input.
*
* @param out_size_p: size of the input string in bytes, excluding terminating zero byte
*
* @return pointer to the buffer storing the string,
* or NULL if end of input
*/
jerry_char_t *jerry_port_line_read (jerry_size_t *out_size_p);
```
```c
/**
* Free a line buffer allocated by jerry_port_line_read
*
* @param buffer_p: buffer returned by jerry_port_line_read
*/
void jerry_port_line_free (jerry_char_t *buffer_p);
```
## Filesystem
```
/**
* Canonicalize a file path.
*
* If possible, the implementation should resolve symbolic links and other directory references found in the input path,
* and create a fully canonicalized file path as the result.
*
* The function may return with NULL in case an error is encountered, in which case the calling operation will not
* proceed.
*
* The implementation should allocate storage for the result path as necessary. Non-NULL return values will be passed
* to `jerry_port_path_free` when the result is no longer needed by the caller, which can be used to finalize
* dynamically allocated buffers.
*
* NOTE: The implementation must not return directly with the input, as the input buffer is released after the call.
*
* @param path_p: zero-terminated string containing the input path
* @param path_size: size of the input path string in bytes, excluding terminating zero
*
* @return buffer with the normalized path if the operation is successful,
* NULL otherwise
*/
jerry_char_t *jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size);
```
```c
/**
* Free a path buffer returned by jerry_port_path_normalize.
*
* @param path_p: the path buffer to free
*/
void jerry_port_path_free (jerry_char_t *path_p);
```
```c
/**
* Get the offset of the basename component in the input path.
*
* The implementation should return the offset of the first character after the last path separator found in the path.
* This is used by the caller to split the path into a directory name and a file name.
*
* @param path_p: input zero-terminated path string
*
* @return offset of the basename component in the input path
*/
jerry_size_t jerry_port_path_base (const jerry_char_t *path_p);
```
```c
/**
* Open a source file and read its contents into a buffer.
*
* When the source file is no longer needed by the caller, the returned pointer will be passed to
* `jerry_port_source_free`, which can be used to finalize the buffer.
*
* @param file_name_p: Path that points to the source file in the filesystem.
* @param out_size_p: The opened file's size in bytes.
*
* @return pointer to the buffer which contains the content of the file.
*/
jerry_char_t *jerry_port_source_read (const char *file_name_p, jerry_size_t *out_size_p);
```
```c
/**
* Free a source file buffer.
*
* @param buffer_p: buffer returned by jerry_port_source_read
*/
void jerry_port_source_free (jerry_char_t *buffer_p);
```
## Date
```c
/**
* Get local time zone adjustment in milliseconds for the given input time.
*
* The argument is a time value representing milliseconds since unix epoch.
*
* Ideally, this function should satisfy the stipulations applied to LocalTZA
* in section 21.4.1.7 of the ECMAScript version 12.0, as if called with isUTC true.
*
* This port function can be called by jerry-core when JERRY_BUILTIN_DATE is enabled.
* Otherwise this function is not used.
*
* @param unix_ms: time value in milliseconds since unix epoch
*
* @return local time offset in milliseconds applied to UTC for the given time value
*/
int32_t jerry_port_local_tza (double unix_ms);
```
```c
/**
* Get the current system time in UTC.
*
* This port function is called by jerry-core when JERRY_BUILTIN_DATE is enabled.
* It can also be used in the implementing application to initialize the random number generator.
*
* @return milliseconds since Unix epoch
*/
double jerry_port_current_time (void);
```
-186
View File
@@ -1,186 +0,0 @@
---
layout: page
title: Reference Counting
category: documents
permalink: /reference-counting/
---
* toc
{:toc}
## Reference counting in JerryScript
In JerryScript all `jerry_value_t` values are independent
references to internal objects. Values returned by JerryScript
API functions are always live references and must be released
by `jerry_value_free`.
```c
jerry_value_t global = jerry_current_realm ();
/* The value stored in the 'global' variable contains a live
* reference to the global object. The system also keeps its
* own live reference to the global object. These two references
* are independent, and both must be destroyed before the global
* object can be freed. */
jerry_value_free (global);
/* Without jerry_value_free() the global object will not
* be freed even by jerry_cleanup(). After the reference
* is released it becomes a dead reference and cannot be
* used anymore. */
```
Multiple references might refer to the same internal object
even though their `jerry_value_t` representation might be different.
```c
jerry_value_t pi_ref1 = jerry_number (3.14);
jerry_value_t pi_ref2 = jerry_value_copy (pi_ref1);
/* Both pi_ref1 and pi_ref2 refer to the same 3.14 value
* although they might not be equal in C (pi_ref1 != pi_ref2). */
/* Both references must be released. */
jerry_value_free (pi_ref1);
jerry_value_free (pi_ref2);
```
Releasing the same `jerry_value_t` twice to release two live
references is not allowed and it might cause crashes. Hence the
following code is an **INCORRECT WAY** of releasing the 3.14 value.
```c
jerry_value_free (pi_ref1);
jerry_value_free (pi_ref1);
```
JerryScript API functions returning with a `jerry_value_t` always
return with a new live reference. Passing a `jerry_value_t` to
an API function never releases its reference (unless explicitly
stated in the documentation). The next example shows this
behaviour through property getting and setting.
```c
jerry_value_t prop_value = jerry_object_get (...);
/* The prop_value must be released later because both the base
* object and the prop_value have an independent reference to
* the same JavaScript value. When the operation fails, the
* prop_value contains a live reference to an error object.
* This reference must be released as well. */
if (jerry_value_is_exception (prop_value))
{
/* Errors can be handled here. */
}
else
{
/* The application has a live reference to the property
* value even if the base object is freed by the garbage
* collector. */
}
/* The prop_value must be released. */
jerry_value_free (prop_value);
/* Property setting is the same. */
jerry_value_t new_prop_value = jerry_number (2.718);
jerry_value_t result = jerry_object_set (..., new_prop_value);
/* If the property set is successful, a new reference is created
* for the value referenced by new_prop_value. The new_prop_value
* reference must be released regardless of whether the operation
* is successful. */
/* The new_prop_value can be passed to other JerryScript API
* functions before the jerry_value_free () call. */
jerry_value_free (new_prop_value);
/* The reference stored in the 'result' variable is live whether
* the operation is successful or not, and must also be freed. */
if (jerry_value_is_exception (result))
{
/* Errors can be handled here. */
}
else
{
/* A reference to a true primitive value is returned. */
}
jerry_value_free (result);
```
The simplest form of setting a property without error checking
is the following:
```c
/* There are no 'ifs' in this snippet. */
jerry_value_free (jerry_object_set (..., new_prop_value));
jerry_value_free (new_prop_value);
```
The reference returned by a `jerry_external_handler_t` callback
transfers the ownership of the live reference. Otherwise the
referenced object could be freed by the garbage collector.
```c
jerry_value_t my_external_handler (const jerry_value_t function_obj,
const jerry_value_t this_val,
const jerry_value_t args_p[],
const jerry_length_t args_count
{
/* Do not release function_obj, this_val, and args_p because
* these references are automatically released after the handler
* is returned. This approach reduces code size which is useful
* on embedded systems. However you can create other references
* to them by calling jerry_value_copy () if needed. */
/* Since the ownership of the reference is transferred to the
* caller the following snippet is valid. */
/* If the value to be returned is needed for other purposes the
* jerry_value_copy () can be used to create new references. */
return jerry_string (...);
}
```
Duplicating a `jerry_value_t` in C does not create another live reference.
```c
jerry_value_t undef = jerry_undefined ();
jerry_value_t undef2 = undef;
/* Releasing either undef or undef2 is valid but not both.
* After the release both references become dead (invalid). */
jerry_value_free (undef2);
/* Dead references can be reassigned again. */
undef = jerry_boolean (true);
```
References can be duplicated in C as long as only one of them is freed.
```c
jerry_value_t a = jerry_boolean (true);
jerry_value_t b = a;
jerry_value_t c = a;
/* A new reference is assigned to 'a'. */
a = jerry_boolean (false);
[...]
jerry_value_free (a);
/* The 'a' (boolean false) reference becomes dead (invalid). */
jerry_value_free (c);
/* Both 'b' and 'c' (boolean true) references become dead. */
/* Since all references are released, no memory leak occurs. */
```
-425
View File
@@ -1,425 +0,0 @@
---
layout: page
title: Debugger
category: documents
permalink: /debugger/
---
* toc
{:toc}
## JerryScript debugger interface
JerryScript provides a remote debugger which allows debugging
JavaScript programs. The debugger has two main components:
a server which is part of the JerryScript binary and a
separate client application. Currently a Python-based debugger
client is available in the /jerry-debugger subdirectory.
This simple application demonstrates the communication protocol
between the client and server, and can be reused by integrated
development environments.
## Setting up the debugger server
The following arguments must be passed to `tools/build.py`:
`--jerry-debugger=on`
The transport layer of the communication protocol is pluggable.
At the moment, a WebSocket-based implementation is provided as a
JerryScript extension, which transmits messages over TCP/IP networks.
If necessary/implemented, any reliable stream or datagram based
protocol can be used for transmitting debugger messages.
## Debugging JavaScript applications
The debugger client must be connected to the server before the
JavaScript application runs. On-the-fly attachment is supported
for more than one file, right after the engine initialization
(this feature is available with the python client). The debugging
information (e.g. line index of each possible breakpoint location)
is not preserved by JerryScript. The client is expected to be run
on a system with much more resources and it should be capable of
storing this information. JerryScript frees all debug information
after it is transmitted to the client to save memory.
The following argument makes JerryScript wait for a client
connection:
`--start-debug-server`
The following argument makes JerryScript wait for a client
source code:
`--debugger-wait-source`
It is also recommended to increase the log level to see
the *Waiting for client connection* message:
`--log-level 2`
The Python client can connect to the server by specifying its
IP address on the command line. The address can be localhost
if the server and the client are running on the same machine.
After the connection is established the execution can be
controlled by the debugger. The debugger always stops at
the first possible breakpoint location. The effect is the
same as using the `stop` command. This allows inserting
breakpoints right before the meaningful part of the execution
starts.
All available commands of the client can be queried by the
`help` command.
## Integrating debugger support into applications using JerryScript
When using the extension-provided WebSocket transport layer, the
debugger can be enabled by calling `jerryx_debugger_after_connect
(jerryx_debugger_tcp_create (debug_port) && jerryx_debugger_ws_create ())`
after the `jerry_init ()` function. It initializes the debugger and
blocks until a client connects.
(Custom transport layers may be implemented and initialized similarly.
Currently, `jerryx_debugger_rp_create ()` for raw packet transport layer and
`jerryx_debugger_serial_create (const char* config)` for serial protocol
are also available.)
The source name provided to `jerry_parse ()` is used by the client
to identify the source name of the source code. This source name
is usually a file name.
## JerryScript debugger C-API interface
The following section describes the debugger functions
available to the host application.
## JerryScript debugger types
## jerry_debugger_wait_for_source_callback_t
**Summary**
This callback function is called by
[jerry_debugger_wait_for_client_source](#jerry_debugger_wait_for_client_source)
when a source code is received successfully.
**Prototype**
```c
typedef jerry_value_t
(*jerry_debugger_wait_for_source_callback_t) (const jerry_char_t *source_name_p,
size_t source_name_size,
const jerry_char_t *source_p,
size_t source_size,
void *user_p);
```
- `source_name_p` - source (usually a file) name of the source code
- `source_name_size` - size of source name
- `source_p` - source code character data
- `source_size` - size of source code
- `user_p` - custom pointer passed to [jerry_debugger_wait_for_client_source](#jerry_debugger_wait_for_client_source)
## JerryScript debugger functions
### jerry_debugger_is_connected
**Summary**
Returns true if a remote debugger client is connected.
**Prototype**
```c
bool
jerry_debugger_is_connected (void);
```
**Example**
[doctest]: # (test="link")
```c
#include <stdio.h>
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
if (jerry_debugger_is_connected ())
{
printf ("A remote debugger client is connected.");
}
jerry_cleanup ();
}
```
### jerry_debugger_stop
**Summary**
Stops execution at the next available breakpoint if a remote
debugger client is connected and the engine is not waiting at
a breakpoint. The engine will stop regardless the breakpoint
is enabled or not.
**Prototype**
```c
void
jerry_debugger_stop (void)
```
**Example**
[doctest]: # (test="link")
```c
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
jerry_debugger_stop ();
jerry_cleanup ();
}
```
**See also**
- [jerry_debugger_continue](#jerry_debugger_continue)
### jerry_debugger_continue
**Summary**
If the engine would stop at the next available breakpoint it
cancels this effect. The engine will still stop at enabled
breakpoints. This function effectively negates the effect of
[jerry_debugger_stop ()](#jerry_debugger_stop) calls or stop
requests issued by the debugger client.
**Prototype**
```c
void
jerry_debugger_continue (void)
```
**Example**
[doctest]: # (test="link")
```c
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
jerry_debugger_continue ();
jerry_cleanup ();
}
```
**See also**
- [jerry_debugger_stop](#jerry_debugger_stop)
### jerry_debugger_stop_at_breakpoint
**Summary**
Enables or disables stopping at breakpoints. When stopping is
disabled all breakpoints are ignored including user enabled
breakpoints. This allows hidden execution of ECMAScript code.
**Prototype**
```c
void
jerry_debugger_stop_at_breakpoint (bool enable_stop_at_breakpoint)
```
- `enable_stop_at_breakpoint` - enable (=`true`) or disable (=`false`) stopping at breakpoints
**Example**
[doctest]: # (test="link")
```c
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
jerry_debugger_stop_at_breakpoint (true);
// Protected execution of JavaScript code.
const jerry_char_t script[] = "42";
jerry_eval (script, sizeof (script) - 1, JERRY_PARSE_NO_OPTS);
jerry_debugger_stop_at_breakpoint (false);
jerry_cleanup ();
}
```
### jerry_debugger_wait_for_client_source
**Summary**
Asks the client to provide the next source code. The function
waits until the whole source code is received. As a reply the
the client may request a context reset or notify that no more
source is available. These notifications are passed back as the
return value of the function.
**Prototype**
```c
jerry_debugger_wait_for_source_status_t
jerry_debugger_wait_for_client_source (jerry_debugger_wait_for_source_callback_t callback_p,
void *user_p,
jerry_value_t *return_value)
```
**Example**
[doctest]: # (test="link")
```c
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
/**
* Runs the source code received by jerry_debugger_wait_for_client_source.
*/
static jerry_value_t
wait_for_source_callback (const jerry_char_t *source_name_p, /**< source name */
size_t source_name_size, /**< size of source name */
const jerry_char_t *source_p, /**< source code */
size_t source_size, /**< source code size */
void *user_p /**< user pointer */)
{
(void) user_p;
jerry_parse_options_t parse_options;
parse_options.options = JERRY_PARSE_HAS_SOURCE_NAME;
parse_options.source_name = jerry_string ((const jerry_char_t *) source_name_p,
(jerry_size_t) source_name_size,
JERRY_ENCODING_UTF8);
jerry_value_t ret_val = jerry_parse (source_p,
source_size,
&parse_options);
jerry_value_free (parse_options.source_name);
if (!jerry_value_is_exception (ret_val))
{
jerry_value_t func_val = ret_val;
ret_val = jerry_run (func_val);
jerry_value_free (func_val);
}
return ret_val;
} /* wait_for_source_callback */
int
main (void)
{
jerry_debugger_wait_for_source_status_t receive_status;
do
{
/* Create a new JerryScript instance when a context reset is
* received. Applications usually registers their core bindings
* here as well (e.g. print, setTimeout). */
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
do
{
jerry_value_t run_result;
receive_status = jerry_debugger_wait_for_client_source (wait_for_source_callback,
NULL,
&run_result);
jerry_value_free (run_result);
}
while (receive_status == JERRY_DEBUGGER_SOURCE_RECEIVED);
jerry_cleanup ();
}
while (receive_status == JERRY_DEBUGGER_CONTEXT_RESET_RECEIVED);
if (receive_status == JERRY_DEBUGGER_SOURCE_RECEIVE_FAILED)
{
// Handle the failure (e.g. display an error).
}
return 0;
}
```
### jerry_debugger_send_output
**Summary**
Sends the program's output to the debugger client.
**Prototype**
```c
void
jerry_debugger_send_output (const jerry_char_t *buffer, jerry_size_t str_size)
```
**Example**
[doctest]: # (test="link")
```c
#include "jerryscript.h"
#include "jerryscript-ext/debugger.h"
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_debugger_after_connect (jerryx_debugger_tcp_create (5001)
&& jerryx_debugger_ws_create ());
jerry_char_t my_output[] = "Hey, this should be sent too!";
jerry_size_t my_output_size = sizeof (my_output);
jerry_debugger_send_output (my_output, my_output_size);
jerry_cleanup ();
}
```
-813
View File
@@ -1,813 +0,0 @@
---
layout: page
title: Coding Standards
category: documents
permalink: /coding-standards/
---
* toc
{:toc}
# JerryScript Coding Standards
This text is a brief overview of JerryScript Coding Standards.
Each rule starts with a short description followed by several
examples. We believe examples are better than long explanations.
Please follow these guidelines when you submit a patch for
review.
## General rules
* Indentation is two spaces.
* Tab characters are not allowed.
* Maximum line length is 120 characters (excluding newline).
* No trailing white space is allowed.
* Run `tools/run-tests.py --check-format` to check several
of the coding conventions automatically.
## Comments
Only block comments (`/* */`) are allowed in JerryScript.
Comments should be complete sentences (e.g. start with an
upper case letter), except for return value, field and
argument descriptions (see the exceptions below). The
text part of a comment should focus on explaining *why*
the code is doing something rather than *what* the code
is doing.
```diff
+++ Good +++
```
```c
/* A perfect comment. */
/* A perfect multiline
* comment. Each line should
* start with an asterisk. */
```
```diff
--- Bad ---
```
```c
// Double slash comments are not allowed.
/* not a complete sentence */
/* A bad multiline
comment. */
```
All types, constants and functions require a description in
JerryScript. These comments should start with `/**`. The starting
`/**` and ending `*/` must be on separate lines.
```diff
+++ Good +++
```
```c
/**
* A correct description.
*/
```
```diff
--- Bad ---
```
```c
/** An incorrect description. */
```
## Preprocessor defines
The name of a preprocessor macro must be an uppercase string
and these macros must be preceded by a description.
Abbreviations are allowed but not preferred in new code.
```diff
+++ Good +++
```
```c
/**
* Short description about the constant.
*/
#define JERRY_VALUE_SEVEN 7
/**
* Short description about the macro function.
*/
#define JERRY_ADD_TWO_NUMBERS(arg1, arg2) \
((arg1) + (arg2))
/**
* Although this is correct, a reviewer might request
* to change NUMS to NUMBERS. Hence it is recommended
* to use NUMBERS in the first place.
*/
#define JERRY_ADD_TWO_NUMS(arg1, arg2) \
((arg1) + (arg2))
```
```diff
--- Bad ---
```
```c
#define JERRY_CONSTANT_WITHOUT_DESCRIPTION 5
#define JeRrY_mIxEd_CaSe_NaMe "str"
```
## Conditional preprocessor directives
A comment is required after `#else` and `#endif` in JerryScript.
The defined keyword should be omitted from these comments.
```diff
+++ Good +++
```
```c
#ifdef JERRY_A
#else /* !JERRY_A */
#endif /* JERRY_A */
#ifdef JERRY_A
#if defined JERRY_B && defined JERRY_C && (JERRY_C > 6)
#else /* !(JERRY_B && JERRY_C && (JERRY_C > 6)) */
#endif /* JERRY_B && JERRY_C && (JERRY_C > 6) */
#endif /* JERRY_A */
```
```diff
--- Bad ---
```
```c
#ifdef JERRY_A
#endif
#ifdef JERRY_A
#endif /* defined JERRY_A */
#ifdef JERRY_B
/* Missing comment after else. */
#else
#endif /* JERRY_B */
```
## Code blocks
Each code block must be enclosed in curly braces even
if it is a single line statement. These braces must
be on separate lines. There must be a single space
before the opening parenthesis of the expression
after if/while/switch keywords.
```diff
+++ Good +++
```
```c
if (value > 6)
{
function_call ();
}
if (value > 1)
{
function_call_a ();
}
else
{
function_call_b ();
}
do
{
function_call ();
value++;
}
while (value < 6);
switch (value)
{
case A:
{
/* FALLTHRU comment is allowed if a
* switch-case is not terminated by
* break/continue/return. */
/* FALLTHRU */
}
case B:
case C:
{
break;
}
case D:
{
/* We can use continue if we are in a loop. */
continue;
}
default:
{
return;
}
}
```
```diff
--- Bad ---
```
```c
if (value > 6)
function_call_a ();
else
function_call_b ();
if (value > 6) {
function_call_a ();
}
if (value > 6) function_call_a ();
else { function_call_b (); }
if
(value > 6)
{
}
switch (value) {
case 0: break;
default: {
return 5;
}
}
switch (value)
{
case A:
{
if (value > 6)
{
CASE B:
{
/* This is allowed in C but
* not in JerryScript. */
break;
}
}
}
}
do
value++;
while (value < 5);
do {
value++;
} while (value < 5);
do
{
value++;
} while (value < 5);
```
## Newlines
A newline in JerryScript is a separator which separates different
parts of the source code. Its primary purpose is to improve
readability. Unlike other rules developers have some freedom
to add newlines to their code. However there are some rules.
* Only a single newline separator is allowed.
* Source files must be terminated by a newline.
* Global declarations must be separated by a newline.
* Newlines are not allowed after an opening curly brace or before
a closing curly brace
* No newlines are allowed between control statements (if-else, while,
for, switch, etc.) and their code blocks.
* There should be a newline after the variable declarations
if they are the first statements of a block.
```diff
+++ Good +++
```
```c
if (a > 5)
{
/* Newline must be present after the first
* variable declarations of a code block. */
int j = a - 1;
int k = a * 2;
return j + k;
}
while (a < 5)
{
a++;
/* It is recommended to put a newline after
* intermediate variable declarations. */
int i = a * 2;
b = i - 3;
}
/* It is a recommended to put newlines around asserts. */
a = b + 5;
JERRY_ASSERT (a < 20);
c = a + 7;
/* It is a good practice to put a newline after a multiline
* function call (see Function calls later). */
f (a,
b,
c);
a = 6;
```
```diff
--- Bad ---
```
```c
/* No newlines are allowed after an opening curly
* brace or before a closing curly brace */
while (a > 0)
{
a = 6;
}
if (a > 5)
{
while (b < 6)
{
b++;
}
}
/* Two or more newlines are not allowed. */
a = 6;
b = 7;
/* No newlines are allowed between control statements
* and their code blocks. */
if (a > 6)
{
}
else
{
}
do
{
}
while (a < 6);
```
## Expressions
Spaces are required around binary operators. No space is
needed otherwise.
```diff
+++ Good +++
```
```c
a = b + c;
a = (b + c) << 3;
a = b = c + ~d;
a += ++c + d++;
call_function (a * (b + !!c) - d + (e % f));
if (a)
{
}
```
```diff
--- Bad ---
```
```c
a=b+c;
a = b+c;
a += c + ( d );
/* Introduce temporary variables or macros
* if the expression is too long. Occurs rarely.. */
a = b
+ c;
if ( a + b > 0 )
{
}
```
## Logical operators
All expressions with && and || logical operators must be
enclosed in parentheses. A single and multiline form is
allowed for these expressions. In the latter case each
line must start with the logical operator and each line
must be aligned to the column right after the opening
parenthesis.
```diff
+++ Good +++
```
```c
/* Single line form. */
a = ((c && d) || (e && f));
a = (c
&& d);
a = (c
&& (d || e)
&& f);
do
{
}
while (a
&& b);
/* This form is rarely used but it is ok. */
if (a
&& (b
|| c
|| d)
&& e)
{
}
```
```diff
--- Bad ---
```
```c
if (a || b ||
c)
{
}
/* Parentheses are missing. */
a = b || c;
/* Misaligned &&. */
if (a
&& b)
{
}
```
## Ternary conditional operators
A special form of ternary conditional operators are allowed
in JerryScript where the ? and : operators are on separate
lines in the same column.
```diff
+++ Good +++
```
```c
a = (b ? c
: d);
/* Single line form is accepted as well. */
a = (b ? c : d);
/* This form is rarely used but it is ok. */
if (a ? b
: (c ? d
: e))
{
}
```
```diff
--- Bad ---
```
```c
a = b ?
c : d;
while (a ? b
: c)
{
}
if (a
? b
: c)
{
}
```
## Function calls
There must be a space after the function name. Each argument
must be in the same or separated lines. In the former case
there must be a space before the next argument and in the
latter case all arguments must be aligned to the same column.
```diff
+++ Good +++
```
```c
function_a ();
function_b (a);
function_c (a, b, c);
function_c (a,
b,
c);
function_c (a,
b,
function_c (a,
b,
c);
```
```diff
--- Bad ---
```
```c
/* No space before the opening parenthesis. */
function_f();
function_f (
);
function_g(a);
function_g
(a
);
/* Two arguments on the same line. */
function_h (a, b,
c);
function_h (a,
b, c);
/* Misaligned arguments. */
function_h (a,
b,
c);
```
## Variable declarations
JerryScript is a pure C99 codebase so variable
declarations can be anywhere in the code including
inside for-loops. It is recommended to declare a
variable before the first use.
```diff
+++ Good +++
```
```c
for (int i = 0; i < 10; i++)
{
int j = i + 1;
while (j < 10)
{
++j;
}
}
/* Multiline form of for loops. */
for (int i = 0;
i < 10;
i++)
{
}
```
## Type casting
There must be a space after the closing parenthesis
of the type cast. Type casting has no multiline form
in JerryScript.
```diff
+++ Good +++
```
```c
int a = (int) double_variable;
int a = (int) (long) (float) double_variable;
```
```diff
--- Bad ---
```
```c
/* Wrong spaces. */
int a = ( int )double_variable;
/* No multiline form. */
int a = (int)
double_variable;
```
## Pointers and asterisk character
Each pointer in JerryScript must be a lowercase string
which is ending with a `_p` suffix. Furthermore there
must be a space before the asterisk character.
```diff
+++ Good +++
```
```c
int *int_p;
/* No need to add multiple _p-s for multiple indirections.
* It is recommended to avoid these constructs using typedef
* declarations. A reviewer might request such a change. */
int ***int_p;
/* This rule applies for type casting as well. */
char = *(char *) type_p;
```
```diff
--- Bad ---
```
```c
/* No _p after the name. */
int *ptr;
/* Wrong asterisk position. */
int* ptr_p;
char_p = * (char*)type_p;
```
## Types
Each type in JerryScript must be a lowercase string
which ends with a `_t` suffix. Furthermore each type
declaration must be preceded by a short description
of the type and each field must have a short description
as well.
```diff
+++ Good +++
```
```c
/**
* Short description of the following structure.
*/
typedef struct
{
/* Field descriptions do not start with capital letters
* and there is no full stop at the end. */
field1_t field1; /**< description of field 1 */
field2_t field2; /**< description of field 2 */
field_n_t field_n; /**< description of field n */
} structure_name_t;
/**
* Another integer type.
*/
typedef int jerry_int;
```
```diff
--- Bad ---
```
```c
typedef struct
{
field_t field_without_description;
} structure_without_description_t;
typedef struct { int a; } single_line_struct;
typedef
union {
}
wrong_newlines_t;
/*
* Bad comment format.
*/
typedef
char wrong_newlines_again_t;
```
### Type usage conventions
- Passing the number of arguments for a function call is always `uint32_t`
- String size/length/position related operation should use `lit_utf8_size_t`
- Extended objects internal fields must be `uint32_t`
## Function declarations
Function declarations in JerryScript are verbose but this format
reduces the maintenance cost and allows faster understanding of
the code.
```diff
+++ Good +++
```
```c
/**
* Short overview about the purpose of this function.
*
* A more detailed explanation if needed.
*
* Note:
* Extra notes if needed.
*
* @return short description about the value
* returned by the function
*/
return_value_type_t
function_name (argument1, /**< description of argument1 */
argument2, /**< description of argument2 */
...
argument_n, /**< description of argument n */
{
/* Function body. */
} /* function_name */
```
```diff
--- Bad ---
```
```c
static int
print (char *text) /**< description of text argument */
{
/* Missing comment before the function. */
} /* print */
/**
* Prints the text received by the function.
*
* @return number of characters printed by the function
*/
int print(char *text)
{
/* No description of text argument. */
/* Missing comment at the end of the function. */
}
```
-904
View File
@@ -1,904 +0,0 @@
---
layout: page
title: 'Extension API: Argument Validation'
category: documents
permalink: /ext-reference-arg/
---
* toc
{:toc}
# jerryx_arg types
## jerryx_arg_t
**Summary**
The structure defining a single validation/transformation step.
*Note*: For commonly used validators, `arg.h` provides helpers to create the `jerryx_arg_t`s.
For example, `jerryx_arg_number ()`, `jerryx_arg_boolean ()`, etc.
**Prototype**
```c
typedef struct
{
/** the transform function */
jerryx_arg_transform_func_t func;
/** pointer to destination where func should store the result */
void *dest;
/** extra information, specific to func */
uintptr_t extra_info;
} jerryx_arg_t;
```
**See also**
- [jerryx_arg_number](#jerryx_arg_number)
- [jerryx_arg_boolean](#jerryx_arg_boolean)
- [jerryx_arg_string](#jerryx_arg_string)
- [jerryx_arg_utf8_string](#jerryx_arg_utf8_string)
- [jerryx_arg_function](#jerryx_arg_function)
- [jerryx_arg_native_pointer](#jerryx_arg_native_pointer)
- [jerryx_arg_ignore](#jerryx_arg_ignore)
- [jerryx_arg_object_properties](#jerryx_arg_object_properties)
## jerryx_arg_object_props_t
**Summary**
The structure is used in `jerryx_arg_object_properties`. It provides the properties' names,
its corresponding JS-to-C mapping and other related information.
**Prototype**
```c
typedef struct
{
const jerry_char_t **name_p; /**< property name list of the JS object */
jerry_length_t name_cnt; /**< count of the name list */
const jerryx_arg_t *c_arg_p; /**< points to the array of transformation steps */
jerry_length_t c_arg_cnt; /**< the count of the `c_arg_p` array */
} jerryx_arg_object_props_t;
```
**See also**
- [jerryx_arg_object_properties](#jerryx_arg_object_properties)
## jerryx_arg_array_items_t
**Summary**
The structure is used in `jerryx_arg_array`. It provides the array items' corresponding
JS-to-C mappings and count.
**Prototype**
```c
typedef struct
{
const jerryx_arg_t *c_arg_p; /**< points to the array of transformation steps */
jerry_length_t c_arg_cnt; /**< the count of the `c_arg_p` array */
} jerryx_arg_array_items_t;
```
**See also**
- [jerryx_arg_array](#jerryx_arg_array)
## jerryx_arg_transform_func_t
**Summary**
Signature of the transform function.
Users can create custom transformations by implementing a transform function
and using `jerryx_arg_custom ()`.
The function is expected to return `undefined` if it ran successfully or
return an `Error` in case it failed. The function can use the iterator and the
helpers `jerryx_arg_js_iterator_pop ()` and `jerryx_arg_js_iterator_peek ()` to
get the next input value.
*Note*: A transform function is allowed to consume any number of input values!
This enables complex validation like handling different JS function signatures,
mapping multiple input arguments to a C struct, etc.
The function is expected to store the result of
a successful transformation into `c_arg_p->dest`. In case the validation did
not pass, the transform should not modify `c_arg_p->dest`.
Additional parameters can be provided to the function through `c_arg_p->extra_info`.
**Prototype**
```c
typedef jerry_value_t (*jerryx_arg_transform_func_t) (jerryx_arg_js_iterator_t *js_arg_iter_p,
const jerryx_arg_t *c_arg_p);
```
**See also**
- [jerryx_arg_custom](#jerryx_arg_custom)
- [jerryx_arg_js_iterator_pop](#jerryx_arg_js_iterator_pop)
- [jerryx_arg_js_iterator_peek](#jerryx_arg_js_iterator_peek)
## jerryx_arg_coerce_t
Enum that indicates whether an argument is allowed to be coerced into the expected JS type.
- JERRYX_ARG_COERCE - the transform will invoke toNumber, toBoolean, toString, etc.
- JERRYX_ARG_NO_COERCE - the type coercion is not allowed. The transform will fail if the type does not match the expectation.
**See also**
- [jerryx_arg_number](#jerryx_arg_number)
- [jerryx_arg_boolean](#jerryx_arg_boolean)
- [jerryx_arg_string](#jerryx_arg_string)
## jerryx_arg_optional_t
Enum that indicates whether an argument is optional or required.
- JERRYX_ARG_OPTIONAL - The argument is optional. If the argument is `undefined` the transform is successful and `c_arg_p->dest` remains untouched.
- JERRYX_ARG_REQUIRED - The argument is required. If the argument is `undefined` the transform will fail and `c_arg_p->dest` remains untouched.
**See also**
- [jerryx_arg_number](#jerryx_arg_number)
- [jerryx_arg_boolean](#jerryx_arg_boolean)
- [jerryx_arg_string](#jerryx_arg_string)
- [jerryx_arg_function](#jerryx_arg_function)
- [jerryx_arg_native_pointer](#jerryx_arg_native_pointer)
## jerryx_arg_round_t
Enum that indicates the rounding policy which will be chosen to transform an integer.
- JERRYX_ARG_ROUND - use round() method.
- JERRYX_ARG_FLOOR - use floor() method.
- JERRYX_ARG_CEIL - use ceil() method.
**See also**
- [jerryx_arg_uint8](#jerryx_arg_uint8)
- [jerryx_arg_uint16](#jerryx_arg_uint16)
- [jerryx_arg_uint32](#jerryx_arg_uint32)
- [jerryx_arg_int8](#jerryx_arg_int8)
- [jerryx_arg_int16](#jerryx_arg_int16)
- [jerryx_arg_int32](#jerryx_arg_int32)
## jerryx_arg_clamp_t
Indicates the clamping policy which will be chosen to transform an integer.
If the policy is NO_CLAMP, and the number is out of range,
then the transformer will throw a range error.
- JERRYX_ARG_CLAMP - clamp the number when it is out of range
- JERRYX_ARG_NO_CLAMP - throw a range error
**See also**
- [jerryx_arg_uint8](#jerryx_arg_uint8)
- [jerryx_arg_uint16](#jerryx_arg_uint16)
- [jerryx_arg_uint32](#jerryx_arg_uint32)
- [jerryx_arg_int8](#jerryx_arg_int8)
- [jerryx_arg_int16](#jerryx_arg_int16)
- [jerryx_arg_int32](#jerryx_arg_int32)
# Main functions
## jerryx_arg_transform_this_and_args
**Summary**
Validate the this value and the JS arguments, and assign them to the native arguments.
This function is useful to perform input validation inside external function handlers (see `jerry_external_handler_t`).
**Prototype**
```c
jerry_value_t
jerryx_arg_transform_this_and_args (const jerry_value_t this_val,
const jerry_value_t *js_arg_p,
const jerry_length_t js_arg_cnt,
const jerryx_arg_t *c_arg_p,
jerry_length_t c_arg_cnt)
```
- `this_val` - `this` value. Note this is processed as the first value, before the array of arguments.
- `js_arg_p` - points to the array with JS arguments.
- `js_arg_cnt` - the count of the `js_arg_p` array.
- `c_arg_p` - points to the array of validation/transformation steps
- `c_arg_cnt` - the count of the `c_arg_p` array.
- return value - a `jerry_value_t` representing `undefined` if all validators passed or an `Error` if a validator failed.
**Example**
[doctest]: # (test="compile")
```c
#include "jerryscript.h"
#include "jerryscript-ext/arg.h"
/* JS signature: function (requiredBool, requiredString, optionalNumber) */
static jerry_value_t
my_external_handler (const jerry_value_t function_obj,
const jerry_value_t this_val,
const jerry_value_t args_p[],
const jerry_length_t args_count)
{
bool required_bool;
char required_str[16];
double optional_num = 1234.567; // default value
/* "mapping" defines the steps to transform input arguments to C variables. */
const jerryx_arg_t mapping[] =
{
/* `this` is the first value. No checking needed on `this` for this function. */
jerryx_arg_ignore (),
jerryx_arg_boolean (&required_bool, JERRYX_ARG_NO_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_string (required_str, sizeof (required_str), JERRYX_ARG_NO_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_number (&optional_num, JERRYX_ARG_NO_COERCE, JERRYX_ARG_OPTIONAL),
};
/* Validate and transform. */
const jerry_value_t rv = jerryx_arg_transform_this_and_args (this_val,
args_p,
args_count,
mapping,
4);
if (jerry_value_is_exception (rv))
{
/* Handle error. */
return rv;
}
/*
* Validated and transformed successfully!
* required_bool, required_str and optional_num can now be used.
*/
return jerry_undefined (); /* Or return something more meaningful. */
}
```
**See also**
- [jerryx_arg_ignore](#jerryx_arg_ignore)
- [jerryx_arg_number](#jerryx_arg_number)
- [jerryx_arg_boolean](#jerryx_arg_boolean)
- [jerryx_arg_string](#jerryx_arg_string)
- [jerryx_arg_function](#jerryx_arg_function)
- [jerryx_arg_native_pointer](#jerryx_arg_native_pointer)
- [jerryx_arg_custom](#jerryx_arg_custom)
- [jerryx_arg_object_properties](#jerryx_arg_object_properties)
## jerryx_arg_transform_args
**Summary**
Validate an array of `jerry_value_t` and assign them to the native arguments.
**Prototype**
```c
jerry_value_t
jerryx_arg_transform_args (const jerry_value_t *js_arg_p,
const jerry_length_t js_arg_cnt,
const jerryx_arg_t *c_arg_p,
jerry_length_t c_arg_cnt)
```
- `js_arg_p` - points to the array with JS arguments.
- `js_arg_cnt` - the count of the `js_arg_p` array.
- `c_arg_p` - points to the array of validation/transformation steps
- `c_arg_cnt` - the count of the `c_arg_p` array.
- return value - a `jerry_value_t` representing `undefined` if all validators passed or an `Error` if a validator failed.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_transform_object_properties
**Summary**
Validate the properties of a JS object and assign them to the native arguments.
*Note*: This function transforms properties of a single JS object into native C values.
To transform multiple objects in one pass (for example when converting multiple arguments
to an external handler), please use `jerryx_arg_object_properties` together with
`jerryx_arg_transform_this_and_args` or `jerryx_arg_transform_args`.
**Prototype**
```c
jerry_value_t
jerryx_arg_transform_object_properties (const jerry_value_t obj_val,
const jerry_char_t **name_p,
const jerry_length_t name_cnt,
const jerryx_arg_t *c_arg_p,
jerry_length_t c_arg_cnt);
```
- `obj_val` - the JS object.
- `name_p` - points to the array of property names.
- `name_cnt` - the count of the `name_p` array.
- `c_arg_p` - points to the array of validation/transformation steps
- `c_arg_cnt` - the count of the `c_arg_p` array.
- return value - a `jerry_value_t` representing `undefined` if all validators passed or an `Error` if a validator failed.
**See also**
- [jerryx_arg_object_properties](#jerryx_arg_object_properties)
## jerryx_arg_transform_array
**Summary**
Validate the JS array and assign its items to the native arguments.
*Note*: This function transforms items of a single JS array into native C values.
To transform multiple JS arguments in one pass, please use `jerryx_arg_array` together with
`jerryx_arg_transform_this_and_args` or `jerryx_arg_transform_args`.
**Prototype**
```c
jerry_value_t
jerryx_arg_transform_array (const jerry_value_t array_val,
const jerryx_arg_t *c_arg_p,
jerry_length_t c_arg_cnt);
```
- `array_val` - the JS array.
- `c_arg_p` - points to the array of validation/transformation steps
- `c_arg_cnt` - the count of the `c_arg_p` array.
- return value - a `jerry_value_t` representing `undefined` if all validators passed or an `Error` if a validator failed.
**See also**
- [jerryx_arg_array](#jerryx_arg_array)
## jerryx_arg_transform_optional
**Summary**
The common function to deal with optional arguments. The core transform function is provided by argument `func`.
**Prototype**
```c
jerry_value_t jerryx_arg_transform_optional (jerryx_arg_js_iterator_t *js_arg_iter_p,
const jerryx_arg_t *c_arg_p,
jerryx_arg_transform_func_t func);
```
- `js_arg_iter_p` - the JS arg iterator.
- `c_arg_p` - the native arg.
- `func` - the core transform function.
- return value - a `jerry_value_t` representing `undefined` if all validators passed or an `Error` if a validator failed.
**See also**
- [jerryx_arg_transform_func_t](#jerryx_arg_transform_func_t)
# Helpers for commonly used validations
## jerryx_arg_uint8
## jerryx_arg_uint16
## jerryx_arg_uint32
## jerryx_arg_int8
## jerryx_arg_int16
## jerryx_arg_int32
**Summary**
All above jerryx_arg_[u]intX functions are used to create a validation/transformation step
(`jerryx_arg_t`) that expects to consume one `number` JS argument
and stores it into a C integer (uint8, int8, uint16, ...)
**Prototype**
Take jerryx_arg_int32 as an example
```c
static inline jerryx_arg_t
jerryx_arg_int32 (int32_t *dest,
jerryx_arg_round_t round_flag,
jerryx_arg_clamp_t clamp_flag,
jerryx_arg_coerce_t coerce_flag,
jerryx_arg_optional_t opt_flag);
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the `int32_t` where the result should be stored.
- `round_flag` - the rounding policy.
- `clamp_flag` - the clamping policy.
- `coerce_flag` - whether type coercion is allowed.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_number
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to consume
one `number` JS argument and stores it into a C `double`.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_number (double *dest,
jerryx_arg_coerce_t coerce_flag,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the `double` where the result should be stored.
- `coerce_flag` - whether type coercion is allowed.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_boolean
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `boolean` JS argument and stores it into a C `bool`.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_boolean (bool *dest,
jerryx_arg_coerce_t coerce_flag,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the `bool` where the result should be stored.
- `coerce_flag` - whether type coercion is allowed.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_string
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `string` JS argument and stores it into a CESU-8 C `char` array.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_string (char *dest,
uint32_t size,
jerryx_arg_coerce_t coerce_flag,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the native char array where the result should be stored.
- `size` - the size of native char array.
- `coerce_flag` - whether type coercion is allowed.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
- [jerry_arg_utf8_string](#jerry_arg_utf8_string)
## jerryx_arg_utf8_string
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `string` JS argument and stores it into a UTF-8 C `char` array.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_utf8_string (char *dest,
uint32_t size,
jerryx_arg_coerce_t coerce_flag,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the native char array where the result should be stored.
- `size` - the size of native char array.
- `coerce_flag` - whether type coercion is allowed.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
- [jerry_arg_string](#jerry_arg_string)
## jerryx_arg_function
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `function` JS argument and stores it into a C `jerry_value_t`.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_function (jerry_value_t *dest,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the `jerry_value_t` where the result should be stored.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_native_pointer
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `object` JS argument that is 'backed' with a native pointer with
a given type info. In case the native pointer info matches, the transform
will succeed and the object's native pointer will be assigned to `*dest`.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_native_pointer (void **dest,
const jerry_object_native_info_t *info_p,
jerryx_arg_optional_t opt_flag)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to where the resulting native pointer should be stored.
- `info_p` - expected the type info.
- `opt_flag` - whether the argument is optional.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_object_properties
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `object` JS argument and call `jerryx_arg_transform_object_properties` inside
to transform its properties to native arguments.
User should prepare the `jerryx_arg_object_props_t` instance, and pass it to this function.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_object_properties (const jerryx_arg_object_props_t *obj_prop_p,
jerryx_arg_optional_t opt_flag);
```
- return value - the created `jerryx_arg_t` instance.
- `obj_prop_p` - provides information for properties transform.
- `opt_flag` - whether the argument is optional.
**Example**
[doctest]: # (test="compile")
```c
#include "jerryscript.h"
#include "jerryscript-ext/arg.h"
/**
* The binding function expects args_p[0] is an object, which has 3 properties:
* "enable": boolean
* "data": number
* "extra_data": number, optional
*/
static jerry_value_t
my_external_handler (const jerry_value_t function_obj,
const jerry_value_t this_val,
const jerry_value_t args_p[],
const jerry_length_t args_count)
{
bool required_bool;
double required_num;
double optional_num = 1234.567; // default value
/* "prop_name_p" defines the name list of the expected properties' names. */
const char *prop_name_p[] = { "enable", "data", "extra_data" };
/* "prop_mapping" defines the steps to transform properties to C variables. */
const jerryx_arg_t prop_mapping[] =
{
jerryx_arg_boolean (&required_bool, JERRYX_ARG_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_number (&required_num, JERRYX_ARG_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_number (&optional_num, JERRYX_ARG_COERCE, JERRYX_ARG_OPTIONAL)
};
/* Prepare the jerryx_arg_object_props_t instance. */
const jerryx_arg_object_props_t prop_info =
{
.name_p = (const jerry_char_t **) prop_name_p,
.name_cnt = 3,
.c_arg_p = prop_mapping,
.c_arg_cnt = 3
};
/* It is the mapping used in the jerryx_arg_transform_args. */
const jerryx_arg_t mapping[] =
{
jerryx_arg_object_properties (&prop_info, JERRYX_ARG_REQUIRED)
};
/* Validate and transform. */
const jerry_value_t rv = jerryx_arg_transform_args (args_p,
args_count,
mapping,
1);
if (jerry_value_is_exception (rv))
{
/* Handle error. */
return rv;
}
/*
* Validated and transformed successfully!
* required_bool, required_num and optional_num can now be used.
*/
return jerry_undefined (); /* Or return something more meaningful. */
}
```
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
- [jerryx_arg_transform_object_properties](#jerryx_arg_transform_object_properties)
## jerryx_arg_array
**Summary**
Create a validation/transformation step (`jerryx_arg_t`) that expects to
consume one `array` JS argument and call `jerryx_arg_transform_array_items` inside
to transform its items to native arguments.
User should prepare the `jerryx_arg_array_items_t` instance, and pass it to this function.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_array (const jerryx_arg_array_items_t *array_items_p, jerryx_arg_optional_t opt_flag);
```
- return value - the created `jerryx_arg_t` instance.
- `array_items_p` - provides items information for transform.
- `opt_flag` - whether the argument is optional.
**Example**
[doctest]: # (test="compile")
```c
#include "jerryscript.h"
#include "jerryscript-ext/arg.h"
/**
* The binding function expects args_p[0] is an array, which has 3 items:
* first: boolean
* second: number
* third: number, optional
*/
static jerry_value_t
my_external_handler (const jerry_value_t function_obj,
const jerry_value_t this_val,
const jerry_value_t args_p[],
const jerry_length_t args_count)
{
bool required_bool;
double required_num;
double optional_num = 1234.567; // default value
/* "item_mapping" defines the steps to transform array items to C variables. */
const jerryx_arg_t item_mapping[] =
{
jerryx_arg_boolean (&required_bool, JERRYX_ARG_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_number (&required_num, JERRYX_ARG_COERCE, JERRYX_ARG_REQUIRED),
jerryx_arg_number (&optional_num, JERRYX_ARG_COERCE, JERRYX_ARG_OPTIONAL)
};
/* Prepare the jerryx_arg_array_items_t instance. */
const jerryx_arg_array_items_t array_info =
{
.c_arg_p = item_mapping,
.c_arg_cnt = 3
};
/* It is the mapping used in the jerryx_arg_transform_args. */
const jerryx_arg_t mapping[] =
{
jerryx_arg_array (&array_info, JERRYX_ARG_REQUIRED)
};
/* Validate and transform. */
const jerry_value_t rv = jerryx_arg_transform_args (args_p,
args_count,
mapping,
1);
if (jerry_value_is_exception (rv))
{
/* Handle error. */
return rv;
}
/*
* Validated and transformed successfully!
* required_bool, required_num and optional_num can now be used.
*/
return jerry_undefined (); /* Or return something more meaningful. */
}
```
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
- [jerryx_arg_transform_object_properties](#jerryx_arg_transform_object_properties)
# Functions to create custom validations
## jerryx_arg_ignore
**Summary**
Create a jerryx_arg_t instance for ignored argument.
**Prototype**
```c
static inline jerryx_arg_t jerryx_arg_ignore (void);
```
- return value - the created `jerryx_arg_t` instance.
**See also**
- [jerryx_arg_t](#jerryx_arg_t)
## jerryx_arg_custom
**Summary**
Create a jerryx_arg_t instance with custom transform.
**Prototype**
```c
static inline jerryx_arg_t
jerryx_arg_custom (void *dest,
uintptr_t extra_info,
jerryx_arg_transform_func_t func)
```
- return value - the created `jerryx_arg_t` instance.
- `dest` - pointer to the native argument where the result should be stored.
- `extra_info` - the extra parameter data, specific to the transform function.
- `func` - the custom transform function.
**See also**
- [jerryx_arg_transform_this_and_args](#jerryx_arg_transform_this_and_args)
## jerryx_arg_js_iterator_pop
**Summary**
Pop the current `jerry_value_t` argument from the iterator.
It will change the `js_arg_idx` and `js_arg_p` value in the iterator.
**Prototype**
```c
jerry_value_t
jerryx_arg_js_iterator_pop (jerryx_arg_js_iterator_t *js_arg_iter_p)
```
- return value - the `jerry_value_t` argument that was popped.
- `js_arg_iter_p` - the JS arg iterator from which to pop.
## jerryx_arg_js_iterator_peek
**Summary**
Get the current JS argument from the iterator, without moving the iterator forward.
*Note:* Unlike `jerryx_arg_js_iterator_pop ()`, it will not change `js_arg_idx` and
`js_arg_p` value in the iterator.
**Prototype**
```c
jerry_value_t
jerryx_arg_js_iterator_peek (jerryx_arg_js_iterator_t *js_arg_iter_p)
```
- return value - the current `jerry_value_t` argument.
- `js_arg_iter_p` - the JS arg iterator from which to peek.
## jerryx_arg_js_iterator_restore
**Summary**
Restore the last item popped from the stack. This can be called as
many times as there are arguments on the stack -- if called when the
first element in the array is the current top of the stack, this
function does nothing.
*Note:* This function relies on the underlying implementation of the
arg stack as an array, as its function is to simply back up the "top
of stack" pointer to point to the previous element of the array.
*Note:* Like `jerryx_arg_js_iterator_pop ()`, this function will
change the `js_arg_idx` and `js_arg_p` values in the iterator.
**Prototype**
```c
jerry_value_t
jerryx_arg_js_iterator_restore (jerryx_arg_js_iterator_t *js_arg_iter_p)
```
- return value - the the new top of the stack.
- `js_arg_iter_p` - the JS arg iterator to restore.
## jerryx_arg_js_iterator_index
**Summary**
Get the index of the current JS argument from the iterator.
**Prototype**
```c
jerry_length_t
jerryx_arg_js_iterator_index (jerryx_arg_js_iterator_t *js_arg_iter_p)
```
- return value - the index of current JS argument.
- `js_arg_iter_p` - the JS arg iterator from which to peek.
-417
View File
@@ -1,417 +0,0 @@
---
layout: page
title: 'Extension API: External Function Handlers'
category: documents
permalink: /ext-reference-handler/
---
* toc
{:toc}
# Common methods to handle properties
The `jerryscript-ext/properties.h` header defines a set of convenience methods
which makes the property access a bit straightforward.
# Utility to register multiple properties in bulk
In some cases it is useful to register multiple properties for a given object
for this the following utility structures and methods are provided.
## jerryx_property_entry
**Summary**
Structure to define an array of properties with `name` and `value` fields which
can be registered to a target object.
The engine must be initialized before specifying the `jerry_value_t` in the struct.
**Prototype**
```c
typedef struct {
const char *name;
jerry_value_t value;
} jerryx_property_entry;
```
**See also**
- [jerryx_set_properties](#jerryx_set_properties)
## jerryx_register_result
**Summary**
Structure returned as the result of the [jerryx_set_properties](#jerryx_set_properties) operation.
The `result` field will either be a JavaScript undefined value or an error object.
In every case the `registered` field is used to indicated the number of
successfully registered methods.
This must be passed for the [jerryx_release_property_entry](#jerryx_release_property_entry) method
after the property registration.
If any error occurred during the property registration the `result` field of the structure
must be manually released after processing the error value.
**Prototype**
```c
typedef struct {
jerry_value_t result;
uint32_t registered;
} jerryx_register_result;
```
**See also**
- [jerryx_set_properties](#jerryx_set_properties)
- [jerryx_release_property_entry](#jerryx_release_property_entry)
## jerryx_set_properties
**Summary**
Set multiple properties on a target object.
The properties are an array of (name, jerry_value_t) pairs and
this list must end with a (NULL, 0) entry.
Important notes:
* Each property value in the input array is released after a successful property registration.
* The method [jerryx_release_property_entry](#jerryx_release_property_entry) must be called if there is any failed registration
to release the values in the entries array.
It is safe to call this cleanup method in every case not just in case of failure.
* If the error value is reported via the result it must be freed manually.
**Prototype**
```c
jerryx_register_result
jerryx_set_properties (const jerry_value_t target_object,
const jerryx_property_entry entries[]);
```
- `target_object` - object on which the entries will be set.
- `entries` - array of (name, jerry_value_t) pairs.
- return a [jerryx_register_result](#jerryx_register_result).
- if everything is ok, the struct's `result` field is set to a JS undefined value.
- otherwise the `result` field is an error object indicating the problem.
- in every case the `registered` field contains the number of successfully registered properties.
**Example**
[doctest]: # ()
```c
#include <stdio.h>
#include "jerryscript.h"
#include "jerryscript-ext/handlers.h"
#include "jerryscript-ext/properties.h"
static jerry_value_t
handler (const jerry_call_info_t *call_info_p,
const jerry_value_t args_p[],
const jerry_length_t args_cnt)
{
printf ("native handler called!\n");
return jerry_boolean (true);
}
int
main (int argc, char **argv)
{
jerry_init (JERRY_INIT_EMPTY);
jerryx_property_entry methods[] =
{
{ "demo", jerry_function_external (handler) },
{ NULL, 0 },
};
jerry_value_t global = jerry_current_realm ();
jerryx_register_result reg = jerryx_set_properties (global, methods);
/* if `reg.result` is undefined all methods are registered */
if (jerry_value_is_exception (reg.result))
{
printf ("Only registered %d properties\r\n", reg.registered);
/* clean up not registered property values */
jerryx_release_property_entry (methods, reg);
/* clean up the error */
jerry_value_free (reg.result);
}
jerry_value_free (global);
jerry_cleanup();
return 0;
}
```
**Convenience macros**
To make property registration convenient, there are a set of macros to use
when setting a property entry:
* `JERRYX_PROPERTY_NUMBER(NAME, NUMBER)` - creates a number entry.
* `JERRYX_PROPERTY_STRING(NAME, STR, SIZE)` - creates an UTF-8 string entry using `SIZE` bytes from the string.
* `JERRYX_PROPERTY_STRING_SZ(NAME, STR)` - creates an ASCII string entry. This string must be zero terminated.
* `JERRYX_PROPERTY_BOOLEAN(NAME, VALUE)` - creates a boolean entry.
* `JERRYX_PROPERTY_FUNCTION(NAME, NATIVE)` - creates a native C function entry.
* `JERRYX_PROPERTY_UNDEFINED(NAME)` - creates an undefined property entry.
* `JERRYX_PROPERTY_LIST_END()` - indicates the end of the property list.
**Example usage of Convenience macros**
[doctest]: # ()
```c
#include <stdio.h>
#include "jerryscript.h"
#include "jerryscript-ext/handlers.h"
#include "jerryscript-ext/properties.h"
static jerry_value_t
handler (const jerry_call_info_t *call_info_p,
const jerry_value_t args_p[],
const jerry_length_t args_cnt)
{
printf ("native handler called!\n");
return jerry_boolean (true);
}
int
main (int argc, char **argv)
{
jerry_init (JERRY_INIT_EMPTY);
/**
* Create a array of properties to be registered.
* This must be done after initializing the engine as creating `jerry_value_t`
* elements are invalid before `jerry_init`.
*/
jerryx_property_entry methods[] =
{
JERRYX_PROPERTY_FUNCTION ("demo", handler),
JERRYX_PROPERTY_NUMBER ("test_num", 2.3),
JERRYX_PROPERTY_UNDEFINED ("this_is_undefined"),
JERRYX_PROPERTY_LIST_END(),
};
jerry_value_t global = jerry_current_realm ();
jerryx_register_result reg = jerryx_set_properties (global, methods);
/* if `reg.result` is undefined all methods are registered */
if (jerry_value_is_exception (reg.result))
{
printf ("Only registered %d properties\r\n", reg.registered);
/* clean up not registered property values */
jerryx_release_property_entry (methods, reg);
/* clean up the error */
jerry_value_free (reg.result);
}
jerry_value_free (global);
jerry_cleanup();
return 0;
}
```
**See also**
- [jerryx_property_entry](#jerryx_property_entry)
- [jerryx_release_property_entry](#jerryx_release_property_entry)
- [jerryx_register_result](#jerryx_register_result)
## jerryx_release_property_entry
**Summary**
Release all `jerry_value_t` in a `jerryx_property_entry` array based on a previous [jerryx_set_properties](#jerryx_set_properties) call
and also the error value (if any) in the `jerryx_register_result` structure.
In case of a successful registration it is safe to call this method.
After the method call the `entries` array should not be used as all values are released.
**Prototype**
```
void
jerryx_release_property_entry (const jerryx_property_entry entries[],
const jerryx_register_result register_result);
```
- `entries` - array of [jerryx_property_entry](#jerryx_property_entry).
- `register_result` - result of a previous [jerryx_set_properties](#jerryx_set_properties) call.
**Example**
For example usage see [jerryx_set_properties](#jerryx_set_properties).
# Common external function handlers
## jerryx_handler_assert
**Summary**
Hard assert for scripts. The routine calls `jerry_port_fatal` on assertion failure.
If the `JERRY_FEATURE_LINE_INFO` runtime feature is enabled (build option: `JERRY_LINE_INFO`)
a backtrace is also printed out.
**Prototype**
```c
jerry_value_t
jerryx_handler_assert (const jerry_call_info_t *call_info_p,
const jerry_value_t args_p[],
const jerry_length_t args_cnt);
```
- `call_info_p` - pointer to a [jerry_call_info_t](#jerry_call_info_t)
structure which holds call related information (unused).
- `args_p` - the array of function arguments.
- `args_cnt` - the number of function arguments.
- return value - `jerry_value_t` representing boolean true, if only one argument
was passed and that argument was a boolean true. Note that the function does
not return otherwise.
**See also**
- [jerryx_register_global](#jerryx_register_global)
## jerryx_handler_gc
**Summary**
Expose garbage collector to scripts. If the first argument of the function
is logical true, it performs a high pressure gc. Otherwise a low pressure
gc is performed, which is also the default if no parameters passed.
**Prototype**
```c
jerry_value_t
jerryx_handler_gc (const jerry_call_info_t *call_info_p,
const jerry_value_t args_p[],
const jerry_length_t args_cnt);
```
- `call_info_p` - pointer to a [jerry_call_info_t](#jerry_call_info_t)
structure which holds call related information (unused).
- `args_p` - the array of function arguments (unused).
- `args_cnt` - the number of function arguments (unused).
- return value - `jerry_value_t` representing `undefined`.
**See also**
- [jerryx_register_global](#jerryx_register_global)
## jerryx_handler_print
**Summary**
Provide a `print` implementation for scripts. The routine converts all of its
arguments to strings and outputs them by using `jerry_port_print_buffer`.
The NULL character is output as "\u0000", other characters are output bytewise.
*Note*: This implementation does not use standard C `printf` to print its
output. This allows more flexibility but also extends the core JerryScript
engine port API. Applications that want to use `jerryx_handler_print` must
ensure that their port implementation also provides
`jerry_port_print_buffer`.
**Prototype**
```c
jerry_value_t
jerryx_handler_print (const jerry_call_info_t *call_info_p,
const jerry_value_t args_p[],
const jerry_length_t args_cnt);
```
- `call_info_p` - pointer to a [jerry_call_info_t](#jerry_call_info_t)
structure which holds call related information (unused).
- `args_p` - the array of function arguments.
- `args_cnt` - the number of function arguments.
- return value - `jerry_value_t` representing `undefined` if all arguments could
be converted to strings, an `Error` otherwise.
**See also**
- [jerryx_register_global](#jerryx_register_global)
- [jerry_port_print_buffer](05.PORT-API.md#jerry_port_print_buffer)
# Handler registration helper
## jerryx_register_global
**Summary**
Register a JavaScript function in the global object.
*Note*: Returned value must be freed with `jerry_value_free`, when it is no
longer needed.
**Prototype**
```c
jerry_value_t
jerryx_register_global (const char *name_p,
jerry_external_handler_t handler_p);
```
- `name_p` - the name of the function to be registered.
- `handler_p` - the address of the external function handler.
- return value - `jerry_value_t` representing boolean true, if the operation was
successful, an `Error` otherwise.
**Example**
[doctest]: # (test="compile")
```c
#include "jerryscript.h"
#include "jerryscript-ext/handlers.h"
#include "jerryscript-ext/properties.h"
static const struct {
const char *name_p;
jerry_external_handler_t handler_p;
} common_functions[] =
{
{ "assert", jerryx_handler_assert },
{ "gc", jerryx_handler_gc },
{ "print", jerryx_handler_print },
{ NULL, NULL }
};
static void
register_common_functions (void)
{
jerry_value_t ret = jerry_undefined ();
for (int i = 0; common_functions[i].name_p != NULL && !jerry_value_is_exception (ret); i++)
{
ret = jerryx_register_global (common_functions[i].name_p,
common_functions[i].handler_p);
}
jerry_value_free (ret);
}
```
-60
View File
@@ -1,60 +0,0 @@
---
layout: page
title: 'Extension API: Autorelease Values'
category: documents
permalink: /ext-reference-autorelease/
---
* toc
{:toc}
# Autorelease values
## JERRYX_AR_VALUE_T
**Summary**
Macro for `const jerry_value_t` for which jerry_value_free() is
automatically called when the variable goes out of scope.
*Note*: The macro depends on compiler support. For GCC and LLVM/clang, the macro is implemented
using the `__cleanup__` variable attribute. For other compilers, no support has been added yet.
**Example**
[doctest]: # (test="compile", name="11.EXT-REFERENCE-AUTORELEASE.c")
```c
#include "jerryscript.h"
#include "jerryscript-ext/autorelease.h"
static void
foo (bool enable)
{
JERRYX_AR_VALUE_T bar = jerry_string_sz ("...");
if (enable)
{
JERRYX_AR_VALUE_T baz = jerry_current_realm ();
/* bar and baz can now be used. */
/*
* jerry_value_free (baz) and jerry_value_free (bar) is called automatically before
* returning, because `baz` and `bar` go out of scope.
*/
return;
}
/*
* jerry_value_free (bar) is called automatically when the function returns,
* because `bar` goes out of scope.
*/
}
```
**See also**
- [jerry_value_t](../api-reference#jerry_value_t)
- [jerry_value_copy](../api-reference#jerry_value_copy)
- [jerry_value_free](../api-reference#jerry_value_free)
-324
View File
@@ -1,324 +0,0 @@
---
layout: page
title: 'Extension API: Module Support'
category: documents
permalink: /ext-reference-module/
---
* toc
{:toc}
# Module API
This is a JerryScript extension that provides a means of loading modules. Fundamentally, a module is a name (stored as
a string) that resolves to a `jerry_value_t`. This extension provides the function `jerryx_module_resolve()` which
accepts the name of the module being requested as well as an array of so-called "resolvers" - structures containing two
function pointers: one for a function which computes a canonical name for the requested module or returns a reference
to the requested name, and one that converts a canonical name to a `jerry_value_t`, thus "resolving" or "loading" the
requested module.
The resolvers are first called in sequence to each compute the canonical name of the requested module. This is
accomplished by calling the `get_canonical_name` function pointer they provide. If the function pointer is `NULL`, the
requested module name is assumed to be what the resolver considers to be its canonical name. `jerryx_module_resolve`
searches its cache of loaded modules for each canonical name as returned by a `get_canonical_name` function pointer. If
one of the loaded modules in the cache corresponds to a canonical name, it is returned.
If no cached module is found, `jerryx_module_resolve` calls each resolver's `resolve` function pointer, passing it its
previously computed interpretation of the requested module's canonical name. If the resolver successfully creates the
`jerry_value_t` that represents the loaded module, it returns `true` and the `jerry_value_t` in its out parameter.
When `jerryx_module_resolve` receives a value of `true` from a resolver, it stops iterating over the remaining
resolvers in the sequence and, if the `jerry_value_t` returned from the resolver's `resolve` does not have the error
flag set, it will add the `jerry_value_t` to its cache under the module's canonical name and return it. Thus, on
subsequent calls to `jerryx_module_resolve` with a module name whose canonical name is associated with the
`jerry_value_t`, no `resolve` callback need be called again.
The purpose of having resolvers is to be able to account for the fact that different types of modules may be structured
differently and thus, for each type of module a module resolver must be supplied at the point where an instance of that
type of module is requested.
Individual modules may be removed from the cache by calling `jerryx_module_clear_cache`. This function behaves
identically to `jerryx_module_resolve` in that it first checks the cache for the requested module, except that it
removes the module if found. Additionally, it clears the entire cache of all modules if called using a JavaScript value
of `undefined` as its first parameter.
Additionally, this extension provides a means of easily defining so-called "native" JerryScript modules which can be
resolved using the native JerryScript module resolver `jerryx_module_native_resolver`, which can be passed to
`jerryx_module_resolve()`. Native modules are registered during application startup and by calling `dlopen()` by means
of library constructors, support for which can be turned on using the `FEATURE_INIT_FINI` build flag. In the absence of
such a flag, the module registration and unregistration functions are exposed as global symbols which can be called
explicitly. Note: On windows, `FEATURE_INIT_FINI` build flag only supported with GNU toolchain or Microsoft Visual C/C++ Compiler
2008 and upper.
## jerryx_module_resolve
**Summary**
Load a copy of a module into the current context or return one that was already loaded if it is found.
For each resolver passed in via `resolvers_p`, its `get_canonical_name` function pointer gets called in order to
establish the resolver's interpretation of what the canonical name for the module should be. If `get_canonical_name` is
`NULL`, it is assumed that the requested module's name as passed in is its canonical name.
Then, for each resolver passed in via `resolvers_p`, its `resolve` function pointer gets called with its interpretation
of what the module's canonical name should be, as computed in the previous step.
If the resolver's `resolve` function pointer returns `true`, the `jerry_value_t` returned in its out-parameter will be
returned by `jerryx_module_resolve` as the result of the request. If no error flag is set on the `jerry_value_t` it
will be cached under its canonical name so as to avoid loading the same module twice in the event of a subsequent call
to `jerryx_module_resolve` with a module name whose canonical name matches an already loaded module.
**Prototype**
```c
jerry_value_t
jerryx_module_resolve (const jerry_value_t name,
const jerryx_module_resolver_t **resolvers_p,
size_t resolver_count);
```
- `name` - the name of the module to load
- `resolvers_p` - the list of resolvers to call in sequence
- `resolver_count` - the number of resolvers in `resolvers_p`
- return value - `jerry_value_t` representing the module that was loaded, or the error that occurred in the process.
## jerryx_module_clear_cache
**Summary**
Remove a module from the current context's cache, or clear the cache entirely.
**Prototype**
```c
void
jerryx_module_clear_cache (const jerry_value_t name,
const jerryx_module_resolver_t **resolvers_p,
size_t resolver_count);
```
- `name` - the name of the module to remove from cache or a JavaScript `undefined` to clear the entire cache
- `resolvers_p` - the list of resolvers to call in sequence
- `resolver_count` - the number of resolvers in `resolvers_p`
## jerryx_module_native_resolver
**Summary**
The resolver for native JerryScript modules. A pointer to this structure can be passed in the second parameter to
`jerryx_module_resolve` to search for the module among the native JerryScript modules built into the binary. This
function is available only if the preprocessor directive `JERRYX_NATIVE_MODULES_SUPPORTED` is defined.
**Prototype**
```c
extern jerry_module_resolver_t jerryx_native_module_resolver;
```
# Module data types
## jerryx_module_get_canonical_name_t
**Summary**
The function pointer type for converting a module's requested name to its canonical name.
**Prototype**
```c
typedef jerry_value_t (*jerryx_module_get_canonical_name_t) (const jerry_value_t name);
```
## jerryx_module_resolve_t
**Summary**
Function pointer type for module resolution.
**Prototype**
```c
typedef bool (*jerryx_module_resolve_t) (const jerry_value_t canonical_name,
jerry_value_t *result);
```
## jerryx_module_resolver_t
**Summary**
Structure defining a module resolver.
**Prototype**
```c
typedef struct
{
jerryx_module_get_canonical_name_t get_canonical_name_p;
jerryx_module_resolve_t resolve_p;
} jerryx_module_resolver_t;
```
- `get_canonical_name_p` - function pointer to be called when the canonical name corresponding to the requested name
of a module must be established.
- `resolve_p` - function pointer to be called when a module with the given canonical name needs to be converted to the
`jerry_value_t` that will become the loaded module.
**Example**
```c
static bool
load_and_evaluate_js_file (const jerry_value_t name, jerry_value_t *result)
{
bool return_value = false;
char *js_file_contents = NULL;
int file_size = 0;
jerry_size_t name_size = jerry_string_size (name, JERRY_ENCODING_UTF8);
jerry_char_t name_string[name_size + 1];
jerry_string_to_buffer (name, JERRY_ENCODING_UTF8, name_string, name_size);
name_string[name_size] = 0;
FILE *js_file = fopen (name_string, "r");
if (js_file)
{
/* We have successfully opened the file. Now, we establish its size. */
file_size = fseek (js_file, 0, SEEK_END);
fseek (js_file, 0, SEEK_SET);
/* We allocate enough memory to store the contents of the file. */
js_file_contents = malloc (file_size);
if (js_file_contents)
{
/* We read the file into memory and call jerry_eval (), assigning the result to the out-parameter. */
fread (js_file_contents, file_size, 1, js_file);
(*result) = jerry_eval (js_file_contents, file_size, JERRY_PARSE_NO_OPTS);
/* We release the memory holding the contents of the file. */
free (js_file_contents);
return_value = true;
}
/* We close the file. */
fclose (js_file);
}
return return_value;
}
static jerry_value_t
canonicalize_file_path (const jerry_value_t name)
{
jerry_value_t absolute_path;
/**
* Since a file on the file system can be referred to by multiple relative paths, but only by one absolute path, the
* absolute path becomes the canonical name for the module. Thus, to establish this canonical name, we must search
* name for "./" and "../", follow symlinks, etc., then create absolute_path via jerry_string () and return
* it, because it is the canonical name for this module. Thus, we avoid loading the same JavaScript file twice.
*/
return absolute_path;
}
static jerryx_module_resolver_t js_file_loader
{
canonicalize_file_path,
load_and_evaluate_js_file
};
```
We can now load JavaScript files:
```c
static const jerryx_module_resolver_t *resolvers[] =
{
/*
* Consult the resolver for native JerryScript modules first, in case the requested module is a native JerryScript
* module.
*/
&jerryx_module_native_resolver,
/*
* If the requested module is not a native JerryScript module, assume it is a JavaScript file on disk and use the
* above-defined JavaScript file loader to load it.
*/
&js_file_loader
};
jerry_value_t js_module = jerryx_module_resolve (requested_module, resolvers, 2);
```
# Module helper macros
## JERRYX_NATIVE_MODULE
**Summary**
Helper macro to define a native JerryScript module. Currently declares a global static structure of type
`jerryx_native_module_t` and a constructor/destructor pair that calls `jerryx_native_module_register()` resp.
`jerryx_native_module_unregister()`. If the extension is built without the FEATURE_INIT_FINI flag, indicating that
support for library constructors and destructors is absent, the constructor and destructor are declared as global
symbols so that they may be called explicitly from within the application.
**Note**: The helper macro must appear at the bottom of a source file, and no semicolon must follow it.
**Prototype**
```c
#define JERRYX_NATIVE_MODULE(module_name, on_resolve_cb)
```
- `module_name` - the name of the module without quotes. This value is used as the prefix for the registration and unregistration functions. For example, when `module_name` is `example_module`, this results in the declaration of two functions `example_module_register()` and `example_module_unregister()`. These functions are declared global if support for library constructors/destructors is absent, allowing you to call them from other parts of the code by
first forward-declaring them.
- `on_resolve_cb` - the function of type `jerryx_native_module_on_resolve_t` that will be called when the module needs to be
loaded.
**Example**
```c
#include "jerryscript.h"
#include "jerryscript-ext/module.h"
static jerry_value_t
my_module_on_resolve (void)
{
return jerry_function_external (very_useful_function);
} /* my_module_on_resolve */
/* Note that there is no semicolon at the end of the next line. This is how it must be. */
JERRYX_NATIVE_MODULE (my_module, my_module_on_resolve)
```
**Example Usage When Library Constructors Are Unavailable**
```c
#include "jerryscript.h"
#include "jerryscript-ext/module.h"
/**
* Forward-declare the module registration and unregistration function.
*/
extern void my_module_register (void);
extern void my_module_unregister (void);
int
main (int argc, char **argv)
{
jerryx_module_resolver_t resolvers[] =
{
jerryx_native_module_resolver
};
/* This plays the role of the library constructor. */
my_module_register ();
jerry_init (JERRY_INIT_EMPTY);
...
jerry_value_t my_module = jerryx_module_resolve ("my_module", resolvers, 1);
...
jerry_cleanup ();
/* This plays the role of the library destructor */
my_module_unregister();
return 0;
}
```
-230
View File
@@ -1,230 +0,0 @@
---
layout: page
title: 'Debugger Transport'
category: documents
permalink: /debugger-transport/
---
* toc
{:toc}
# JerryScript debugger transport interface
The transport interface support allows dynamic selection of transportation
layers which can encode/decode or send/receive messages transmitted between
the debugger client and server.
# Types
## jerry_debugger_transport_receive_context_t
**Summary**
This context represents the current status of processing received data.
The final state is returned by
[jerry_debugger_transport_receive](#jerry_debugger_transport_receive)
and must be passed to
[jerry_debugger_transport_receive_completed](#jerry_debugger_transport_receive_completed)
after the message is processed.
**Prototype**
```c
typedef struct
{
uint8_t *buffer_p; /**< buffer for storing the received data */
size_t received_length; /**< number of currently received bytes */
uint8_t *message_p; /**< start of the received message */
size_t message_length; /**< length of the received message */
size_t message_total_length; /**< total length for datagram protocols,
* 0 for stream protocols */
} jerry_debugger_transport_receive_context_t;
```
## jerry_debugger_transport_header_t
**Summary**
Shared header for each transport interface. It mostly contains callback functions
used by the JerryScript debugger server.
**Prototype**
```c
typedef struct jerry_debugger_transport_layer_t
{
/* The following fields must be filled before calling jerry_debugger_transport_add(). */
jerry_debugger_transport_close_t close; /**< close connection callback */
jerry_debugger_transport_send_t send; /**< send data callback */
jerry_debugger_transport_receive_t receive; /**< receive data callback */
/* The following fields are filled by jerry_debugger_transport_add(). */
struct jerry_debugger_transport_layer_t *next_p; /**< next transport layer */
} jerry_debugger_transport_header_t;
```
## jerry_debugger_transport_close_t
**Summary**
Called when the connection is closed. Must release all resources (including the
memory area for the transport interface) allocated for the transport interface.
**Prototype**
```c
typedef void (*jerry_debugger_transport_close_t) (struct jerry_debugger_transport_interface_t *header_p);
```
## jerry_debugger_transport_send_t
**Summary**
Called when a message needs to be sent. Must either transmit the message or call
the `header_p->next_p->send()` method.
**Prototype**
```c
typedef bool (*jerry_debugger_transport_send_t) (struct jerry_debugger_transport_interface_t *header_p,
uint8_t *message_p,
size_t message_length);
```
## jerry_debugger_transport_receive_t
**Summary**
Called during message processing. If messages are available it must return with
the next message.
**Prototype**
```c
typedef bool (*jerry_debugger_transport_receive_t) (struct jerry_debugger_transport_interface_t *header_p,
jerry_debugger_transport_receive_context_t *context_p);
```
# Transport interface API functions
## jerry_debugger_transport_add
**Summary**
Add a new interface to the transportation interface chain. The interface
will be the first item of the interface chain.
**Prototype**
```c
void jerry_debugger_transport_add (jerry_debugger_transport_header_t *header_p,
size_t send_message_header_size,
size_t max_send_message_size,
size_t receive_message_header_size,
size_t max_receive_message_size);
```
- `header_p`: header of a transportation interface.
- `send_message_header_size`: size of the outgoing message header, can be 0.
- `max_send_message_size`: maximum outgoing message size supported by the interface.
- `receive_message_header_size`: size of the incoming message header, can be 0.
- `max_receive_message_size`: maximum incoming message size supported by the interface.
## jerry_debugger_transport_start
**Summary**
Starts the communication to the debugger client. Must be called after the
connection is successfully established.
**Prototype**
```c
void jerry_debugger_transport_start (void);
```
## jerry_debugger_transport_is_connected
**Summary**
Tells whether a debugger client is connected to the debugger server.
**Prototype**
```c
bool jerry_debugger_transport_is_connected (void);
```
- return value: `true`, if a client is connected, `false` otherwise.
## jerry_debugger_transport_close
**Summary**
Disconnect from the current debugger client. It does nothing if a client is
not connected.
**Prototype**
```c
void jerry_debugger_transport_close (void);
```
## jerry_debugger_transport_send
**Summary**
Send message to the client.
**Prototype**
```c
bool jerry_debugger_transport_send (const uint8_t *message_p, size_t message_length);
```
- `message_p`: message to be sent.
- `message_length`: message length in bytes.
- return value: `true`, if a client is still connected, `false` otherwise.
## jerry_debugger_transport_receive
**Summary**
Receive message from the client.
**Prototype**
```c
bool jerry_debugger_transport_receive (jerry_debugger_transport_receive_context_t *context_p);
```
- `context_p`: an unused [jerry_debugger_transport_receive_context_t](#jerry_debugger_transport_receive_context_t).
- return value: `true`, if a client is still connected, `false` otherwise.
## jerry_debugger_transport_receive_completed
**Summary**
Must be called after [jerry_debugger_transport_receive](#jerry_debugger_transport_receive)
returns with a valid message. Must not be called otherwise.
**Prototype**
```c
void jerry_debugger_transport_receive_completed (jerry_debugger_transport_receive_context_t *context_p);
```
- `context_p`: a [jerry_debugger_transport_receive_context_t](#jerry_debugger_transport_receive_context_t)
passed to [jerry_debugger_transport_receive](#jerry_debugger_transport_receive).
## jerry_debugger_transport_sleep
**Summary**
Can be used to wait for incoming messages. Currently the delay is 100ms.
**Prototype**
```c
void jerry_debugger_transport_sleep (void);
```
-122
View File
@@ -1,122 +0,0 @@
---
layout: page
title: 'Extension API: Handle Scope'
category: documents
permalink: /ext-reference-handle-scope/
---
* toc
{:toc}
# Handle Scope
## jerryx_handle_scope
**Summary**
It is often necessary to make the lifespan of handles shorter than the lifespan of a native method. Even though the native code could only use the most recent handle, all of the associated objects would also be kept alive since they all share the same scope.
To handle this case, JerryScript HandleScope extension provides the ability to establish a new 'scope' to which newly created handles will be associated. Once those handles are no longer required, the scope can be 'closed' and any handles associated with the scope are invalidated. The methods available to open/close scopes are `jerryx_open_handle_scope` and `jerryx_close_handle_scope`.
JerryScript only supports a single nested hierarchy of scopes. There is only one active scope at any time, and all new handles will be associated with that scope while it is active. Scopes must be closed in the reverse order from which they are opened. In addition, all scopes created within a native method must be closed before returning from that method.
**Example**
[doctest]: # ()
```c
#include "jerryscript.h"
#include "jerryscript-ext/handle-scope.h"
static jerry_value_t
create_object (void)
{
jerry_value_t obj = jerry_object ();
return obj;
} /* create_object */
static void
test_handle_scope_val (void)
{
jerryx_handle_scope scope;
jerryx_open_handle_scope (&scope);
jerry_value_t obj = jerryx_create_handle (create_object ());
jerryx_close_handle_scope (scope);
// now obj has been released
} /* test_handle_scope_val */
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
test_handle_scope_val ();
jerry_heap_gc (JERRY_GC_PRESSURE_LOW);
jerry_cleanup ();
} /* main */
```
## jerryx_escapable_handle_scope
**Summary**
It is necessary in common cases that a handle has to be promote to outer scope and prevent from been garbage collected. To handle this case, a escapable handle scope has been proposed from which one object can be promoted to the outer scope. The method available to escape an object from been release at current scope is `jerryx_escape_handle`.
**Example**
[doctest]: # ()
```c
#include "jerryscript.h"
#include "jerryscript-ext/handle-scope.h"
static jerry_value_t
create_object (void)
{
jerryx_escapable_handle_scope scope;
jerryx_open_escapable_handle_scope (&scope);
jerry_value_t obj = jerryx_create_handle (jerry_object ());
jerry_value_t escaped_obj;
jerryx_escape_handle(scope, obj, &escaped_obj);
jerryx_close_handle_scope (scope);
// escaped_obj has now been escaped to outer scope, thus not released at this point
return escaped_obj;
} /* create_object */
static void
test_handle_scope_val (void)
{
jerryx_handle_scope scope;
jerryx_open_handle_scope (&scope);
jerry_value_t obj = create_object ();
jerryx_close_handle_scope (scope);
// now obj has been released
} /* test_handle_scope_val */
int
main (void)
{
jerry_init (JERRY_INIT_EMPTY);
test_handle_scope_val ();
jerry_heap_gc (JERRY_GC_PRESSURE_LOW);
jerry_cleanup ();
} /* main */
```
**See also**
- [jerry_value_t](../api-reference#jerry_value_t)
- [jerry_value_copy](../api-reference#jerry_value_copy)
- [jerry_value_free](../api-reference#jerry_value_free)
## Pre-allocated list of handle scopes and handles
To prevent trapping into system calls frequently, a pre-allocated dedicated list mechanism has been introduced to the implementation of JerryX handle scope.
To change the size of pre-allocation list, use build definition `JERRYX_HANDLE_PRELIST_SIZE` and `JERRYX_SCOPE_PRELIST_SIZE` to alter the default value of 20.
-169
View File
@@ -1,169 +0,0 @@
---
layout: page
title: 'Module System (EcmaScript2015)'
category: documents
permalink: /module-system/
---
* toc
{:toc}
# ES6 module support for JerryScript
The module system allows users to write import and export statements in scripts, which can be used to separate the logic of the application into custom modules.
The standard's relevant part can be found [here](https://www.ecma-international.org/ecma-262/6.0/#sec-modules).
Embedders wishing to use native builtin modules with ES6 imports can use the [Port API](05.PORT-API.md#jerry-module-system) to do so.
## General
If a script contains import statements, then JerryScript will open and evaluate the the referenced modules before the main script runs, resolving and creating bindings for the referenced identifiers in the process.
It is not necessary to use any specific filename extensions for modules, JerryScript will try to open the given file paths as they are, but will try to normalize them before doing so. The exact normalization process is dependant on the port implementation provided. It is the user's responsibility to verify that the given files are valid ECMAScript modules.
main.js
```js
import { exported_value } from "./module.js"
print (exported_value);
```
module.js
```js
var exported_value = 42;
export exported_value;
```
## Supported features
* exporting identifiers from the module's lexical environment
* specifying export names for the exported values
* importing exported identifiers from a module
* specifying local binding names for the imported values
* module namespace imports
* `import * as module from 'module.js`
* indirect export statements
* `export {variable} from 'module.js'`
* star export statements
* `export * from 'module.js'`
* importing a module for side-effects
* `import 'module.js'`
* default import and export statements
* `export default local_identifier`
* `import def from 'module.js'`
* anonymous default exports
* `export default function () {}`
### Example
```js
import {
engine,
version as v
} from "./module.js"
import { getFeatureDetails } from "./module_2.js"
var version = "v3.1415";
print("> main.js");
print(">> Engine: " + engine);
print(">> Version: " + v);
print (">> " + getFeatureDetails());
print (">> Script version: " + version);
```
```js
// module.js
var _engine = "JerryScript";
export _engine as engine;
export var version = "1.0 (e92ae0fb)";
```
```js
// module_2.js
var featureName = "ECMAScript modules";
var year = 2018;
export function getFeatureDetails() {
return "Feature name: " + featureName + " | developed in " + year;
}
```
### Module namespace import statements
A module namespace object can be imported. In this case the local binding will contain an object holding the exported values of the module, including local exports and all indirect exports. Ambiguous exported names are excluded from the namespace object.
```js
import * as module from './module.js';
print(">> Engine: " + module.engine);
print(">> Version: " + module.version);
```
### Indirect export statements
An export statement can transitively export variables from another module, either via named indirect exports or a star export statement. In this case the resolving process will follow the chain until it reaches a module containing a local binding for that export name. If there are multiple modules which satisfy the export, that means the export is ambiguous, and will result in a SyntaxError.
```js
import { a, b } from 'module.js'
print (a + b);
```
```js
// module.js
export var a = 2;
export { b } from 'module2.js'
```
```js
// module2.js
export var b = 40;
```
### Default imports and exports
Each module can optionally provide a single default export by using the `export default` statement. Default exports can either reference identifiers in the module's lexical environment, or be an anonymous default export, in which case they will only be accessible by an importing script.
```js
import defaultExport, { b as c } from 'module.js'
print (defaultExport); // 2
print (c ()); // 42
```
```js
// module.js
export default 2;
export function b () {
return 42;
}
```
### Importing modules for side-effects
Evaluate a module without importing anything. Any errors encountered in the module will be propagated.
```js
import 'module.js' // > module.js
// "> module.js" is printed
b (); // (ReferenceError) b is not defined
```
```js
// module.js
export function b () {
print ("> module.js");
return 42;
}
b ();
```
## Unsupported features
* **snapshot**
-783
View File
@@ -1,783 +0,0 @@
---
layout: page
title: Migration Guide
category: documents
permalink: /migration-guide/
---
* toc
{:toc}
# Migration guide
This guide intends to describe the major changes between the JerryScript 1.0 and 2.0 versions.
In addition it is designed to provide a guide on how to modify the 1.0 version code to a
2.0 compliant code.
During the development it was important to minimize the changes in the API functions and types.
Each API method removal or change is described below providing a ***before*** and ***after***
code example.
For more information on the current API methods please check the [API reference](02.API-REFERENCE.md) document.
# Short list of removed/renamed headers, types, functions, and macros
***Removed legacy headers***
- `jerry-internal.h`
***Renamed headers***
- `jerry-api.h` to `jerryscript.h`
- `jerry-port.h` to `jerryscript-port.h`
***Removed API types***
- `jerry_char_ptr_t` usage replaced with `jerry_char_t *`
- `jerry_object_free_callback_t` replaced by `jerry_object_native_free_callback_t`
***Removed API methods***
- `jerry_get_memory_limits`
- `jerry_get_object_native_handle` replaced by `jerry_get_object_native_pointer`
- `jerry_set_object_native_handle` replaced by `jerry_set_object_native_pointer`
- `jerry_value_set_abort_flag` replaced by `jerry_create_abort_from_value`
- `jerry_value_has_abort_flag` replaced by `jerry_value_is_abort`
- `jerry_value_set_error_flag` replaced by `jerry_create_error_from_value`
- `jerry_value_has_error_flag` replaced by `jerry_value_is_error`
- `jerry_value_clear_error_flag` replaced by `jerry_get_value_from_error`
- `jerry_get_value_without_error_flag` replaced by `jerry_get_value_from_error`
- `jerry_parse_and_save_snapshot` replaced by `jerry_generate_snapshot`
- `jerry_parse_and_save_function_snapshot` replaced by `jerry_generate_function_snapshot`
***Removed unused configuration macros***
- `CONFIG_MEM_DATA_LIMIT_MINUS_HEAP_SIZE`
- `CONFIG_MEM_STACK_LIMIT`
- `CONFIG_VM_STACK_FRAME_INLINED_VALUES_NUMBER`
- `CONFIG_ECMA_GLOBAL_ENVIRONMENT_DECLARATIVE`
- All `CONFIG_..` macros have been renamed to use the `JERRY_` prefix format.
# Modified API functions
## Error manipulating functions
The most important changes in the API are related to error handling and manipulation.
### jerry_value_set_abort_flag
This function was replaced with [`jerry_create_abort_from_value`](02.API-REFERENCE.md#jerry_create_abort_from_value).
Take note of the second argument of the new `jerry_create_abort_from_value` function which controls if the
first argument should be usable after the call or not.
**Before**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_set_abort_flag (&value);
jerry_release_value (value);
}
```
**After**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_t abort = jerry_create_abort_from_value (value, true);
// using the 'value' variable after release is invalid
jerry_release_value (abort);
}
```
- OR
```c
{
jerry_value_t value;
... // create or acquire value
jerry_value_t abort = jerry_create_abort_from_value (value, false);
// both 'abort' and 'value' can be used and must be released when they are no longer needed
jerry_release_value (abort);
jerry_release_value (value);
}
```
### jerry_value_has_abort_flag
This function was renamed to [`jerry_value_is_abort`](02.API-REFERENCE.md#jerry_value_is_abort).
**Before**
```c
{
jerry_value_t value;
// create or acquire value
// ...
if (jerry_value_has_abort_flag (value))
{
// ...
}
jerry_release_value (value);
}
```
**After**
```c
{
jerry_value_t value;
// create or acquire value
// ...
if (jerry_value_is_abort (value))
{
// ...
}
jerry_release_value (value);
}
```
### jerry_value_set_error_flag
This function was replaced with [`jerry_create_error_from_value`](02.API-REFERENCE.md#jerry_create_error_from_value).
Take note of the second argument of the new `jerry_create_error_from_value` function which controls if the
first argument should be usable after the call or not.
**Before**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_set_error_flag (&value);
jerry_release_value (value);
}
```
**After**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_t error = jerry_create_error_from_value (value, true);
// using the 'value' variable after release is invalid
jerry_release_value (error);
}
```
- OR
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_t error = jerry_create_error_from_value (value, false);
// both 'error' and 'value' can be used and must be released when they are no longer needed
jerry_release_value (error);
jerry_release_value (value);
}
```
### jerry_value_has_error_flag
This function was renamed to [`jerry_value_is_error`](02.API-REFERENCE.md#jerry_value_is_error).
**Before**
```c
{
jerry_value_t value;
// create or acquire value
// ...
if (jerry_value_has_error_flag (value))
{
// ...
}
jerry_release_value (value);
}
```
**After**
```c
{
jerry_value_t value;
// create or acquire value
// ...
if (jerry_value_is_error (value))
{
// ...
}
jerry_release_value (value);
}
```
### jerry_value_clear_error_flag AND jerry_get_value_without_error_flag
These functions were merged into [`jerry_get_value_from_error`](02.API-REFERENCE.md#jerry_get_value_from_error).
Please note the second argument of the new function which controls if the first argument passed should be released
or not.
**Before**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_set_error_flag (&value);
jerry_value_clear_error_flag (&value);
// or
jerry_value_t real_value = jerry_get_value_without_error_flag (value);
jerry_release_value (value);
jerry_release_value (real_value);
}
```
**After**
```c
{
jerry_value_t value;
// create or acquire value
// ...
jerry_value_t error = jerry_create_error_from_value (value, true);
jerry_value_t real_value = jerry_get_value_from_error (error, true);
jerry_release_value (real_value);
}
```
## Other functions changed
### jerry_register_magic_strings
In case of the `jerry_register_magic_strings` function the change is that
the first argument's base type `jerry_char_ptr_t` was changed to `jerry_char_t*`.
For more details see: [`jerry_register_magic_strings`](02.API-REFERENCE.md#jerry_register_magic_strings).
In the following code parts please take note of the type used for the `magic_string_items` array.
**Before**
```c
{
// must be static, because 'jerry_register_magic_strings' does not copy
// the items must be sorted by size at first, then lexicographically
static const jerry_char_ptr_t magic_string_items[] = {
(const jerry_char_ptr_t) "magicstring1",
(const jerry_char_ptr_t) "magicstring2",
(const jerry_char_ptr_t) "magicstring3"
};
uint32_t num_magic_string_items = (uint32_t) (sizeof (magic_string_items) / sizeof (jerry_char_ptr_t));
// must be static, because 'jerry_register_magic_strings' does not copy
static const jerry_length_t magic_string_lengths[] = { 12, 12, 12 };
jerry_register_magic_strings (magic_string_items, num_magic_string_items, magic_string_lengths);
}
```
**After**
```c
{
// must be static, because 'jerry_register_magic_strings' does not copy
// the items must be sorted by size at first, then lexicographically
static const jerry_char_t *magic_string_items[] = {
(const jerry_char_t *) "magicstring1",
(const jerry_char_t *) "magicstring2",
(const jerry_char_t *) "magicstring3"
};
uint32_t num_magic_string_items = (uint32_t) (sizeof (magic_string_items) / sizeof (jerry_char_t *));
// must be static, because 'jerry_register_magic_strings' does not copy
static const jerry_length_t magic_string_lengths[] = { 12, 12, 12 };
jerry_register_magic_strings (magic_string_items, num_magic_string_items, magic_string_lengths);
}
```
## Snapshot generating API
### jerry_parse_and_save_snapshot
This function was replaced with [`jerry_generate_snapshot`](02.API-REFERENCE.md#jerry_generate_snapshot).
The function returns an error object if there was any problem during snapshot generation and
if there was no problem the return value is a number value containing the snapshot size in bytes.
**Before**
```c
{
static uint32_t global_mode_snapshot_buffer[256];
const jerry_char_t *code_to_snapshot_p = (const jerry_char_t *) "(function () { return 'string from snapshot'; }) ();";
size_t global_mode_snapshot_size =
jerry_parse_and_save_snapshot (code_to_snapshot_p,
strlen ((const char *) code_to_snapshot_p),
true,
false,
global_mode_snapshot_buffer,
sizeof (global_mode_snapshot_buffer) / sizeof (uint32_t));
// use "global_mode_snapshot_buffer"
}
```
**After**
```c
{
static uint32_t global_mode_snapshot_buffer[256];
const jerry_char_t *code_to_snapshot_p = (const jerry_char_t *) "(function () { return 'string from snapshot'; }) ();";
jerry_value_t generate_result;
generate_result = jerry_generate_snapshot (NULL,
0,
code_to_snapshot_p,
strlen ((const char *) code_to_snapshot_p),
global_mode_snapshot_buffer,
sizeof (global_mode_snapshot_buffer) / sizeof (uint32_t));
if (jerry_value_is_error (generate_result))
{
// There was a problem during snapshot generation, for example there is a SyntaxError.
// Use the "generate_result" to check the error.
}
else
{
size_t snapshot_size = (size_t) jerry_get_number_value (generate_result);
// use "global_mode_snapshot_buffer"
}
jerry_release_value (generate_result);
}
```
### jerry_parse_and_save_function_snapshot
This function was replaced with [`jerry_generate_function_snapshot`](02.API-REFERENCE.md#jerry_parse_and_save_function_snapshot).
The function returns an error object if there was any problem during snapshot generation and
if there was no problem the return value is a number value containing the snapshot size in bytes.
**Before**
```c
{
static uint32_t func_snapshot_buffer[1024];
const jerry_char_t *args_p = (const jerry_char_t *) "a, b";
const jerry_char_t *src_p = (const jerry_char_t *) "return a + b;";
size_t func_snapshot_size =
jerry_parse_and_save_function_snapshot (src_p,
strlen ((const char *) src_p),
args_p,
strlen ((const char *) args_p),
false,
func_snapshot_buffer,
sizeof (func_snapshot_buffer) / sizeof (uint32_t));
// check "function_snapshot_size" and use "func_snapshot_buffer"
}
```
**After**
```c
{
static uint32_t func_snapshot_buffer[1024];
const jerry_char_t *args_p = (const jerry_char_t *) "a, b";
const jerry_char_t *src_p = (const jerry_char_t *) "return a + b;";
jerry_value_t generate_result;
generate_result = jerry_generate_function_snapshot (NULL,
0,
src_p,
strlen ((const char *) src_p),
args_p,
strlen ((const char *) args_p),
0,
func_snapshot_buffer,
sizeof (func_snapshot_buffer) / sizeof (uint32_t));
if (jerry_value_is_error (generate_result))
{
// There was a problem during snapshot generation, for example there is a SyntaxError.
// Use the "generate_result" to check the error.
}
else
{
size_t snapshot_size = (size_t) jerry_get_number_value (generate_result);
// use "func_snapshot_buffer"
}
jerry_release_value (generate_result)
}
```
## Garbage collection
### jerry_gc
The [`jerry_gc`](02.API-REFERENCE.md#jerry_gc) function was modified to handle an argument which represents the pressure for the garbage collector.
For more information checkout the [`jerry_gc_mode_t`](02.API-REFERENCE.md#jerry_gc_mode_t) reference.
**Before**
```c
{
jerry_gc ();
}
```
**After**
```c
{
jerry_gc (JERRY_GC_PRESSURE_LOW);
}
```
## jerry_eval
The third argument of [`jerry_eval`](02.API-REFERENCE.md#jerry_eval) has been changed
from `bool` to [`jerry_parse_opts_t`](02.API-REFERENCE.md#jerry_parse_opts_t).
**Before**
```c
const jerry_char_t *str_to_eval = (const jerry_char_t *) "1 + 1";
jerry_value_t ret_val = jerry_eval (str_to_eval,
strlen ((const char *) str_to_eval),
false);
```
**After**
```c
const jerry_char_t *str_to_eval = (const jerry_char_t *) "1 + 1";
jerry_value_t ret_val = jerry_eval (str_to_eval,
strlen ((const char *) str_to_eval),
JERRY_PARSE_NO_OPTS);
```
## Port API
### jerry_port_get_time_zone
The port API of handling timezones has been changed. The previous interface did not
allow timezones to be handled correctly, even if the host system was up to the task.
Check [the related issue](https://github.com/jerryscript-project/jerryscript/issues/1661)
for more details.
The new port API function name is [jerry_port_get_local_time_zone_adjustment](05.PORT-API.md#date-1].
Below is the default implementations for both versions:
**Before**
```c
bool jerry_port_get_time_zone (jerry_time_zone_t *tz_p)
{
struct timeval tv;
struct timezone tz;
/* gettimeofday may not fill tz, so zero-initializing */
tz.tz_minuteswest = 0;
tz.tz_dsttime = 0;
if (gettimeofday (&tv, &tz) != 0)
{
return false;
}
tz_p->offset = tz.tz_minuteswest;
tz_p->daylight_saving_time = tz.tz_dsttime > 0 ? 1 : 0;
return true;
} /* jerry_port_get_time_zone */
```
**After**
```c
double jerry_port_get_local_time_zone_adjustment (double unix_ms,
bool is_utc)
{
struct tm tm;
time_t now = (time_t) (unix_ms / 1000);
localtime_r (&now, &tm);
if (!is_utc)
{
now -= tm.tm_gmtoff;
localtime_r (&now, &tm);
}
return ((double) tm.tm_gmtoff) * 1000;
} /* jerry_port_get_local_time_zone_adjustment */
```
## Native pointers
The assignment of native pointers (previously called handles) have been changed
since v1.0. In the previous version only one native pointer could be assigned to
a `jerry_value_t`. Now it is allowed to register multiple native infos, which
can be accessed with the corresponding
[`jerry_object_native_info_t`](02.API-REFERENCE.md#jerry_object_native_info_t).
The old functions were removed and replaced by new ones.
- `jerry_object_free_callback_t` callback type is replaced by `jerry_object_native_info_t`
- `jerry_get_object_native_handle` is replaced by [`jerry_get_object_native_pointer`](02.API-REFERENCE.md#jerry_get_object_native_pointer)
- `jerry_set_object_native_handle` is replaced by [`jerry_set_object_native_pointer`](02.API-REFERENCE.md#jerry_set_object_native_pointer)
**Before**
```c
struct
{
int data;
} my_info;
static void
handler_construct_freecb (uintptr_t native_p)
{
// Invoked when the JS object is released and the
// native data should be freed.
struct my_info *info = (struct my_info *) native_p;
free (info);
}
void
demo (void)
{
jerry_value_t this_val;
// create or acquire this_val
// ...
struct my_info *info = (struct my_info *) malloc (sizeof (struct my_info));
info->data = 11;
// setting the native handle
jerry_set_object_native_handle (this_val,
(uintptr_t) info,
handler_construct_freecb);
// ...
// reading back the native handle
uintptr_t ptr = (uintptr_t) NULL;
bool is_ok = jerry_get_object_native_handle (this_val, &ptr);
if (is_ok)
{
struct my_info *obj_info = (struct my_info *) ptr;
// use "obj_info"
}
}
```
**After**
```c
struct
{
int data;
} my_info;
static void
handler_construct_freecb (void *native_p)
{
// Invoked when the JS object is released and the
// native data should be freed.
struct my_info *info = (struct my_info *) native_p;
free (info);
}
static const jerry_object_native_info_t my_info_type_info =
{
.free_cb = handler_construct_freecb
};
void
demo (void)
{
jerry_value_t this_val;
// create or acquire this_val
// ...
struct my_info *info = (struct my_info *) malloc (sizeof (struct my_info));
info->data = 11;
// setting the native handle
jerry_set_object_native_pointer (this_val,
info,
&my_info_type_info);
// ...
// reading back the native handle pointed by the "my_info_type_info" variable
void *ptr = NULL;
bool has_p = jerry_get_object_native_pointer (this_val, &ptr, &my_info_type_info);
if (has_p)
{
struct my_info *obj_info = (struct my_info *) ptr;
// use "obj_info"
}
}
```
# New API functions
In this section the new API functions are listed.
## Built-in objects
***ArrayBuffer***
- [`jerry_create_arraybuffer`](02.API-REFERENCE.md#jerry_create_arraybuffer)
- [`jerry_create_arraybuffer_external`](02.API-REFERENCE.md#jerry_create_arraybuffer_external)
- [`jerry_get_arraybuffer_pointer`](02.API-REFERENCE.md#jerry_get_arraybuffer_pointer)
***DataView***
- [`jerry_create_dataview`](02.API-REFERENCE.md#jerry_create_dataview)
- [`jerry_value_is_dataview`](02.API-REFERENCE.md#jerry_value_is_dataview)
- [`jerry_get_dataview_buffer`](02.API-REFERENCE.md#jerry_get_dataview_buffer)
***JSON***
- [`jerry_json_parse`](02.API-REFERENCE.md#jerry_json_parse)
- [`jerry_json_stringify`](02.API-REFERENCE.md#jerry_json_stringify)
***Number***
- [`jerry_create_number_infinity`](02.API-REFERENCE.md#jerry_create_number_infinity)
- [`jerry_create_number_nan`](02.API-REFERENCE.md#jerry_create_number_nan)
***Promise***
- [`jerry_run_all_enqueued_jobs`](02.API-REFERENCE.md#jerry_run_all_enqueued_jobs)
- [`jerry_create_promise`](02.API-REFERENCE.md#jerry_create_promise)
- [`jerry_resolve_or_reject_promise`](02.API-REFERENCE.md#jerry_resolve_or_reject_promise)
- [`jerry_value_is_promise`](02.API-REFERENCE.md#jerry_value_is_promise)
***RegExp***
- [`jerry_create_regexp`](02.API-REFERENCE.md#jerry_create_regexp)
- [`jerry_create_regexp_sz`](02.API-REFERENCE.md#jerry_create_regexp_sz)
***String***
- [`jerry_substring_to_utf8_char_buffer`](02.API-REFERENCE.md#jerry_substring_to_utf8_char_buffer)
- [`jerry_get_utf8_string_size`](02.API-REFERENCE.md#jerry_get_utf8_string_size)
- [`jerry_get_utf8_string_length`](02.API-REFERENCE.md#jerry_get_utf8_string_length)
- [`jerry_create_string_from_utf8`](02.API-REFERENCE.md#jerry_create_string_from_utf8)
- [`jerry_create_string_sz_from_utf8`](02.API-REFERENCE.md#jerry_create_string_sz_from_utf8)
***Symbol***
- [`jerry_create_symbol`](02.API-REFERENCE.md#jerry_create_symbol)
- [`jerry_get_symbol_descriptive_string`](02.API-REFERENCE.md#jerry_get_symbol_descriptive_string)
- [`jerry_value_is_symbol`](02.API-REFERENCE.md#jerry_value_is_symbol)
***TypedArray***
- [`jerry_create_typedarray`](02.API-REFERENCE.md#jerry_create_typedarray)
- [`jerry_create_typedarray_for_arraybuffer`](02.API-REFERENCE.md#jerry_create_typedarray_for_arraybuffer)
- [`jerry_create_typedarray_for_arraybuffer_sz`](02.API-REFERENCE.md#jerry_create_typedarray_for_arraybuffer_sz)
- [`jerry_get_typedarray_type`](02.API-REFERENCE.md#jerry_get_typedarray_type)
- [`jerry_get_typedarray_length`](02.API-REFERENCE.md#jerry_get_typedarray_length)
- [`jerry_get_typedarray_buffer`](02.API-REFERENCE.md#jerry_get_typedarray_buffer)
- [`jerry_value_is_typedarray`](02.API-REFERENCE.md#jerry_value_is_typedarray)
## Instances and memory management
***JerryScript instances***
- [`jerry_create_context`](02.API-REFERENCE.md#jerry_create_context)
- [`jerry_get_context_data`](02.API-REFERENCE.md#jerry_get_context_data)
***Memory management***
- [`jerry_heap_alloc`](02.API-REFERENCE.md#jerry_heap_alloc)
- [`jerry_heap_free`](02.API-REFERENCE.md#jerry_heap_free)
## Operations with JavaScript values
***Binary operations***
- [`jerry_binary_operation`](02.API-REFERENCE.md#jerry_binary_operation)
***Error manipulating***
- [`jerry_get_error_type`](02.API-REFERENCE.md#jerry_get_error_type)
- [`jerry_get_backtrace`](02.API-REFERENCE.md#jerry_get_backtrace)
***Native pointers***
- [`jerry_delete_object_native_pointer`](02.API-REFERENCE.md#jerry_delete_object_native_pointer)
- [`jerry_objects_foreach_by_native_info`](02.API-REFERENCE.md#jerry_objects_foreach_by_native_info)
***Property***
- [`jerry_delete_property_by_index`](02.API-REFERENCE.md#jerry_delete_property_by_index)
- [`jerry_objects_foreach`](02.API-REFERENCE.md#jerry_objects_foreach)
## Debugger
- [`jerry_debugger_is_connected`](07.DEBUGGER.md#jerry_debugger_is_connected)
- [`jerry_debugger_stop`](07.DEBUGGER.md#jerry_debugger_stop)
- [`jerry_debugger_continue`](07.DEBUGGER.md#jerry_debugger_continue)
- [`jerry_debugger_stop_at_breakpoint`](07.DEBUGGER.md#jerry_debugger_stop_at_breakpoint)
- [`jerry_debugger_wait_for_client_source`](07.DEBUGGER.md#jerry_debugger_wait_for_client_source)
- [`jerry_debugger_send_output`](07.DEBUGGER.md#jerry_debugger_send_output)
- [`jerry_debugger_send_log`](07.DEBUGGER.md#jerry_debugger_send_log)
## Other
- [`jerry_is_feature_enabled`](02.API-REFERENCE.md#jerry_is_feature_enabled)
- [`jerry_parse_and_save_literals`](02.API-REFERENCE.md#jerry_parse_and_save_literals)
- [`jerry_set_vm_exec_stop_callback`](02.API-REFERENCE.md#jerry_set_vm_exec_stop_callback)
## Port API functions
- [`jerry_port_normalize_path`](05.PORT-API.md#jerry_port_normalize_path)
- [`jerry_port_read_source`](05.PORT-API.md#jerry_port_read_source)
- [`jerry_port_release_source`](05.PORT-API.md#jerry_port_release_source)
- [`jerry_port_print_char`](05.PORT-API.md#jerry_port_print_char)
- [`jerry_port_get_current_context`](05.PORT-API.md#jerry_port_get_current_context)
- [`jerry_port_fatal`](05.PORT-API.md#jerry_port_fatal)
- [`jerry_port_sleep`](05.PORT-API.md#jerry_port_sleep)
- [`jerry_port_print_byte`](05.PORT-API.md#jerry_port_print_byte)
+230
View File
@@ -0,0 +1,230 @@
# Copyright 2015-2016 Samsung Electronics Co., Ltd.
# Copyright 2016 University of Szeged.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cmake_minimum_required (VERSION 2.8.12)
project (Jerry C ASM)
# Determining platform
set(PLATFORM "${CMAKE_SYSTEM_NAME}")
string(TOUPPER "${PLATFORM}" PLATFORM)
# Remove rdynamic option
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS )
# Components
set(JERRY_CORE ON CACHE BOOL "Use jerry-core?")
set(JERRY_LIBC ON CACHE BOOL "Use jerry-libc?")
set(JERRY_LIBM ON CACHE BOOL "Use jerry-libm?")
set(JERRY_CMDLINE ON CACHE BOOL "Use jerry command line tool?")
set(UNITTESTS OFF CACHE BOOL "Use unit tests?")
# Optional build settings
set(PORT_DIR "${CMAKE_SOURCE_DIR}/targets/default" CACHE STRING "Should we use default or external port?")
set(COMPILER_DEFAULT_LIBC OFF CACHE BOOL "Enable compiler default libc?")
set(ENABLE_LTO OFF CACHE BOOL "Enable LTO build?")
set(ENABLE_ALL_IN_ONE ON CACHE BOOL "Enable all-in-one build?")
set(ENABLE_STRIP ON CACHE BOOL "Discards all symbols from object files?")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
if("${PLATFORM}" STREQUAL "DARWIN")
set(ENABLE_LTO "OFF")
set(ENABLE_ALL_IN_ONE "ON")
set(JERRY_LIBC "OFF")
set(JERRY_LIBM "OFF")
set(COMPILER_DEFAULT_LIBC "ON")
endif()
if(JERRY_LIBC AND COMPILER_DEFAULT_LIBC)
message(FATAL_ERROR "JERRY_LIBC and COMPILER_DEFAULT_LIBC is enabled at the same time!")
endif()
# Status messages
message(STATUS "CMAKE_SYSTEM_NAME " ${CMAKE_SYSTEM_NAME})
message(STATUS "CMAKE_SYSTEM_PROCESSOR " ${CMAKE_SYSTEM_PROCESSOR})
message(STATUS "CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE})
message(STATUS "JERRY_CORE " ${JERRY_CORE})
message(STATUS "JERRY_LIBC " ${JERRY_LIBC})
message(STATUS "JERRY_LIBM " ${JERRY_LIBM})
message(STATUS "JERRY_CMDLINE " ${JERRY_CMDLINE})
message(STATUS "UNITTESTS " ${UNITTESTS})
message(STATUS "PORT_DIR " ${PORT_DIR})
message(STATUS "COMPILER_DEFAULT_LIBC " ${COMPILER_DEFAULT_LIBC})
message(STATUS "ENABLE_LTO " ${ENABLE_LTO})
message(STATUS "ENABLE_ALL_IN_ONE " ${ENABLE_ALL_IN_ONE})
message(STATUS "ENABLE_STRIP " ${ENABLE_STRIP})
# Setup directories
# Project binary dir
set(PROJECT_BINARY_DIR "${CMAKE_BINARY_DIR}")
# Library output directory
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/")
# Executable output directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/")
# Archive targets output Directory
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/")
# Compile/link flags
# Helper macros
macro(jerry_add_flags VAR)
foreach(_flag ${ARGN})
set(${VAR} "${${VAR}} ${_flag}")
endforeach()
endmacro()
macro(jerry_add_compile_flags)
jerry_add_flags(CMAKE_C_FLAGS ${ARGV})
endmacro()
macro(jerry_add_compile_warnings)
foreach(_warning ${ARGV})
jerry_add_compile_flags(-W${_warning})
if(CMAKE_COMPILER_IS_GNUCC)
jerry_add_compile_flags(-Werror=${_warning})
endif()
endforeach()
endmacro()
macro(jerry_add_link_flags)
jerry_add_flags(LINKER_FLAGS_COMMON ${ARGV})
endmacro()
# build mode specific compile/link flags
set(CMAKE_C_FLAGS_RELEASE "-Os")
# Architecture-specific compile/link flags
jerry_add_compile_flags(${FLAGS_COMMON_ARCH})
jerry_add_flags(CMAKE_EXE_LINKER_FLAGS ${FLAGS_COMMON_ARCH})
# LTO
if(ENABLE_LTO)
jerry_add_compile_flags(-flto)
jerry_add_link_flags(-flto)
if(CMAKE_COMPILER_IS_GNUCC)
if(NOT "${PLATFORM}" STREQUAL "DARWIN")
jerry_add_compile_flags(-fno-fat-lto-objects)
endif()
# Use gcc-ar and gcc-ranlib to support LTO
set(CMAKE_AR "gcc-ar")
set(CMAKE_RANLIB "gcc-ranlib")
endif()
endif()
# Define _BSD_SOURCE if we use default port and compiler default libc
if(${PORT_DIR} STREQUAL "${CMAKE_SOURCE_DIR}/targets/default" AND COMPILER_DEFAULT_LIBC)
set(DEFINES_JERRY ${DEFINES_JERRY} _BSD_SOURCE)
endif()
# Imported targets prefix
set(PREFIX_IMPORTED_LIB imported_)
# Imported libraries
if(("${PLATFORM}" STREQUAL "DARWIN") AND (NOT CMAKE_COMPILER_IS_GNUCC))
# libclang_rt.osx
set(IMPORTED_LIB "${PREFIX_IMPORTED_LIB}libclang_rt.osx")
add_library(${IMPORTED_LIB} STATIC IMPORTED)
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=
OUTPUT_VARIABLE IMPORTED_LIBCLANG_RT_LOCATION
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(IMPORTED_LIBCLANG_RT_LOCATION "${IMPORTED_LIBCLANG_RT_LOCATION}/lib/darwin/libclang_rt.osx.a")
set_property(TARGET ${IMPORTED_LIB}
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBCLANG_RT_LOCATION})
else()
# libgcc
set(IMPORTED_LIB "${PREFIX_IMPORTED_LIB}libgcc")
add_library(${IMPORTED_LIB} STATIC IMPORTED)
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libgcc.a
OUTPUT_VARIABLE IMPORTED_LIBGCC_LOCATION
OUTPUT_STRIP_TRAILING_WHITESPACE)
set_property(TARGET ${IMPORTED_LIB}
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_LOCATION})
endif()
# Compiler / Linker flags
jerry_add_compile_flags(-fno-builtin)
if(("${PLATFORM}" STREQUAL "DARWIN"))
jerry_add_link_flags(-lSystem)
else()
jerry_add_link_flags(-Wl,-z,noexecstack)
endif()
# Turn off linking to compiler's default libc, in case jerry-libc or external is used
if(NOT COMPILER_DEFAULT_LIBC)
jerry_add_link_flags(-nostdlib)
endif()
# Turn off stack protector
jerry_add_compile_flags(-fno-stack-protector)
# Debug information
jerry_add_compile_flags(-g -gdwarf-4)
jerry_add_compile_warnings(all extra format-nonliteral init-self conversion sign-conversion format-security missing-declarations)
jerry_add_compile_flags(-Wno-stack-protector -Wno-attributes)
if(CMAKE_COMPILER_IS_GNUCC)
if(JERRY_LIBC)
jerry_add_compile_flags(-Werror)
endif()
jerry_add_compile_warnings(logical-op)
else()
jerry_add_compile_flags(-Wno-nested-anon-types)
endif()
if(DEFINED EXTERNAL_COMPILE_FLAGS)
jerry_add_compile_flags(${EXTERNAL_COMPILE_FLAGS})
endif()
if(DEFINED EXTERNAL_LINKER_FLAGS)
jerry_add_link_flags(${EXTERNAL_LINKER_FLAGS})
endif()
# C
jerry_add_compile_flags(-std=c99 -pedantic)
# Strip binary
if(ENABLE_STRIP AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
jerry_add_link_flags(-s)
endif()
# Jerry's libc
if(JERRY_LIBC)
add_subdirectory(jerry-libc)
endif()
# Jerry's libm
if(JERRY_LIBM)
add_subdirectory(jerry-libm)
endif()
# Jerry's core
if(JERRY_CORE)
add_subdirectory(jerry-core)
endif()
# Jerry commandline tool
if(JERRY_CMDLINE)
add_subdirectory(jerry-main)
endif()
# Unittests
if(UNITTESTS)
add_subdirectory(tests/unit)
endif()
-1
View File
@@ -1 +0,0 @@
jerryscript.net
+2384
View File
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
Copyright 2014-2016 Samsung Electronics Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

+2430
View File
File diff suppressed because one or more lines are too long
+46
View File
@@ -0,0 +1,46 @@
![](https://github.com/Samsung/jerryscript/blob/master/LOGO.png)
# JerryScript: JavaScript engine for the Internet of Things
[![License](https://img.shields.io/badge/licence-Apache%202.0-brightgreen.svg?style=flat)](LICENSE)
[![Build Status](https://travis-ci.org/Samsung/jerryscript.svg?branch=master)](https://travis-ci.org/Samsung/jerryscript)
JerryScript is a lightweight JavaScript engine for resource-constrained devices such as microcontrollers. It can run on devices with less than 64 KB of RAM and less than 200 KB of flash memory.
Key characteristics of JerryScript:
* Full ECMAScript 5.1 standard compliance
* 160K binary size when compiled for ARM Thumb-2
* Heavily optimized for low memory consumption
* Written in C99 for maximum portability
* Snapshot support for precompiling JavaScript source code to byte code
* Mature C API, easy to embed in applications
Additional information can be found on our [project page](http://samsung.github.io/jerryscript) and [Wiki](https://github.com/Samsung/jerryscript/wiki).
IRC channel: #jerryscript on [freenode](https://freenode.net)
Mailing list: jerryscript-dev@gna.org, you can subscribe [here](https://mail.gna.org/listinfo/jerryscript-dev) and access the mailing list archive [here](https://mail.gna.org/public/jerryscript-dev).
## Quick Start
### Getting the sources
```bash
git clone https://github.com/Samsung/jerryscript.git
cd jerryscript
```
### Building JerryScript
```bash
python tools/build.py
```
For additional information see [Getting Started](docs/01.GETTING-STARTED.md).
## Documentation
- [Getting Started](docs/01.GETTING-STARTED.md)
- [API Reference](docs/02.API-REFERENCE.md)
- [API Example](docs/03.API-EXAMPLE.md)
- [Internals](docs/04.INTERNALS.md)
## License
JerryScript is Open Source software under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). Complete license and copyright information can be found in the source code.
> Copyright 2015 Samsung Electronics Co., Ltd.
> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-4
View File
@@ -1,4 +0,0 @@
# Site settings
title: JerryScript Engine
description: JerryScript is a very lightweight JavaScript engine with capability to run on microcontrollers with less than 8KB of RAM.
# baseurl: "/jerryscript" # the subpath of your site, e.g. /blog/
-5
View File
@@ -1,5 +0,0 @@
<footer class="footer">
<div class="container">
<p class="copyright_and_license_notice">JerryScript is an open source project under the <a href="http://www.apache.org/licenses/">Apache License, Version 2.0.</a></p>
</div>
</footer>
-22
View File
@@ -1,22 +0,0 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
<meta name="author" content="JerryScript">
<title>JavaScript engine for Internet of Things{% if page.title %}: {{ page.title }} {% endif %}</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="{{ '/css/bootstrap.min.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/css/table.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/css/bytecode.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/css/block.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/css/main.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/css/img.css' | relative_url }}">
<script>
window.addEventListener("hashchange", function() { scrollBy(0, -50) });
</script>
</head>
-47
View File
@@ -1,47 +0,0 @@
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ '/' | relative_url }}"><b>JerryScript</b></a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
{% if page.url == "/" %}
<li class="active"><a href="{{ '/' | relative_url }}">Home</a></li>
{% else %}
<li><a href="{{ '/' | relative_url }}">Home</a></li>
{% endif %}
<li><a href="https://www.iotjs.net">Powering <b>IoT.js</b></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
{% for p in site.pages %}
{% if p.title %}
{% if p.category == "navbar" %}
{% if page.url == p.url %}
<li class="active"><a href="{{ p.url | relative_url }}" >{{ p.title }}</a></li>
{% else %}
<li><a href="{{ p.url | relative_url }}" >{{ p.title }}</a></li>
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
<li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Documents <span class="caret"></span></a>
<ul class="dropdown-menu">
{% assign doclist = site.pages | sort: 'title' %}
{% for p in doclist %}
{% if p.title and p.category == "documents" %}
<li><a href="{{ p.url | relative_url }}" >{{ p.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<a href="https://github.com/jerryscript-project/jerryscript"><img style="position: absolute; top: 50; right: 0; border: 0;" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_orange_ff7600.png" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"></a>
-21
View File
@@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="en">
{% include head.html %}
<body>
{% include header.html %}
<div class="container">
{{ content }}
</div><!-- /.container -->
{% include footer.html %}
<!-- Bootstrap core JavaScript -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="{{ '/js/bootstrap.min.js' | relative_url }}"></script>
</body>
</html>
-14
View File
@@ -1,14 +0,0 @@
---
layout: default
---
<div class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
</header>
<article class="post-content">
{{ content }}
</article>
</div>
-15
View File
@@ -1,15 +0,0 @@
---
layout: default
---
<div class="post">
<header class="post-header">
<h1 class="post-title">{{ page.title }}</h1>
<p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
</header>
<article class="post-content">
{{ content }}
</article>
</div>
-264
View File
@@ -1,264 +0,0 @@
/**
* Reset some basic elements
*/
/*body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
margin: 0;
padding: 0;
}*/
p {
margin: 0;
padding: 0;
text-align: justify;
-moz-text-align-last: left;
text-align-last: left;
}
/**
* Basic styling
*/
body {
/*font-family: $base-font-family;*/
font-size: $base-font-size;
line-height: $base-line-height;
/*font-weight: 300;*/
color: $text-color;
background-color: white;
-webkit-text-size-adjust: 100%;
}
/**
* Set `margin-bottom` to maintain vertical rhythm
*/
/*h1, h2, h3, h4, h5, h6,*/
p, blockquote, pre,
ul, ol, dl, figure,
%vertical-rhythm {
margin-bottom: $spacing-unit / 2;
}
/**
* Styles from index
*/
html {
position: relative;
min-height: 100%;
}
body {
padding-top: 50px;
margin-bottom: 50px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
height: 40px;
background-color: #f5f5f5;
}
.project_title h1{
font-size: 64px; text-align: center;
font-weight: bold;
}
.project_title {
padding: 40px 20px;
text-align: center;
border-radius: 6px;
p {
text-align: center;
-moz-text-align-last: center;
}
}
.lead {
color:#245580;
}
.project_overview {
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 18px;
padding: 40px; padding-bottom: 20px;
background-color: #f5f5f5;
}
.learn_more {
font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 18px;
padding: 40px; padding-bottom: 20px;
}
.container .copyright_and_license_notice {
margin: 8px 0;
font-size:14px; text-align: center;
color:#3C3C3C;
}
/**
* Images
*/
img {
max-width: 100%;
vertical-align: middle;
display: block;
margin: 0 auto;
max-height: 80%;
max-width: 100%;
}
/**
* Figures
*/
figure > img {
display: block;
}
figcaption {
font-size: $small-font-size;
}
/**
* Lists
*/
/*ul, ol {
margin-left: $spacing-unit;
}*/
li {
> ul,
> ol {
margin-bottom: 0;
}
}
/**
* Headings
*/
h1, h2, h3, h4, h5, h6 {
font-weight: 300;
}
/**
* Links
*/
a {
color: $brand-color;
text-decoration: none;
&:visited {
color: darken($brand-color, 15%);
}
&:hover {
color: $text-color;
text-decoration: underline;
}
}
/**
* Blockquotes
*/
blockquote {
color: $grey-color;
border-left: 4px solid $grey-color-light;
padding-left: $spacing-unit / 2;
font-size: 18px;
letter-spacing: -1px;
font-style: italic;
> :last-child {
margin-bottom: 0;
}
}
/**
* Code formatting
*/
pre,
code {
font-size: 15px;
border: 1px solid $grey-color-light;
border-radius: 3px;
background-color: #f7f7f7;
font-family: Courier;
}
code {
padding: 1px 5px;
}
pre {
padding: 8px 12px;
> code {
border: 0;
padding-right: 0;
padding-left: 0;
}
}
/**
* Wrapper
*/
.wrapper {
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
margin-right: auto;
margin-left: auto;
padding-right: $spacing-unit;
padding-left: $spacing-unit;
@extend %clearfix;
@include media-query($on-laptop) {
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
max-width: calc(#{$content-width} - (#{$spacing-unit}));
padding-right: $spacing-unit / 2;
padding-left: $spacing-unit / 2;
}
}
/**
* Clearfix
*/
%clearfix {
&:after {
content: "";
display: table;
clear: both;
}
}
/**
* Icons
*/
.icon {
> svg {
display: inline-block;
width: 16px;
height: 16px;
vertical-align: middle;
path {
fill: $grey-color;
}
}
}
-266
View File
@@ -1,266 +0,0 @@
/**
* Site header
*/
.site-header {
border-bottom: 5px solid #1B73BA;
min-height: 64px;
// Positioning context for the mobile navigation icon
position: relative;
}
.site-title {
font-size: 36px;
line-height: 64px;
letter-spacing: -1px;
margin-bottom: 0;
float: left;
&,
&:visited {
color: white;
/*font-family: Verdana;*/
}
}
.site-nav {
float: right;
line-height: 64px;
.menu-icon {
display: none;
}
.page-link {
color: white;
line-height: $base-line-height;
font-size: 24px;
// Gaps between nav items, but not on the first one
&:not(:first-child) {
margin-left: 20px;
}
vertical-align: middle;
}
@include media-query($on-palm) {
position: absolute;
top: 14px;
right: 30px;
background-color: white;
border: 1px solid $grey-color-light;
border-radius: 5px;
text-align: right;
.menu-icon {
display: block;
float: right;
width: 36px;
height: 26px;
line-height: 0;
padding-top: 10px;
text-align: center;
> svg {
width: 18px;
height: 15px;
path {
fill: $grey-color-dark;
}
}
}
.trigger {
clear: both;
display: none;
}
.page-link {
padding: 5px 10px;
vertical-align: middle;
color: #2388DB;
display: block;
}
}
}
/**
* Site footer
*/
.site-footer {
border-top: 5px solid #1B73BA;
background-color: #2388DB;
position: absolute;
bottom: 0;
width: 100%;
}
.footer-heading {
font-size: 18px;
margin-bottom: $spacing-unit / 2;
}
.footer-copy {
font-size: 14px;
text-align: center;
color: white;
a {
color: white;
}
}
.contact-list,
.social-media-list {
list-style: none;
margin-left: 0;
}
.footer-col-wrapper {
font-size: 15px;
color: $grey-color;
margin-left: -$spacing-unit / 2;
@extend %clearfix;
}
.footer-col {
float: left;
margin-bottom: $spacing-unit / 2;
padding-left: $spacing-unit / 2;
}
.footer-col-1 {
width: -webkit-calc(35% - (#{$spacing-unit} / 2));
width: calc(35% - (#{$spacing-unit} / 2));
}
.footer-col-2 {
width: -webkit-calc(20% - (#{$spacing-unit} / 2));
width: calc(20% - (#{$spacing-unit} / 2));
}
.footer-col-3 {
width: -webkit-calc(45% - (#{$spacing-unit} / 2));
width: calc(45% - (#{$spacing-unit} / 2));
}
@include media-query($on-laptop) {
.footer-col-1,
.footer-col-2 {
width: -webkit-calc(50% - (#{$spacing-unit} / 2));
width: calc(50% - (#{$spacing-unit} / 2));
}
.footer-col-3 {
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
width: calc(100% - (#{$spacing-unit} / 2));
}
}
@include media-query($on-palm) {
.footer-col {
float: none;
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
width: calc(100% - (#{$spacing-unit} / 2));
}
}
/**
* Page content
*/
.page-content {
padding: $spacing-unit 0;
}
.page-heading {
font-size: 20px;
}
.post-list {
margin-left: 0;
list-style: none;
> li {
margin-bottom: $spacing-unit;
}
}
.post-meta {
font-size: $small-font-size;
color: $grey-color;
}
.post-link {
display: block;
font-size: 24px;
}
/**
* Posts
*/
/*.post-header {
margin-bottom: $spacing-unit;
}
.post-title {
font-size: 32px;
letter-spacing: -1px;
line-height: 1;
margin-top: 10px;
margin-bottom: 10px;
@include media-query($on-laptop) {
font-size: 28px;
}
}*/
.post-content {
margin-bottom: $spacing-unit;
h1 {
font-size: 30px;
color: #2388DB;
margin-top: 10px;
margin-bottom: 5px;
@include media-query($on-laptop) {
font-size: 32px;
}
}
h2 {
font-size: 22px;
color: #2388DB;
margin-top: 10px;
margin-bottom: 5px;
@include media-query($on-laptop) {
font-size: 26px;
}
}
h3 {
font-size: 18px;
color: #2388DB;
@include media-query($on-laptop) {
font-size: 20px;
}
}
h4 {
font-size: 16px;
color: #2388DB;
@include media-query($on-laptop) {
font-size: 18px;
}
}
}
-67
View File
@@ -1,67 +0,0 @@
/**
* Syntax highlighting styles
*/
.highlight {
background: #fff;
@extend %vertical-rhythm;
.c { color: #998; font-style: italic } // Comment
.err { color: #a61717; background-color: #e3d2d2 } // Error
.k { font-weight: bold } // Keyword
.o { font-weight: bold } // Operator
.cm { color: #998; font-style: italic } // Comment.Multiline
.cp { color: #999; font-weight: bold } // Comment.Preproc
.c1 { color: #998; font-style: italic } // Comment.Single
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
.gd { color: #000; background-color: #fdd } // Generic.Deleted
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
.ge { font-style: italic } // Generic.Emph
.gr { color: #a00 } // Generic.Error
.gh { color: #999 } // Generic.Heading
.gi { color: #000; background-color: #dfd } // Generic.Inserted
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
.go { color: #888 } // Generic.Output
.gp { color: #555 } // Generic.Prompt
.gs { font-weight: bold } // Generic.Strong
.gu { color: #aaa } // Generic.Subheading
.gt { color: #a00 } // Generic.Traceback
.kc { font-weight: bold } // Keyword.Constant
.kd { font-weight: bold } // Keyword.Declaration
.kp { font-weight: bold } // Keyword.Pseudo
.kr { font-weight: bold } // Keyword.Reserved
.kt { color: #458; font-weight: bold } // Keyword.Type
.m { color: #099 } // Literal.Number
.s { color: #d14 } // Literal.String
.na { color: #008080 } // Name.Attribute
.nb { color: #0086B3 } // Name.Builtin
.nc { color: #458; font-weight: bold } // Name.Class
.no { color: #008080 } // Name.Constant
.ni { color: #800080 } // Name.Entity
.ne { color: #900; font-weight: bold } // Name.Exception
.nf { color: #900; font-weight: bold } // Name.Function
.nn { color: #555 } // Name.Namespace
.nt { color: #000080 } // Name.Tag
.nv { color: #008080 } // Name.Variable
.ow { font-weight: bold } // Operator.Word
.w { color: #bbb } // Text.Whitespace
.mf { color: #099 } // Literal.Number.Float
.mh { color: #099 } // Literal.Number.Hex
.mi { color: #099 } // Literal.Number.Integer
.mo { color: #099 } // Literal.Number.Oct
.sb { color: #d14 } // Literal.String.Backtick
.sc { color: #d14 } // Literal.String.Char
.sd { color: #d14 } // Literal.String.Doc
.s2 { color: #d14 } // Literal.String.Double
.se { color: #d14 } // Literal.String.Escape
.sh { color: #d14 } // Literal.String.Heredoc
.si { color: #d14 } // Literal.String.Interpol
.sx { color: #d14 } // Literal.String.Other
.sr { color: #009926 } // Literal.String.Regex
.s1 { color: #d14 } // Literal.String.Single
.ss { color: #990073 } // Literal.String.Symbol
.bp { color: #999 } // Name.Builtin.Pseudo
.vc { color: #008080 } // Name.Variable.Class
.vg { color: #008080 } // Name.Variable.Global
.vi { color: #008080 } // Name.Variable.Instance
.il { color: #099 } // Literal.Number.Integer.Long
}
-6
View File
@@ -1,6 +0,0 @@
.graph-container {
width: 800px;
height: 400px;
display: inline-block;
}
-49
View File
@@ -1,49 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>jerryscript benchmark</title>
<!--link rel="stylesheet" type="text/css" src="benchmark.css"-->
<link rel="stylesheet" type="text/css" href="benchmark.css">
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type='text/javascript' src="common.js"></script>
<script type='text/javascript' src="benchmark.js"></script>
</head>
<body>
<h1>Jerryscript Benchmark</h1>
<p>
Show data
<a href="?show=sum">by_sum</a> /
<a href="?show=max">by max</a>
value of subtests
</p>
<div class="container">
<div id="wrapper_sunspider-1.0.2" class="content">
<h3>sunspider-1.0.2</h3>
<div id="chart_sunspider-1.0.2_memory" class="graph-container">loading...</div>
<div id="chart_sunspider-1.0.2_performance" class="graph-container">loading...</div>
</div>
<div id="wrapper_ubench">
<h3>ubench</h3>
<div id="chart_ubench_memory" class="graph-container">loading...</div>
<div id="chart_ubench_performance" class="graph-container">loading...</div>
</div>
</div><!-- container -->
<p>
<span style="font-weight: bold; color: blue;">lower is better</span>
for both memory and performance.
</p>
</body>
</html>
-237
View File
@@ -1,237 +0,0 @@
///////////////////////////////////////////
// helper functions
///////////////////////////////////////////
Array.prototype.clone = function() {
return this.slice(0);
};
Array.prototype.sum = function() {
return this.reduce(function(a, b) { return a + b; });
};
Array.prototype.max = function() {
return this.reduce(function(a, b) { return Math.max(a, b); });
};
Date.prototype.toFormattedString = function() {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth() + 1).toString();
var dd = this.getDate().toString();
mm = mm[1] ? mm : '0' + mm;
dd = dd[1] ? dd : '0' + dd;
return yyyy + '-' + mm + '-' + dd;
};
Object.values = function(obj) {
return Object.keys(obj).map(function(key) { return obj[key]; });
};
Object.sum = function(obj) {
return Object.values(obj).sum();
};
Object.maxKey = function(obj) {
var key, val = -Infinity;
for (var p in obj) {
if (val < obj[p]) {
key = p;
val = obj[p];
}
}
return key;
};
function wrapTooltip(content) {
return '<div style="padding: 0.5em; font-family: consolas; line-height: 1.5em;">' + content + '</div>';
}
function wrapHyperlink(address, text) {
return '<a href="' + address + '" target="_blank">' + text + '</a>'
}
///////////////////////////////////////////
// main module
///////////////////////////////////////////
var isSum = true;
var benchmarks = ['sunspider-1.0.2', 'ubench'];
var measureTypes = ['memory', 'performance'];
var measureUnits = {'memory': 'kb', 'performance': 's'};
var engines = ['jerryscript', 'jerryscript-snapshot', 'jerryscript_cbc', 'duktape'];
var link_main = {
'jerryscript': 'http://www.jerryscript.net',
'jerryscript_cbc': 'http://www.jerryscript.net',
'duktape': 'http://duktape.org'
};
var link_code = {
'jerryscript': 'https://github.com/Samsung/jerryscript/commit/',
'jerryscript_cbc': 'https://github.com/Samsung/jerryscript/commit/',
'duktape': 'https://github.com/svaarala/duktape/commit/'
};
var beginDate = new Date('2015-07-11');
var benchmarkData = {};
google.load('visualization', '1', {packages: ['corechart', 'line']});
google.setOnLoadCallback(main);
function main() {
// get params
var data_src = getParameterByName('src') || 'data';
var show = getParameterByName('show') || 'sum';
isSum = show === 'sum';
// fetch data via ajax
var today = new Date();
for (var d = beginDate; d <= today; d.setDate(d.getDate() + 1)) {
var curDate = (new Date(d)).toFormattedString();
$.ajax({
_date: curDate,
url: data_src + '/' + curDate + '.json',
dataType: 'json',
success: function(data) {
benchmarkData[this._date] = data;
},
error: function(request, status, error) {
}
});
}
}
$(document).ajaxStop(function () {
benchmarks.forEach(function(benchmark) {
measureTypes.forEach(function(measureType) {
// transform data for internal use
var transData = {}, transInfo = {};
$.each(benchmarkData, function(date, element) {
transData[date] = [];
transInfo[date] = element['info'];
engines.forEach(function(engine, index) {
var sum = undefined; // default value
var max = undefined; // default value
var maxTest = ''; // default value
var numTests = 0;
var benchmark_obj = element[benchmark];
if (benchmark_obj) {
var record = benchmark_obj[measureType][engine];
if (record && Object.keys(record).length > 0) {
sum = Object.sum(record);
maxTest = Object.maxKey(record);
max = record[maxTest];
numTests = Object.values(record).length;
}
}
transData[date][index] = {
tests: numTests,
sum: sum,
max: max,
maxTest: maxTest,
score: isSum ? sum : max
};
});
});
// transform data for google charts
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
engines.forEach(function(engine) {
data.addColumn('number', engine);
data.addColumn({type: 'string', role: 'tooltip', 'p': {'html': true}});
});
var arrayData = Object.keys(transData).sort().map(function(date) {
// data
var row = Object.values(transData[date]);
// tooltip
var tooltips = row.clone().map(function(value, index) {
var engine = engines[index];
var engine_pure = engine.split('-')[0];
var info = transInfo[date] ? transInfo[date][engine_pure] : undefined;
var score = value.score ? value.score.toFixed(2) + measureUnits[measureType] : '';
var tests = value.tests || 0;
var max_test = value.maxTest || '';
var info_text = '';
if (info && info.version)
info_text = wrapHyperlink(link_code[engine_pure] + info.version, info.version);
var engine_text = wrapHyperlink(link_main[engine_pure], engine);
var score_text = score;
if (isSum) {
score_text += ' (' + tests + ' subtests)';
}
else {
score_text += ' (' + max_test + ')';
}
score_text += ' ' + wrapHyperlink('details.html?' + $.param({date: date, engine: engine, benchmark:benchmark}), 'details');
var textData = [
['source&nbsp; ', engine_text],
['version ', info_text],
['date&nbsp;&nbsp;&nbsp; ', date],
['score&nbsp;&nbsp; ', score_text]];
return wrapTooltip(textData.map(function(v) { return v.join(': '); }).join('<br />'));
});
// zip data and tooltips
// so the array will be like [data, tooltip, data, tooltip, ...]
row = row.map(function (v, i) {
return [v.score, tooltips[i]];
}).reduce(function(a, b) {
return a.concat(b)
});
return [new Date(date)].concat(row);
});
data.addRows(arrayData);
// chart options
var options = {
title: measureType,
titleTextStyle: {
fontSize: 20,
bold: true
},
legend: { position: 'bottom', alignment: 'vertical' },
backgroundColor: '#f8f8f8',
hAxis: {
title: 'Date',
textStyle: {
fontSize: 12,
bold: false
},
titleTextStyle: {
fontSize: 16,
bold: true
},
format: 'yyyy-MM-dd'
},
vAxis: {
minValue: 0,
title: measureType + ' (' + measureUnits[measureType] + ')',
textStyle: {
fontSize: 12,
bold: false
},
titleTextStyle: {
fontSize: 16,
bold: true
}
},
tooltip: {
isHtml: true,
trigger: 'both'
}
};
// draw chart
var divObj = document.getElementById(
['chart', benchmark, measureType].join('_'));
if (divObj) {
var chart = new google.visualization.LineChart(divObj);
chart.draw(data, options);
}
});
});
});
-7
View File
@@ -1,7 +0,0 @@
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "9c559216b7b72cf5073cc4dea644ae332d3c140b",
"size": 173764
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.55867,
"3d-cube.js": 6.03467,
"access-fannkuch.js": 15.6373,
"access-nbody.js": 7.07733,
"bitops-bitwise-and.js": 5.27733,
"math-partial-sums.js": 3.052,
"controlflow-recursive.js": 4.31333,
"bitops-bits-in-byte.js": 7.08667,
"access-binary-trees.js": 3.68267,
"bitops-3bit-bits-in-byte.js": 5.06267,
"string-fasta.js": 36.3067,
"math-cordic.js": 8.172
},
"duktape": {
"math-spectral-norm.js": 1.048,
"3d-cube.js": 1.17333,
"access-fannkuch.js": 1.988,
"access-nbody.js": 1.74667,
"bitops-bitwise-and.js": 7.30267,
"math-partial-sums.js": 2.80933,
"controlflow-recursive.js": 1.24933,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.593333,
"string-fasta.js": 4.72533,
"math-cordic.js": 2.544
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 160,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 84,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.3133,
"function-empty.js": 31.348,
"function-excess-args.js": 61.9253,
"function-closure.js": 5.09867,
"function-missing-args.js": 64.3867,
"loop-sum.js": 50.6907,
"loop-empty-resolve.js": 5.14533,
"function-correct-args.js": 86.9693,
"function-sum.js": 47.9907
},
"duktape": {
"loop-empty.js": 56.012,
"function-empty.js": 40.1773,
"function-excess-args.js": 32.252,
"function-closure.js": 19.872,
"function-missing-args.js": 31.0453,
"loop-sum.js": 73.62,
"loop-empty-resolve.js": 6.752,
"function-correct-args.js": 32.336,
"function-sum.js": 26.736
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "9c559216b7b72cf5073cc4dea644ae332d3c140b",
"size": 173764
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.55467,
"3d-cube.js": 6.02533,
"access-fannkuch.js": 15.612,
"access-nbody.js": 7.05467,
"bitops-bitwise-and.js": 5.276,
"math-partial-sums.js": 3.05467,
"controlflow-recursive.js": 4.33333,
"bitops-bits-in-byte.js": 7.08267,
"access-binary-trees.js": 3.676,
"bitops-3bit-bits-in-byte.js": 5.05467,
"string-fasta.js": 36.324,
"math-cordic.js": 8.176
},
"duktape": {
"math-spectral-norm.js": 1.052,
"3d-cube.js": 1.17733,
"access-fannkuch.js": 1.98533,
"access-nbody.js": 1.74533,
"bitops-bitwise-and.js": 7.31867,
"math-partial-sums.js": 2.80933,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.936,
"access-binary-trees.js": 1.29867,
"bitops-3bit-bits-in-byte.js": 0.592,
"string-fasta.js": 4.73067,
"math-cordic.js": 2.53867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 160,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 84,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.3093,
"function-empty.js": 31.2987,
"function-excess-args.js": 61.9293,
"function-closure.js": 5.09467,
"function-missing-args.js": 64.3147,
"loop-sum.js": 50.704,
"loop-empty-resolve.js": 5.14533,
"function-correct-args.js": 86.956,
"function-sum.js": 48.032
},
"duktape": {
"loop-empty.js": 56.0093,
"function-empty.js": 40.1587,
"function-excess-args.js": 32.276,
"function-closure.js": 19.924,
"function-missing-args.js": 31.044,
"loop-sum.js": 73.604,
"loop-empty-resolve.js": 6.748,
"function-correct-args.js": 32.4333,
"function-sum.js": 26.86
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "13cf31413f6a3a1683c62ac4ed3f19d98d9b2cd2",
"size": 173764
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.55467,
"3d-cube.js": 6.03333,
"access-fannkuch.js": 15.6333,
"access-nbody.js": 7.07867,
"bitops-bitwise-and.js": 5.27733,
"math-partial-sums.js": 3.05333,
"controlflow-recursive.js": 4.34267,
"bitops-bits-in-byte.js": 7.09733,
"access-binary-trees.js": 3.68267,
"bitops-3bit-bits-in-byte.js": 5.04533,
"string-fasta.js": 36.2973,
"math-cordic.js": 8.18133
},
"duktape": {
"math-spectral-norm.js": 1.04933,
"3d-cube.js": 1.176,
"access-fannkuch.js": 1.98267,
"access-nbody.js": 1.74933,
"bitops-bitwise-and.js": 7.272,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.72133,
"math-cordic.js": 2.544
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 160,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 84,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.3107,
"function-empty.js": 31.348,
"function-excess-args.js": 61.94,
"function-closure.js": 5.09467,
"function-missing-args.js": 64.3307,
"loop-sum.js": 50.6613,
"loop-empty-resolve.js": 5.14,
"function-correct-args.js": 86.944,
"function-sum.js": 47.968
},
"duktape": {
"loop-empty.js": 56.0307,
"function-empty.js": 40.1453,
"function-excess-args.js": 32.2893,
"function-closure.js": 19.9533,
"function-missing-args.js": 31.0787,
"loop-sum.js": 73.6507,
"loop-empty-resolve.js": 6.74133,
"function-correct-args.js": 32.324,
"function-sum.js": 26.808
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bc0ca7be5d1081e8a1115b870237f8d3f19b32d9",
"size": 173768
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.60933,
"3d-cube.js": 5.968,
"access-fannkuch.js": 15.7533,
"access-nbody.js": 7.09867,
"bitops-bitwise-and.js": 5.572,
"math-partial-sums.js": 3.12667,
"controlflow-recursive.js": 4.45333,
"bitops-bits-in-byte.js": 7.13067,
"access-binary-trees.js": 3.73733,
"bitops-3bit-bits-in-byte.js": 5.11333,
"string-fasta.js": 36.2867,
"math-cordic.js": 8.26933
},
"duktape": {
"math-spectral-norm.js": 1.05067,
"3d-cube.js": 1.17867,
"access-fannkuch.js": 1.984,
"access-nbody.js": 1.748,
"bitops-bitwise-and.js": 7.3,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.937333,
"access-binary-trees.js": 1.296,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.74133,
"math-cordic.js": 2.54533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 232,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 84,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 46.3,
"function-empty.js": 34.4373,
"function-excess-args.js": 64.692,
"function-closure.js": 5.40933,
"function-missing-args.js": 67.6853,
"loop-sum.js": 51.9187,
"loop-empty-resolve.js": 5.256,
"function-correct-args.js": 90.2733,
"function-sum.js": 49.968
},
"duktape": {
"loop-empty.js": 56.0267,
"function-empty.js": 40.184,
"function-excess-args.js": 32.332,
"function-closure.js": 19.8213,
"function-missing-args.js": 31.0187,
"loop-sum.js": 73.6293,
"loop-empty-resolve.js": 6.752,
"function-correct-args.js": 32.332,
"function-sum.js": 26.8
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "7ccec19c268352314d1e48365d17f65e3dd6287f",
"size": 173768
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.688,
"3d-cube.js": 6.64267,
"access-fannkuch.js": 16.1907,
"access-nbody.js": 7.11467,
"bitops-bitwise-and.js": 5.28533,
"math-partial-sums.js": 3.376,
"controlflow-recursive.js": 4.44267,
"bitops-bits-in-byte.js": 7.784,
"access-binary-trees.js": 3.35333,
"bitops-3bit-bits-in-byte.js": 5.348,
"string-fasta.js": 36.2507,
"math-cordic.js": 8.64933
},
"duktape": {
"math-spectral-norm.js": 1.052,
"3d-cube.js": 1.176,
"access-fannkuch.js": 1.988,
"access-nbody.js": 1.74267,
"bitops-bitwise-and.js": 7.29067,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.24667,
"bitops-bits-in-byte.js": 0.933333,
"access-binary-trees.js": 1.3,
"bitops-3bit-bits-in-byte.js": 0.592,
"string-fasta.js": 4.736,
"math-cordic.js": 2.536
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.1187,
"function-empty.js": 32.1413,
"function-excess-args.js": 62.8133,
"function-closure.js": 5.26133,
"function-missing-args.js": 65.0187,
"loop-sum.js": 50.4533,
"loop-empty-resolve.js": 5.12267,
"function-correct-args.js": 87.9467,
"function-sum.js": 48.66
},
"duktape": {
"loop-empty.js": 55.9547,
"function-empty.js": 40.1253,
"function-excess-args.js": 32.284,
"function-closure.js": 19.904,
"function-missing-args.js": 30.9787,
"loop-sum.js": 73.6333,
"loop-empty-resolve.js": 6.76133,
"function-correct-args.js": 32.2893,
"function-sum.js": 26.732
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "351df6184c62b74f1246e9400fb5180d94882baf",
"size": 181960
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.76133,
"3d-cube.js": 6.68267,
"access-fannkuch.js": 16.3613,
"access-nbody.js": 7.14133,
"bitops-bitwise-and.js": 5.38267,
"math-partial-sums.js": 3.38933,
"controlflow-recursive.js": 4.48,
"bitops-bits-in-byte.js": 7.872,
"access-binary-trees.js": 3.35467,
"bitops-3bit-bits-in-byte.js": 5.39733,
"string-fasta.js": 36.2213,
"math-cordic.js": 8.69733
},
"duktape": {
"math-spectral-norm.js": 1.05467,
"3d-cube.js": 1.176,
"access-fannkuch.js": 1.984,
"access-nbody.js": 1.74267,
"bitops-bitwise-and.js": 7.31067,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.24667,
"bitops-bits-in-byte.js": 0.936,
"access-binary-trees.js": 1.296,
"bitops-3bit-bits-in-byte.js": 0.592,
"string-fasta.js": 4.724,
"math-cordic.js": 2.54133
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.9093,
"function-empty.js": 32.7053,
"function-excess-args.js": 63.4707,
"function-closure.js": 5.25467,
"function-missing-args.js": 65.5867,
"loop-sum.js": 50.8587,
"loop-empty-resolve.js": 5.12933,
"function-correct-args.js": 88.4387,
"function-sum.js": 49.2533
},
"duktape": {
"loop-empty.js": 55.9947,
"function-empty.js": 40.1507,
"function-excess-args.js": 32.3307,
"function-closure.js": 19.8693,
"function-missing-args.js": 31.0453,
"loop-sum.js": 73.56,
"loop-empty-resolve.js": 6.75067,
"function-correct-args.js": 32.3373,
"function-sum.js": 26.8133
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "6038173e76265ab30ae7b5b70a4d20633e1de9b7",
"size": 181960
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.76133,
"3d-cube.js": 6.68667,
"access-fannkuch.js": 16.3267,
"access-nbody.js": 7.148,
"bitops-bitwise-and.js": 5.37733,
"math-partial-sums.js": 3.39067,
"controlflow-recursive.js": 4.47467,
"bitops-bits-in-byte.js": 7.864,
"access-binary-trees.js": 3.35867,
"bitops-3bit-bits-in-byte.js": 5.39733,
"string-fasta.js": 36.228,
"math-cordic.js": 8.69333
},
"duktape": {
"math-spectral-norm.js": 1.036,
"3d-cube.js": 1.17333,
"access-fannkuch.js": 1.98133,
"access-nbody.js": 1.744,
"bitops-bitwise-and.js": 7.31467,
"math-partial-sums.js": 2.81067,
"controlflow-recursive.js": 1.25067,
"bitops-bits-in-byte.js": 0.932,
"access-binary-trees.js": 1.29733,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.73333,
"math-cordic.js": 2.54267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.9267,
"function-empty.js": 32.6907,
"function-excess-args.js": 63.228,
"function-closure.js": 5.24933,
"function-missing-args.js": 65.5267,
"loop-sum.js": 50.884,
"loop-empty-resolve.js": 5.15067,
"function-correct-args.js": 88.4173,
"function-sum.js": 49.3293
},
"duktape": {
"loop-empty.js": 56.0027,
"function-empty.js": 40.2107,
"function-excess-args.js": 32.3027,
"function-closure.js": 19.8653,
"function-missing-args.js": 31.0053,
"loop-sum.js": 73.58,
"loop-empty-resolve.js": 6.75467,
"function-correct-args.js": 32.3627,
"function-sum.js": 26.7067
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bbfddea032fc622cef6279b308f5d77e135dd19b",
"size": 181960
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.788,
"3d-cube.js": 6.72267,
"access-fannkuch.js": 16.44,
"access-nbody.js": 7.212,
"bitops-bitwise-and.js": 5.38533,
"math-partial-sums.js": 3.40267,
"controlflow-recursive.js": 4.492,
"bitops-bits-in-byte.js": 7.92133,
"access-binary-trees.js": 3.384,
"bitops-3bit-bits-in-byte.js": 5.41867,
"string-fasta.js": 36.2507,
"math-cordic.js": 8.73733
},
"duktape": {
"math-spectral-norm.js": 1.052,
"3d-cube.js": 1.17867,
"access-fannkuch.js": 1.98533,
"access-nbody.js": 1.744,
"bitops-bitwise-and.js": 7.312,
"math-partial-sums.js": 2.808,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.936,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.732,
"math-cordic.js": 2.53867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.7227,
"function-empty.js": 32.936,
"function-excess-args.js": 63.6613,
"function-closure.js": 5.272,
"function-missing-args.js": 65.7773,
"loop-sum.js": 51.1173,
"loop-empty-resolve.js": 5.20533,
"function-correct-args.js": 88.6173,
"function-sum.js": 49.4933
},
"duktape": {
"loop-empty.js": 55.9933,
"function-empty.js": 40.156,
"function-excess-args.js": 32.304,
"function-closure.js": 19.9813,
"function-missing-args.js": 31.028,
"loop-sum.js": 73.5627,
"loop-empty-resolve.js": 6.744,
"function-correct-args.js": 32.3827,
"function-sum.js": 26.8253
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bbfddea032fc622cef6279b308f5d77e135dd19b",
"size": 181960
},
"duktape": {
"version": "cd2c19761b07e8d675f2079328fbfc9dd9c3b83a",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.788,
"3d-cube.js": 6.69867,
"access-fannkuch.js": 16.4787,
"access-nbody.js": 7.20533,
"bitops-bitwise-and.js": 5.38267,
"math-partial-sums.js": 3.40267,
"controlflow-recursive.js": 4.472,
"bitops-bits-in-byte.js": 7.90933,
"access-binary-trees.js": 3.37067,
"bitops-3bit-bits-in-byte.js": 5.428,
"string-fasta.js": 36.272,
"math-cordic.js": 8.74133
},
"duktape": {
"math-spectral-norm.js": 1.05467,
"3d-cube.js": 1.17733,
"access-fannkuch.js": 1.98133,
"access-nbody.js": 1.74667,
"bitops-bitwise-and.js": 7.30133,
"math-partial-sums.js": 2.82267,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.592,
"string-fasta.js": 4.71733,
"math-cordic.js": 2.544
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.7107,
"function-empty.js": 32.9267,
"function-excess-args.js": 63.78,
"function-closure.js": 5.26267,
"function-missing-args.js": 65.8,
"loop-sum.js": 51.1907,
"loop-empty-resolve.js": 5.22,
"function-correct-args.js": 88.6333,
"function-sum.js": 49.5533
},
"duktape": {
"loop-empty.js": 55.8693,
"function-empty.js": 40.2093,
"function-excess-args.js": 32.308,
"function-closure.js": 19.9347,
"function-missing-args.js": 31.012,
"loop-sum.js": 73.4987,
"loop-empty-resolve.js": 6.73467,
"function-correct-args.js": 32.3253,
"function-sum.js": 26.748
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bbfddea032fc622cef6279b308f5d77e135dd19b",
"size": 181960
},
"duktape": {
"version": "6fed0c9a7a0c96c69918821063d26525b40f80b4",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.77867,
"3d-cube.js": 6.708,
"access-fannkuch.js": 16.472,
"access-nbody.js": 7.212,
"bitops-bitwise-and.js": 5.396,
"math-partial-sums.js": 3.39867,
"controlflow-recursive.js": 4.488,
"bitops-bits-in-byte.js": 7.92133,
"access-binary-trees.js": 3.38267,
"bitops-3bit-bits-in-byte.js": 5.41867,
"string-fasta.js": 36.264,
"math-cordic.js": 8.74667
},
"duktape": {
"math-spectral-norm.js": 1.056,
"3d-cube.js": 1.17867,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.74133,
"bitops-bitwise-and.js": 7.308,
"math-partial-sums.js": 2.81333,
"controlflow-recursive.js": 1.25067,
"bitops-bits-in-byte.js": 0.933333,
"access-binary-trees.js": 1.3,
"bitops-3bit-bits-in-byte.js": 0.593333,
"string-fasta.js": 4.73867,
"math-cordic.js": 2.53867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.644,
"function-empty.js": 32.9213,
"function-excess-args.js": 63.7093,
"function-closure.js": 5.27467,
"function-missing-args.js": 65.8,
"loop-sum.js": 51.216,
"loop-empty-resolve.js": 5.22,
"function-correct-args.js": 88.652,
"function-sum.js": 49.4493
},
"duktape": {
"loop-empty.js": 56.04,
"function-empty.js": 40.184,
"function-excess-args.js": 32.2707,
"function-closure.js": 19.864,
"function-missing-args.js": 31.0587,
"loop-sum.js": 73.5787,
"loop-empty-resolve.js": 6.74933,
"function-correct-args.js": 32.4067,
"function-sum.js": 26.796
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "c7a47c17918e32267628218e164f5ee4e97e54d6",
"size": 181960
},
"duktape": {
"version": "6fed0c9a7a0c96c69918821063d26525b40f80b4",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.72,
"3d-cube.js": 6.67467,
"access-fannkuch.js": 16.1787,
"access-nbody.js": 7.136,
"bitops-bitwise-and.js": 5.35467,
"math-partial-sums.js": 3.36533,
"controlflow-recursive.js": 4.504,
"bitops-bits-in-byte.js": 7.968,
"access-binary-trees.js": 3.37467,
"bitops-3bit-bits-in-byte.js": 5.444,
"string-fasta.js": 36.4587,
"math-cordic.js": 8.66933
},
"duktape": {
"math-spectral-norm.js": 1.056,
"3d-cube.js": 1.17733,
"access-fannkuch.js": 1.988,
"access-nbody.js": 1.748,
"bitops-bitwise-and.js": 7.31333,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.25067,
"bitops-bits-in-byte.js": 0.936,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.74267,
"math-cordic.js": 2.54
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.1773,
"function-empty.js": 32.72,
"function-excess-args.js": 63.996,
"function-closure.js": 5.44933,
"function-missing-args.js": 66.0,
"loop-sum.js": 50.388,
"loop-empty-resolve.js": 5.16933,
"function-correct-args.js": 89.492,
"function-sum.js": 49.6773
},
"duktape": {
"loop-empty.js": 55.932,
"function-empty.js": 40.176,
"function-excess-args.js": 32.1893,
"function-closure.js": 19.8467,
"function-missing-args.js": 31.044,
"loop-sum.js": 73.6827,
"loop-empty-resolve.js": 6.75067,
"function-correct-args.js": 32.3013,
"function-sum.js": 26.7853
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "7c1622855da1c4757d9c76c3bcdac3e47408ed76",
"size": 186056
},
"duktape": {
"version": "8e9117160b252d93a936d1231c84388adedefb32",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.76267,
"3d-cube.js": 6.704,
"access-fannkuch.js": 16.532,
"access-nbody.js": 7.40533,
"bitops-bitwise-and.js": 5.32133,
"math-partial-sums.js": 3.47733,
"controlflow-recursive.js": 4.572,
"bitops-bits-in-byte.js": 7.81733,
"access-binary-trees.js": 3.46533,
"bitops-3bit-bits-in-byte.js": 5.404,
"string-fasta.js": 36.3987,
"math-cordic.js": 8.79867
},
"duktape": {
"math-spectral-norm.js": 1.05333,
"3d-cube.js": 1.17467,
"access-fannkuch.js": 1.98267,
"access-nbody.js": 1.74933,
"bitops-bitwise-and.js": 7.308,
"math-partial-sums.js": 2.812,
"controlflow-recursive.js": 1.25067,
"bitops-bits-in-byte.js": 0.933333,
"access-binary-trees.js": 1.3,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.73867,
"math-cordic.js": 2.54133
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 46.2027,
"function-empty.js": 32.7427,
"function-excess-args.js": 65.0587,
"function-closure.js": 5.44533,
"function-missing-args.js": 67.048,
"loop-sum.js": 51.3,
"loop-empty-resolve.js": 5.16267,
"function-correct-args.js": 90.692,
"function-sum.js": 50.68
},
"duktape": {
"loop-empty.js": 56.0573,
"function-empty.js": 40.1853,
"function-excess-args.js": 32.288,
"function-closure.js": 19.956,
"function-missing-args.js": 31.0013,
"loop-sum.js": 73.5787,
"loop-empty-resolve.js": 6.75467,
"function-correct-args.js": 32.268,
"function-sum.js": 26.74
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "63083b3b51157b0f02d1170fc0296845f2bcf79f",
"size": 186056
},
"duktape": {
"version": "30613ee6f7248d88abde62d0492cd1ee88e3eda3",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.76667,
"3d-cube.js": 6.74,
"access-fannkuch.js": 16.3733,
"access-nbody.js": 7.19067,
"bitops-bitwise-and.js": 5.488,
"math-partial-sums.js": 3.416,
"controlflow-recursive.js": 4.53467,
"bitops-bits-in-byte.js": 7.988,
"access-binary-trees.js": 3.41067,
"bitops-3bit-bits-in-byte.js": 5.48267,
"string-fasta.js": 36.5333,
"math-cordic.js": 8.828
},
"duktape": {
"math-spectral-norm.js": 1.052,
"3d-cube.js": 1.176,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.74,
"bitops-bitwise-and.js": 7.292,
"math-partial-sums.js": 2.81333,
"controlflow-recursive.js": 1.24933,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.29733,
"bitops-3bit-bits-in-byte.js": 0.589333,
"string-fasta.js": 4.73867,
"math-cordic.js": 2.54
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 47.124,
"function-empty.js": 33.7227,
"function-excess-args.js": 64.1573,
"function-closure.js": 5.46667,
"function-missing-args.js": 66.4093,
"loop-sum.js": 52.38,
"loop-empty-resolve.js": 5.32,
"function-correct-args.js": 89.7587,
"function-sum.js": 50.136
},
"duktape": {
"loop-empty.js": 56.0293,
"function-empty.js": 40.168,
"function-excess-args.js": 32.2987,
"function-closure.js": 19.952,
"function-missing-args.js": 31.0747,
"loop-sum.js": 73.6333,
"loop-empty-resolve.js": 6.75867,
"function-correct-args.js": 32.3653,
"function-sum.js": 26.792
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "11c310322b0b09e8d60c72ee5263798938a8d9e0",
"size": 186056
},
"duktape": {
"version": "5b2a3f53f020b816957129ac448efad1b701e895",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.73067,
"3d-cube.js": 6.70267,
"access-fannkuch.js": 16.3107,
"access-nbody.js": 7.104,
"bitops-bitwise-and.js": 5.34267,
"math-partial-sums.js": 3.36533,
"controlflow-recursive.js": 4.492,
"bitops-bits-in-byte.js": 7.97467,
"access-binary-trees.js": 3.392,
"bitops-3bit-bits-in-byte.js": 5.464,
"string-fasta.js": 36.4493,
"math-cordic.js": 8.74533
},
"duktape": {
"math-spectral-norm.js": 1.03467,
"3d-cube.js": 1.16933,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.748,
"bitops-bitwise-and.js": 7.26267,
"math-partial-sums.js": 2.82,
"controlflow-recursive.js": 1.24933,
"bitops-bits-in-byte.js": 0.936,
"access-binary-trees.js": 1.29867,
"bitops-3bit-bits-in-byte.js": 0.589333,
"string-fasta.js": 4.66933,
"math-cordic.js": 2.54
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.8547,
"function-empty.js": 33.0987,
"function-excess-args.js": 63.9347,
"function-closure.js": 5.32667,
"function-missing-args.js": 66.0027,
"loop-sum.js": 50.5773,
"loop-empty-resolve.js": 5.224,
"function-correct-args.js": 88.84,
"function-sum.js": 49.6773
},
"duktape": {
"loop-empty.js": 55.7987,
"function-empty.js": 39.904,
"function-excess-args.js": 31.932,
"function-closure.js": 19.5653,
"function-missing-args.js": 30.6627,
"loop-sum.js": 73.58,
"loop-empty-resolve.js": 6.73333,
"function-correct-args.js": 32.0533,
"function-sum.js": 26.408
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "fc45b805794b335210a989a0a1d6d63598b84f91",
"size": 190152
},
"duktape": {
"version": "948d625b259e442581196842f4feba86f6ae94b9",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.74,
"3d-cube.js": 6.66667,
"access-fannkuch.js": 16.128,
"access-nbody.js": 7.08267,
"bitops-bitwise-and.js": 5.33467,
"math-partial-sums.js": 3.35067,
"controlflow-recursive.js": 4.536,
"bitops-bits-in-byte.js": 7.88933,
"access-binary-trees.js": 3.408,
"bitops-3bit-bits-in-byte.js": 5.41867,
"string-fasta.js": 36.5733,
"math-cordic.js": 8.70133
},
"duktape": {
"math-spectral-norm.js": 1.02933,
"3d-cube.js": 1.172,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.752,
"bitops-bitwise-and.js": 7.27733,
"math-partial-sums.js": 2.808,
"controlflow-recursive.js": 1.25067,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.29733,
"bitops-3bit-bits-in-byte.js": 0.592,
"string-fasta.js": 4.656,
"math-cordic.js": 2.54667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.2413,
"function-empty.js": 32.808,
"function-excess-args.js": 63.4547,
"function-closure.js": 5.32667,
"function-missing-args.js": 65.5533,
"loop-sum.js": 50.62,
"loop-empty-resolve.js": 5.12133,
"function-correct-args.js": 89.024,
"function-sum.js": 49.3933
},
"duktape": {
"loop-empty.js": 55.8333,
"function-empty.js": 39.8667,
"function-excess-args.js": 31.936,
"function-closure.js": 19.6213,
"function-missing-args.js": 30.712,
"loop-sum.js": 73.6693,
"loop-empty-resolve.js": 6.73333,
"function-correct-args.js": 32.14,
"function-sum.js": 26.4307
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "fc45b805794b335210a989a0a1d6d63598b84f91",
"size": 190152
},
"duktape": {
"version": "6865293847bfeefd449da482a20d25c85096b4c8",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.74267,
"3d-cube.js": 6.66133,
"access-fannkuch.js": 16.0933,
"access-nbody.js": 7.07333,
"bitops-bitwise-and.js": 5.32933,
"math-partial-sums.js": 3.34133,
"controlflow-recursive.js": 4.516,
"bitops-bits-in-byte.js": 7.88667,
"access-binary-trees.js": 3.408,
"bitops-3bit-bits-in-byte.js": 5.40933,
"string-fasta.js": 36.56,
"math-cordic.js": 8.704
},
"duktape": {
"math-spectral-norm.js": 1.03467,
"3d-cube.js": 1.16533,
"access-fannkuch.js": 1.968,
"access-nbody.js": 1.74133,
"bitops-bitwise-and.js": 7.28533,
"math-partial-sums.js": 2.82667,
"controlflow-recursive.js": 1.252,
"bitops-bits-in-byte.js": 0.930667,
"access-binary-trees.js": 1.29467,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.66533,
"math-cordic.js": 2.512
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.28,
"function-empty.js": 32.8533,
"function-excess-args.js": 63.3933,
"function-closure.js": 5.31733,
"function-missing-args.js": 65.5333,
"loop-sum.js": 50.6213,
"loop-empty-resolve.js": 5.132,
"function-correct-args.js": 89.0427,
"function-sum.js": 49.4067
},
"duktape": {
"loop-empty.js": 55.756,
"function-empty.js": 39.8907,
"function-excess-args.js": 31.948,
"function-closure.js": 19.4587,
"function-missing-args.js": 30.7013,
"loop-sum.js": 73.6293,
"loop-empty-resolve.js": 6.72667,
"function-correct-args.js": 32.1413,
"function-sum.js": 26.3787
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "fc45b805794b335210a989a0a1d6d63598b84f91",
"size": 190152
},
"duktape": {
"version": "1f2368ec5b2120c1da1c8e92d57720d044950784",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.74,
"3d-cube.js": 6.68,
"access-fannkuch.js": 16.072,
"access-nbody.js": 7.068,
"bitops-bitwise-and.js": 5.33067,
"math-partial-sums.js": 3.352,
"controlflow-recursive.js": 4.54667,
"bitops-bits-in-byte.js": 7.87867,
"access-binary-trees.js": 3.41333,
"bitops-3bit-bits-in-byte.js": 5.40133,
"string-fasta.js": 36.584,
"math-cordic.js": 8.70533
},
"duktape": {
"math-spectral-norm.js": 1.03333,
"3d-cube.js": 1.172,
"access-fannkuch.js": 1.97733,
"access-nbody.js": 1.75067,
"bitops-bitwise-and.js": 7.28,
"math-partial-sums.js": 2.82933,
"controlflow-recursive.js": 1.252,
"bitops-bits-in-byte.js": 0.929333,
"access-binary-trees.js": 1.29867,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.68933,
"math-cordic.js": 2.54
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.26,
"function-empty.js": 32.8307,
"function-excess-args.js": 63.544,
"function-closure.js": 5.308,
"function-missing-args.js": 65.572,
"loop-sum.js": 50.6853,
"loop-empty-resolve.js": 5.13333,
"function-correct-args.js": 89.0667,
"function-sum.js": 49.3453
},
"duktape": {
"loop-empty.js": 55.8827,
"function-empty.js": 40.3307,
"function-excess-args.js": 32.3413,
"function-closure.js": 19.5213,
"function-missing-args.js": 31.0227,
"loop-sum.js": 73.584,
"loop-empty-resolve.js": 6.74133,
"function-correct-args.js": 32.088,
"function-sum.js": 26.4693
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "e34ab90e61baa478191819eb18700b69717fa743",
"size": 190152
},
"duktape": {
"version": "9509fd1af58392b6c2b30ca0058f58e1b7d92040",
"size": 157632
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.724,
"3d-cube.js": 6.63333,
"access-fannkuch.js": 16.0973,
"access-nbody.js": 7.10933,
"bitops-bitwise-and.js": 5.24667,
"math-partial-sums.js": 3.37867,
"controlflow-recursive.js": 4.456,
"bitops-bits-in-byte.js": 7.84133,
"access-binary-trees.js": 3.39067,
"bitops-3bit-bits-in-byte.js": 5.40933,
"string-fasta.js": 36.2413,
"math-cordic.js": 8.64533
},
"duktape": {
"math-spectral-norm.js": 1.05067,
"3d-cube.js": 1.17467,
"access-fannkuch.js": 1.988,
"access-nbody.js": 1.77333,
"bitops-bitwise-and.js": 7.33733,
"math-partial-sums.js": 2.86533,
"controlflow-recursive.js": 1.25733,
"bitops-bits-in-byte.js": 0.934667,
"access-binary-trees.js": 1.304,
"bitops-3bit-bits-in-byte.js": 0.596,
"string-fasta.js": 4.724,
"math-cordic.js": 2.552
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.6973,
"function-empty.js": 32.3533,
"function-excess-args.js": 63.688,
"function-closure.js": 5.33333,
"function-missing-args.js": 66.304,
"loop-sum.js": 50.248,
"loop-empty-resolve.js": 5.11467,
"function-correct-args.js": 88.8973,
"function-sum.js": 49.5947
},
"duktape": {
"loop-empty.js": 55.868,
"function-empty.js": 40.3413,
"function-excess-args.js": 32.252,
"function-closure.js": 19.644,
"function-missing-args.js": 30.936,
"loop-sum.js": 74.3347,
"loop-empty-resolve.js": 6.75333,
"function-correct-args.js": 32.3173,
"function-sum.js": 26.5133
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "3fbe54393f4900ea03b452326d1e96dbd9bf2d3a",
"size": 190152
},
"duktape": {
"version": "a9423c5e963d9241479a678fb62f408c3718ca0c",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.71333,
"3d-cube.js": 6.632,
"access-fannkuch.js": 16.308,
"access-nbody.js": 7.18267,
"bitops-bitwise-and.js": 5.44667,
"math-partial-sums.js": 3.37467,
"controlflow-recursive.js": 4.49733,
"bitops-bits-in-byte.js": 7.85067,
"access-binary-trees.js": 3.40267,
"bitops-3bit-bits-in-byte.js": 5.372,
"string-fasta.js": 36.2293,
"math-cordic.js": 8.67733
},
"duktape": {
"math-spectral-norm.js": 1.104,
"3d-cube.js": 1.156,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.756,
"bitops-bitwise-and.js": 7.84267,
"math-partial-sums.js": 2.84667,
"controlflow-recursive.js": 1.23467,
"bitops-bits-in-byte.js": 0.928,
"access-binary-trees.js": 1.26667,
"bitops-3bit-bits-in-byte.js": 0.584,
"string-fasta.js": 4.78667,
"math-cordic.js": 2.42
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.516,
"function-empty.js": 33.4613,
"function-excess-args.js": 63.976,
"function-closure.js": 5.36533,
"function-missing-args.js": 66.1973,
"loop-sum.js": 50.7027,
"loop-empty-resolve.js": 5.14933,
"function-correct-args.js": 89.6493,
"function-sum.js": 49.7267
},
"duktape": {
"loop-empty.js": 58.4453,
"function-empty.js": 39.8,
"function-excess-args.js": 31.952,
"function-closure.js": 19.9787,
"function-missing-args.js": 30.604,
"loop-sum.js": 91.8493,
"loop-empty-resolve.js": 7.044,
"function-correct-args.js": 32.036,
"function-sum.js": 26.5227
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "8cd1ade51592e3fba0a926418b1c9990a4c409f3",
"size": 190152
},
"duktape": {
"version": "9f7eee025386711fa15d6af0ed4715650db1816a",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.73333,
"3d-cube.js": 6.64933,
"access-fannkuch.js": 16.2613,
"access-nbody.js": 7.17333,
"bitops-bitwise-and.js": 5.41733,
"math-partial-sums.js": 3.39333,
"controlflow-recursive.js": 4.52667,
"bitops-bits-in-byte.js": 7.904,
"access-binary-trees.js": 3.408,
"bitops-3bit-bits-in-byte.js": 5.42,
"string-fasta.js": 36.5933,
"math-cordic.js": 8.69067
},
"duktape": {
"math-spectral-norm.js": 1.10533,
"3d-cube.js": 1.156,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.76133,
"bitops-bitwise-and.js": 7.86667,
"math-partial-sums.js": 2.84133,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.925333,
"access-binary-trees.js": 1.27733,
"bitops-3bit-bits-in-byte.js": 0.585333,
"string-fasta.js": 4.784,
"math-cordic.js": 2.40933
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.3547,
"function-empty.js": 32.6187,
"function-excess-args.js": 64.6893,
"function-closure.js": 5.36267,
"function-missing-args.js": 67.2133,
"loop-sum.js": 50.888,
"loop-empty-resolve.js": 5.11467,
"function-correct-args.js": 90.4067,
"function-sum.js": 50.272
},
"duktape": {
"loop-empty.js": 58.4093,
"function-empty.js": 39.7973,
"function-excess-args.js": 31.9133,
"function-closure.js": 19.804,
"function-missing-args.js": 30.5973,
"loop-sum.js": 91.7947,
"loop-empty-resolve.js": 7.04533,
"function-correct-args.js": 32.0293,
"function-sum.js": 26.512
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "c715a7cd1de6c498420ed024fb03674e5d74754d",
"size": 190152
},
"duktape": {
"version": "9f7eee025386711fa15d6af0ed4715650db1816a",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.82,
"3d-cube.js": 6.796,
"access-fannkuch.js": 16.8853,
"access-nbody.js": 7.4,
"bitops-bitwise-and.js": 5.40533,
"math-partial-sums.js": 3.432,
"controlflow-recursive.js": 4.604,
"bitops-bits-in-byte.js": 7.97333,
"access-binary-trees.js": 3.46933,
"bitops-3bit-bits-in-byte.js": 5.45867,
"string-fasta.js": 36.8493,
"math-cordic.js": 8.83733
},
"duktape": {
"math-spectral-norm.js": 1.10667,
"3d-cube.js": 1.15733,
"access-fannkuch.js": 1.98133,
"access-nbody.js": 1.76933,
"bitops-bitwise-and.js": 7.85733,
"math-partial-sums.js": 2.84267,
"controlflow-recursive.js": 1.236,
"bitops-bits-in-byte.js": 0.933333,
"access-binary-trees.js": 1.276,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.792,
"math-cordic.js": 2.412
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 46.232,
"function-empty.js": 33.7587,
"function-excess-args.js": 65.288,
"function-closure.js": 5.53733,
"function-missing-args.js": 67.288,
"loop-sum.js": 51.2053,
"loop-empty-resolve.js": 5.24267,
"function-correct-args.js": 90.7587,
"function-sum.js": 50.7853
},
"duktape": {
"loop-empty.js": 58.3533,
"function-empty.js": 39.8053,
"function-excess-args.js": 31.848,
"function-closure.js": 19.8907,
"function-missing-args.js": 30.6013,
"loop-sum.js": 91.8027,
"loop-empty-resolve.js": 7.052,
"function-correct-args.js": 32.0187,
"function-sum.js": 26.528
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "f7781bb7bcfeee5913cf772d3b577e9798040b7f",
"size": 190156
},
"duktape": {
"version": "a67f893abfb26088e3cda67d5f2f3373ddf9277a",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.736,
"3d-cube.js": 6.67067,
"access-fannkuch.js": 16.3533,
"access-nbody.js": 7.23867,
"bitops-bitwise-and.js": 5.38267,
"math-partial-sums.js": 3.42,
"controlflow-recursive.js": 4.52667,
"bitops-bits-in-byte.js": 7.90267,
"access-binary-trees.js": 3.40533,
"bitops-3bit-bits-in-byte.js": 5.412,
"string-fasta.js": 36.5333,
"math-cordic.js": 8.696
},
"duktape": {
"math-spectral-norm.js": 1.108,
"3d-cube.js": 1.15333,
"access-fannkuch.js": 1.98133,
"access-nbody.js": 1.76,
"bitops-bitwise-and.js": 7.86267,
"math-partial-sums.js": 2.85733,
"controlflow-recursive.js": 1.23867,
"bitops-bits-in-byte.js": 0.928,
"access-binary-trees.js": 1.27733,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.784,
"math-cordic.js": 2.41867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.5853,
"function-empty.js": 33.1587,
"function-excess-args.js": 64.6413,
"function-closure.js": 5.48133,
"function-missing-args.js": 66.916,
"loop-sum.js": 50.68,
"loop-empty-resolve.js": 5.19467,
"function-correct-args.js": 89.8747,
"function-sum.js": 50.1747
},
"duktape": {
"loop-empty.js": 58.4013,
"function-empty.js": 39.7947,
"function-excess-args.js": 31.928,
"function-closure.js": 19.9387,
"function-missing-args.js": 30.5333,
"loop-sum.js": 91.864,
"loop-empty-resolve.js": 7.05067,
"function-correct-args.js": 31.9747,
"function-sum.js": 26.5387
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "f7781bb7bcfeee5913cf772d3b577e9798040b7f",
"size": 190156
},
"duktape": {
"version": "a67f893abfb26088e3cda67d5f2f3373ddf9277a",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.73867,
"3d-cube.js": 6.68133,
"access-fannkuch.js": 16.3653,
"access-nbody.js": 7.23467,
"bitops-bitwise-and.js": 5.37467,
"math-partial-sums.js": 3.416,
"controlflow-recursive.js": 4.52667,
"bitops-bits-in-byte.js": 7.90533,
"access-binary-trees.js": 3.428,
"bitops-3bit-bits-in-byte.js": 5.40667,
"string-fasta.js": 36.5853,
"math-cordic.js": 8.70933
},
"duktape": {
"math-spectral-norm.js": 1.09867,
"3d-cube.js": 1.156,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.75867,
"bitops-bitwise-and.js": 7.83067,
"math-partial-sums.js": 2.84133,
"controlflow-recursive.js": 1.24133,
"bitops-bits-in-byte.js": 0.930667,
"access-binary-trees.js": 1.28,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.78667,
"math-cordic.js": 2.41733
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.5747,
"function-empty.js": 33.128,
"function-excess-args.js": 64.6227,
"function-closure.js": 5.48667,
"function-missing-args.js": 66.848,
"loop-sum.js": 50.6933,
"loop-empty-resolve.js": 5.18933,
"function-correct-args.js": 89.9933,
"function-sum.js": 50.2107
},
"duktape": {
"loop-empty.js": 58.364,
"function-empty.js": 39.7947,
"function-excess-args.js": 31.924,
"function-closure.js": 19.8027,
"function-missing-args.js": 30.5667,
"loop-sum.js": 91.8733,
"loop-empty-resolve.js": 7.044,
"function-correct-args.js": 32.0093,
"function-sum.js": 26.5013
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "f7781bb7bcfeee5913cf772d3b577e9798040b7f",
"size": 190156
},
"duktape": {
"version": "a67f893abfb26088e3cda67d5f2f3373ddf9277a",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.74133,
"3d-cube.js": 6.736,
"access-fannkuch.js": 16.36,
"access-nbody.js": 7.228,
"bitops-bitwise-and.js": 5.388,
"math-partial-sums.js": 3.424,
"controlflow-recursive.js": 4.54933,
"bitops-bits-in-byte.js": 7.91333,
"access-binary-trees.js": 3.41467,
"bitops-3bit-bits-in-byte.js": 5.41733,
"string-fasta.js": 36.5973,
"math-cordic.js": 8.71067
},
"duktape": {
"math-spectral-norm.js": 1.108,
"3d-cube.js": 1.16,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.74267,
"bitops-bitwise-and.js": 7.86267,
"math-partial-sums.js": 2.844,
"controlflow-recursive.js": 1.24267,
"bitops-bits-in-byte.js": 0.932,
"access-binary-trees.js": 1.28,
"bitops-3bit-bits-in-byte.js": 0.590667,
"string-fasta.js": 4.79333,
"math-cordic.js": 2.40667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.6093,
"function-empty.js": 33.1693,
"function-excess-args.js": 64.6187,
"function-closure.js": 5.47867,
"function-missing-args.js": 66.88,
"loop-sum.js": 50.724,
"loop-empty-resolve.js": 5.19333,
"function-correct-args.js": 89.9587,
"function-sum.js": 50.244
},
"duktape": {
"loop-empty.js": 58.436,
"function-empty.js": 39.776,
"function-excess-args.js": 31.9373,
"function-closure.js": 19.84,
"function-missing-args.js": 30.592,
"loop-sum.js": 91.836,
"loop-empty-resolve.js": 7.03867,
"function-correct-args.js": 32.032,
"function-sum.js": 26.5307
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "c41f76aba2473e9c241e06b12a4309fa265c857b",
"size": 190156
},
"duktape": {
"version": "bdd02a059f4658b87a03ddc2156f111693743b27",
"size": 161728
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.74533,
"3d-cube.js": 6.71733,
"access-fannkuch.js": 16.5987,
"access-nbody.js": 7.35067,
"bitops-bitwise-and.js": 5.49733,
"math-partial-sums.js": 3.408,
"controlflow-recursive.js": 4.444,
"bitops-bits-in-byte.js": 7.82667,
"access-binary-trees.js": 3.43333,
"bitops-3bit-bits-in-byte.js": 5.372,
"string-fasta.js": 36.4347,
"math-cordic.js": 8.71333
},
"duktape": {
"math-spectral-norm.js": 1.104,
"3d-cube.js": 1.15867,
"access-fannkuch.js": 1.98667,
"access-nbody.js": 1.76133,
"bitops-bitwise-and.js": 7.86267,
"math-partial-sums.js": 2.848,
"controlflow-recursive.js": 1.23733,
"bitops-bits-in-byte.js": 0.932,
"access-binary-trees.js": 1.28267,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.78933,
"math-cordic.js": 2.41467
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 192,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 140,
"math-partial-sums.js": 144,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 140,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 140,
"string-fasta.js": 156,
"math-cordic.js": 144
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.28,
"function-empty.js": 33.6253,
"function-excess-args.js": 64.1067,
"function-closure.js": 5.33467,
"function-missing-args.js": 66.324,
"loop-sum.js": 50.5907,
"loop-empty-resolve.js": 5.12667,
"function-correct-args.js": 89.5387,
"function-sum.js": 50.012
},
"duktape": {
"loop-empty.js": 58.424,
"function-empty.js": 39.804,
"function-excess-args.js": 31.9427,
"function-closure.js": 19.876,
"function-missing-args.js": 30.6187,
"loop-sum.js": 91.7333,
"loop-empty-resolve.js": 7.03067,
"function-correct-args.js": 31.9987,
"function-sum.js": 26.5133
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 140,
"function-excess-args.js": 140,
"function-closure.js": 472,
"function-missing-args.js": 140,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 140,
"function-sum.js": 140
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "af56cd8465e530428e5be6ac9074201a21e36da3",
"size": 194252
},
"duktape": {
"version": "0b005c676c66f76431f2af7d8eacd1f81fb238fb",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.78933,
"3d-cube.js": 6.70267,
"access-fannkuch.js": 16.34,
"access-nbody.js": 7.20667,
"bitops-bitwise-and.js": 5.37733,
"math-partial-sums.js": 3.39867,
"controlflow-recursive.js": 4.56533,
"bitops-bits-in-byte.js": 7.88667,
"access-binary-trees.js": 3.40933,
"bitops-3bit-bits-in-byte.js": 5.47467,
"string-fasta.js": 36.264,
"math-cordic.js": 8.81467
},
"duktape": {
"math-spectral-norm.js": 1.072,
"3d-cube.js": 1.164,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.76267,
"bitops-bitwise-and.js": 10.2053,
"math-partial-sums.js": 2.89467,
"controlflow-recursive.js": 1.224,
"bitops-bits-in-byte.js": 0.941333,
"access-binary-trees.js": 1.28533,
"bitops-3bit-bits-in-byte.js": 0.582667,
"string-fasta.js": 4.836,
"math-cordic.js": 2.44533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 168,
"access-fannkuch.js": 52,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 45.324,
"function-empty.js": 33.2627,
"function-excess-args.js": 64.176,
"function-closure.js": 5.41867,
"function-missing-args.js": 66.308,
"loop-sum.js": 50.596,
"loop-empty-resolve.js": 5.17467,
"function-correct-args.js": 89.4587,
"function-sum.js": 50.1053
},
"duktape": {
"loop-empty.js": 76.2387,
"function-empty.js": 48.284,
"function-excess-args.js": 38.3613,
"function-closure.js": 20.072,
"function-missing-args.js": 36.796,
"loop-sum.js": 89.8813,
"loop-empty-resolve.js": 9.072,
"function-correct-args.js": 38.2333,
"function-sum.js": 31.528
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "caeae0f6212dfee662a4082862ca78c66827102b",
"size": 190156
},
"duktape": {
"version": "8e948aa60d0b468396f4b00b22b427d548d4c011",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.87467,
"3d-cube.js": 6.69067,
"access-fannkuch.js": 16.6013,
"access-nbody.js": 7.148,
"bitops-bitwise-and.js": 5.296,
"math-partial-sums.js": 3.39867,
"controlflow-recursive.js": 4.556,
"bitops-bits-in-byte.js": 7.68667,
"access-binary-trees.js": 3.39733,
"bitops-3bit-bits-in-byte.js": 5.368,
"string-fasta.js": 36.0893,
"math-cordic.js": 8.97733
},
"duktape": {
"math-spectral-norm.js": 1.07333,
"3d-cube.js": 1.16133,
"access-fannkuch.js": 1.98533,
"access-nbody.js": 1.76267,
"bitops-bitwise-and.js": 10.22,
"math-partial-sums.js": 2.90133,
"controlflow-recursive.js": 1.21867,
"bitops-bits-in-byte.js": 0.941333,
"access-binary-trees.js": 1.28933,
"bitops-3bit-bits-in-byte.js": 0.581333,
"string-fasta.js": 4.83867,
"math-cordic.js": 2.44133
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 43.5427,
"function-empty.js": 33.8133,
"function-excess-args.js": 77.4747,
"function-closure.js": 5.29867,
"function-missing-args.js": 66.4987,
"loop-sum.js": 49.368,
"loop-empty-resolve.js": 5.092,
"function-correct-args.js": 104.023,
"function-sum.js": 53.3507
},
"duktape": {
"loop-empty.js": 76.292,
"function-empty.js": 48.228,
"function-excess-args.js": 38.3267,
"function-closure.js": 20.0667,
"function-missing-args.js": 36.7933,
"loop-sum.js": 90.108,
"loop-empty-resolve.js": 9.10267,
"function-correct-args.js": 38.2467,
"function-sum.js": 31.5667
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a19dd0523e5e48f7496fe60caa3f195193f638d2",
"size": 194252
},
"duktape": {
"version": "322ccf9a10675a07d594bda9fac9e1ff72ee3f03",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.85333,
"3d-cube.js": 6.732,
"access-fannkuch.js": 16.7347,
"access-nbody.js": 7.37733,
"bitops-bitwise-and.js": 5.39467,
"math-partial-sums.js": 3.50533,
"controlflow-recursive.js": 4.51067,
"bitops-bits-in-byte.js": 7.568,
"access-binary-trees.js": 3.416,
"bitops-3bit-bits-in-byte.js": 5.32533,
"string-fasta.js": 36.3853,
"math-cordic.js": 8.94533
},
"duktape": {
"math-spectral-norm.js": 1.072,
"3d-cube.js": 1.16,
"access-fannkuch.js": 1.98267,
"access-nbody.js": 1.764,
"bitops-bitwise-and.js": 10.2133,
"math-partial-sums.js": 2.89333,
"controlflow-recursive.js": 1.224,
"bitops-bits-in-byte.js": 0.941333,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.581333,
"string-fasta.js": 4.82933,
"math-cordic.js": 2.436
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 236,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.7613,
"function-empty.js": 34.164,
"function-excess-args.js": 77.7893,
"function-closure.js": 5.352,
"function-missing-args.js": 67.1813,
"loop-sum.js": 50.2573,
"loop-empty-resolve.js": 5.17467,
"function-correct-args.js": 103.824,
"function-sum.js": 53.8987
},
"duktape": {
"loop-empty.js": 76.276,
"function-empty.js": 48.252,
"function-excess-args.js": 38.4093,
"function-closure.js": 20.1427,
"function-missing-args.js": 36.7787,
"loop-sum.js": 90.1533,
"loop-empty-resolve.js": 9.092,
"function-correct-args.js": 38.3093,
"function-sum.js": 31.528
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "640370da43b51c934205df3a0de597079a8f6a3c",
"size": 194252
},
"duktape": {
"version": "322ccf9a10675a07d594bda9fac9e1ff72ee3f03",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.872,
"3d-cube.js": 6.72,
"access-fannkuch.js": 16.8653,
"access-nbody.js": 7.25733,
"bitops-bitwise-and.js": 5.368,
"math-partial-sums.js": 3.444,
"controlflow-recursive.js": 4.50267,
"bitops-bits-in-byte.js": 7.66133,
"access-binary-trees.js": 3.44133,
"bitops-3bit-bits-in-byte.js": 5.39333,
"string-fasta.js": 36.1267,
"math-cordic.js": 8.96267
},
"duktape": {
"math-spectral-norm.js": 1.076,
"3d-cube.js": 1.16533,
"access-fannkuch.js": 1.97733,
"access-nbody.js": 1.76267,
"bitops-bitwise-and.js": 10.2133,
"math-partial-sums.js": 2.9,
"controlflow-recursive.js": 1.224,
"bitops-bits-in-byte.js": 0.941333,
"access-binary-trees.js": 1.28267,
"bitops-3bit-bits-in-byte.js": 0.58,
"string-fasta.js": 4.83733,
"math-cordic.js": 2.44533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 232,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.3067,
"function-empty.js": 33.5453,
"function-excess-args.js": 77.4547,
"function-closure.js": 5.372,
"function-missing-args.js": 66.632,
"loop-sum.js": 49.936,
"loop-empty-resolve.js": 5.168,
"function-correct-args.js": 104.269,
"function-sum.js": 53.64
},
"duktape": {
"loop-empty.js": 76.2893,
"function-empty.js": 48.2293,
"function-excess-args.js": 38.3893,
"function-closure.js": 20.2013,
"function-missing-args.js": 36.804,
"loop-sum.js": 90.2027,
"loop-empty-resolve.js": 9.088,
"function-correct-args.js": 38.2853,
"function-sum.js": 31.5
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "640370da43b51c934205df3a0de597079a8f6a3c",
"size": 194252
},
"duktape": {
"version": "75dab4ae685a75d5293d794969330c2657aab50c",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.85867,
"3d-cube.js": 6.71733,
"access-fannkuch.js": 16.8627,
"access-nbody.js": 7.24,
"bitops-bitwise-and.js": 5.36533,
"math-partial-sums.js": 3.44667,
"controlflow-recursive.js": 4.50533,
"bitops-bits-in-byte.js": 7.64667,
"access-binary-trees.js": 3.444,
"bitops-3bit-bits-in-byte.js": 5.37067,
"string-fasta.js": 36.0787,
"math-cordic.js": 8.98133
},
"duktape": {
"math-spectral-norm.js": 1.088,
"3d-cube.js": 1.168,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.79333,
"bitops-bitwise-and.js": 10.2667,
"math-partial-sums.js": 2.93467,
"controlflow-recursive.js": 1.23467,
"bitops-bits-in-byte.js": 0.950667,
"access-binary-trees.js": 1.304,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.87867,
"math-cordic.js": 2.468
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 232,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.2787,
"function-empty.js": 33.588,
"function-excess-args.js": 77.652,
"function-closure.js": 5.37467,
"function-missing-args.js": 66.524,
"loop-sum.js": 49.9,
"loop-empty-resolve.js": 5.156,
"function-correct-args.js": 104.297,
"function-sum.js": 53.6587
},
"duktape": {
"loop-empty.js": 75.9933,
"function-empty.js": 48.6013,
"function-excess-args.js": 38.676,
"function-closure.js": 20.268,
"function-missing-args.js": 37.1173,
"loop-sum.js": 90.4187,
"loop-empty-resolve.js": 9.05733,
"function-correct-args.js": 38.5267,
"function-sum.js": 31.7907
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "640370da43b51c934205df3a0de597079a8f6a3c",
"size": 194252
},
"duktape": {
"version": "217e3b95910d70ed15cfd5a813fb2a5c95fabf13",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.86267,
"3d-cube.js": 6.71067,
"access-fannkuch.js": 16.8333,
"access-nbody.js": 7.22933,
"bitops-bitwise-and.js": 5.36933,
"math-partial-sums.js": 3.456,
"controlflow-recursive.js": 4.50667,
"bitops-bits-in-byte.js": 7.64667,
"access-binary-trees.js": 3.43867,
"bitops-3bit-bits-in-byte.js": 5.37067,
"string-fasta.js": 36.1053,
"math-cordic.js": 9.01733
},
"duktape": {
"math-spectral-norm.js": 1.08533,
"3d-cube.js": 1.168,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.792,
"bitops-bitwise-and.js": 10.1947,
"math-partial-sums.js": 2.936,
"controlflow-recursive.js": 1.23333,
"bitops-bits-in-byte.js": 0.950667,
"access-binary-trees.js": 1.30667,
"bitops-3bit-bits-in-byte.js": 0.585333,
"string-fasta.js": 4.89467,
"math-cordic.js": 2.46667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 232,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.2627,
"function-empty.js": 33.5067,
"function-excess-args.js": 77.5333,
"function-closure.js": 5.38667,
"function-missing-args.js": 66.6,
"loop-sum.js": 49.968,
"loop-empty-resolve.js": 5.15467,
"function-correct-args.js": 103.957,
"function-sum.js": 53.6747
},
"duktape": {
"loop-empty.js": 75.5853,
"function-empty.js": 48.436,
"function-excess-args.js": 38.4107,
"function-closure.js": 20.204,
"function-missing-args.js": 36.9653,
"loop-sum.js": 89.996,
"loop-empty-resolve.js": 8.99467,
"function-correct-args.js": 38.2187,
"function-sum.js": 31.636
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "e22a085fc1385f2e0d60eb324063b344c239a949",
"size": 194252
},
"duktape": {
"version": "f28f6c2bbb3781711609d401cda6a3b9f6a7d29f",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.864,
"3d-cube.js": 6.74667,
"access-fannkuch.js": 16.6253,
"access-nbody.js": 7.23733,
"bitops-bitwise-and.js": 5.33067,
"math-partial-sums.js": 3.48667,
"controlflow-recursive.js": 4.56,
"bitops-bits-in-byte.js": 7.70267,
"access-binary-trees.js": 3.41467,
"bitops-3bit-bits-in-byte.js": 5.424,
"string-fasta.js": 36.5293,
"math-cordic.js": 8.99733
},
"duktape": {
"math-spectral-norm.js": 1.092,
"3d-cube.js": 1.168,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.79333,
"bitops-bitwise-and.js": 10.2107,
"math-partial-sums.js": 2.93867,
"controlflow-recursive.js": 1.23467,
"bitops-bits-in-byte.js": 0.948,
"access-binary-trees.js": 1.30267,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.89067,
"math-cordic.js": 2.46267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 232,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 92,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 44.6253,
"function-empty.js": 33.7853,
"function-excess-args.js": 77.5427,
"function-closure.js": 5.32,
"function-missing-args.js": 66.38,
"loop-sum.js": 50.0413,
"loop-empty-resolve.js": 5.2,
"function-correct-args.js": 103.961,
"function-sum.js": 54.2893
},
"duktape": {
"loop-empty.js": 75.564,
"function-empty.js": 48.3947,
"function-excess-args.js": 38.4213,
"function-closure.js": 20.2053,
"function-missing-args.js": 36.9187,
"loop-sum.js": 90.0107,
"loop-empty-resolve.js": 9.00533,
"function-correct-args.js": 38.3107,
"function-sum.js": 31.6707
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "c4b1f02947aee10f8ca20ea17da340f8c5fe5a3a",
"size": 194252
},
"duktape": {
"version": "a773df04bdc84c842bceaeb918bd910579ea8841",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.72667,
"3d-cube.js": 6.67733,
"access-fannkuch.js": 16.4707,
"access-nbody.js": 7.12667,
"bitops-bitwise-and.js": 5.21067,
"math-partial-sums.js": 3.38667,
"controlflow-recursive.js": 3.98,
"bitops-bits-in-byte.js": 7.572,
"access-binary-trees.js": 3.336,
"bitops-3bit-bits-in-byte.js": 5.276,
"string-fasta.js": 36.096,
"math-cordic.js": 8.82933
},
"duktape": {
"math-spectral-norm.js": 1.092,
"3d-cube.js": 1.16267,
"access-fannkuch.js": 1.984,
"access-nbody.js": 1.796,
"bitops-bitwise-and.js": 10.2013,
"math-partial-sums.js": 2.93067,
"controlflow-recursive.js": 1.23333,
"bitops-bits-in-byte.js": 0.949333,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.88267,
"math-cordic.js": 2.46533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 216,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 100,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 43.996,
"function-empty.js": 33.328,
"function-excess-args.js": 74.8947,
"function-closure.js": 5.452,
"function-missing-args.js": 66.6867,
"loop-sum.js": 49.4373,
"loop-empty-resolve.js": 5.09333,
"function-correct-args.js": 102.744,
"function-sum.js": 51.856
},
"duktape": {
"loop-empty.js": 75.584,
"function-empty.js": 48.396,
"function-excess-args.js": 38.3987,
"function-closure.js": 20.1213,
"function-missing-args.js": 36.9253,
"loop-sum.js": 89.7707,
"loop-empty-resolve.js": 9.00267,
"function-correct-args.js": 38.3653,
"function-sum.js": 31.6947
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "4ee30cba5d68586d4d248660df83dac316c7603a",
"size": 194252
},
"duktape": {
"version": "3e95145cc06041751b51656156177601b97e0197",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.83733,
"3d-cube.js": 6.72933,
"access-fannkuch.js": 16.7347,
"access-nbody.js": 7.388,
"bitops-bitwise-and.js": 5.22,
"math-partial-sums.js": 3.49333,
"controlflow-recursive.js": 4.028,
"bitops-bits-in-byte.js": 7.576,
"access-binary-trees.js": 3.35867,
"bitops-3bit-bits-in-byte.js": 5.308,
"string-fasta.js": 36.5467,
"math-cordic.js": 8.93733
},
"duktape": {
"math-spectral-norm.js": 1.09067,
"3d-cube.js": 1.164,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.792,
"bitops-bitwise-and.js": 10.1787,
"math-partial-sums.js": 2.93333,
"controlflow-recursive.js": 1.22933,
"bitops-bits-in-byte.js": 0.945333,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.884,
"math-cordic.js": 2.45467
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 172,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 216,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 100,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 52
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 43.992,
"function-empty.js": 33.7067,
"function-excess-args.js": 76.0,
"function-closure.js": 5.48667,
"function-missing-args.js": 67.536,
"loop-sum.js": 49.9027,
"loop-empty-resolve.js": 5.12,
"function-correct-args.js": 103.776,
"function-sum.js": 52.864
},
"duktape": {
"loop-empty.js": 75.608,
"function-empty.js": 48.348,
"function-excess-args.js": 38.444,
"function-closure.js": 20.3053,
"function-missing-args.js": 36.9387,
"loop-sum.js": 89.8893,
"loop-empty-resolve.js": 8.99467,
"function-correct-args.js": 38.38,
"function-sum.js": 31.6613
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 28,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 36,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "8f594aebfad8860cfd25a9d9d875233122081bd3",
"size": 194252
},
"duktape": {
"version": "0d0d23c6fd5103a81398241217af2a98cca6f5d7",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.04133,
"3d-cube.js": 5.98,
"access-fannkuch.js": 14.4653,
"access-nbody.js": 6.49467,
"bitops-bitwise-and.js": 4.32,
"math-partial-sums.js": 3.144,
"controlflow-recursive.js": 3.57333,
"bitops-bits-in-byte.js": 6.808,
"access-binary-trees.js": 3.51333,
"bitops-3bit-bits-in-byte.js": 4.804,
"string-fasta.js": 36.448,
"math-cordic.js": 7.64267
},
"duktape": {
"math-spectral-norm.js": 1.08533,
"3d-cube.js": 1.168,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.79333,
"bitops-bitwise-and.js": 10.188,
"math-partial-sums.js": 2.924,
"controlflow-recursive.js": 1.236,
"bitops-bits-in-byte.js": 0.950667,
"access-binary-trees.js": 1.30533,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.87067,
"math-cordic.js": 2.45867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 44,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 36,
"access-binary-trees.js": 104,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.5107,
"function-empty.js": 31.772,
"function-excess-args.js": 69.3707,
"function-closure.js": 5.752,
"function-missing-args.js": 70.0893,
"loop-sum.js": 44.7947,
"loop-empty-resolve.js": 4.61333,
"function-correct-args.js": 98.256,
"function-sum.js": 47.4067
},
"duktape": {
"loop-empty.js": 75.6147,
"function-empty.js": 48.3933,
"function-excess-args.js": 38.44,
"function-closure.js": 20.1813,
"function-missing-args.js": 36.9267,
"loop-sum.js": 89.9187,
"loop-empty-resolve.js": 8.99867,
"function-correct-args.js": 38.3147,
"function-sum.js": 31.6547
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "38fa391cd8eef20d9b8b9c32453b89bacf7de436",
"size": 194252
},
"duktape": {
"version": "6600dde85e0c930021e23a43fe59d3762b9bb58c",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.952,
"3d-cube.js": 5.88667,
"access-fannkuch.js": 14.0573,
"access-nbody.js": 6.26667,
"bitops-bitwise-and.js": 4.15467,
"math-partial-sums.js": 2.996,
"controlflow-recursive.js": 3.50933,
"bitops-bits-in-byte.js": 6.648,
"access-binary-trees.js": 3.42267,
"bitops-3bit-bits-in-byte.js": 4.67867,
"string-fasta.js": 36.1147,
"math-cordic.js": 7.376
},
"duktape": {
"math-spectral-norm.js": 1.1,
"3d-cube.js": 1.17733,
"access-fannkuch.js": 1.976,
"access-nbody.js": 1.80933,
"bitops-bitwise-and.js": 10.7587,
"math-partial-sums.js": 2.95333,
"controlflow-recursive.js": 1.232,
"bitops-bits-in-byte.js": 0.946667,
"access-binary-trees.js": 1.30667,
"bitops-3bit-bits-in-byte.js": 0.582667,
"string-fasta.js": 4.93467,
"math-cordic.js": 2.53067
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 44,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 36,
"access-binary-trees.js": 104,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 48,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.392,
"function-empty.js": 29.98,
"function-excess-args.js": 67.7107,
"function-closure.js": 5.56933,
"function-missing-args.js": 68.216,
"loop-sum.js": 43.216,
"loop-empty-resolve.js": 4.51067,
"function-correct-args.js": 96.5427,
"function-sum.js": 45.5333
},
"duktape": {
"loop-empty.js": 80.2533,
"function-empty.js": 50.3467,
"function-excess-args.js": 40.1013,
"function-closure.js": 20.9413,
"function-missing-args.js": 38.5253,
"loop-sum.js": 95.8627,
"loop-empty-resolve.js": 9.588,
"function-correct-args.js": 39.956,
"function-sum.js": 33.0053
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "38fa391cd8eef20d9b8b9c32453b89bacf7de436",
"size": 194252
},
"duktape": {
"version": "d4bb9798b4145ec3a8cf156abf877f30d98b0e5c",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.95467,
"3d-cube.js": 5.89467,
"access-fannkuch.js": 14.0667,
"access-nbody.js": 6.27867,
"bitops-bitwise-and.js": 4.15333,
"math-partial-sums.js": 3.00533,
"controlflow-recursive.js": 3.512,
"bitops-bits-in-byte.js": 6.66933,
"access-binary-trees.js": 3.45467,
"bitops-3bit-bits-in-byte.js": 4.672,
"string-fasta.js": 36.0947,
"math-cordic.js": 7.39733
},
"duktape": {
"math-spectral-norm.js": 1.09733,
"3d-cube.js": 1.172,
"access-fannkuch.js": 1.97467,
"access-nbody.js": 1.81467,
"bitops-bitwise-and.js": 10.7333,
"math-partial-sums.js": 2.94267,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.946667,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.93467,
"math-cordic.js": 2.52533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 44,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 36,
"access-binary-trees.js": 104,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 48,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.3813,
"function-empty.js": 29.9053,
"function-excess-args.js": 67.7147,
"function-closure.js": 5.596,
"function-missing-args.js": 68.2693,
"loop-sum.js": 43.2253,
"loop-empty-resolve.js": 4.52,
"function-correct-args.js": 96.496,
"function-sum.js": 45.488
},
"duktape": {
"loop-empty.js": 80.3747,
"function-empty.js": 50.256,
"function-excess-args.js": 40.0373,
"function-closure.js": 20.904,
"function-missing-args.js": 38.5627,
"loop-sum.js": 95.7053,
"loop-empty-resolve.js": 9.572,
"function-correct-args.js": 39.8453,
"function-sum.js": 32.9227
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "38fa391cd8eef20d9b8b9c32453b89bacf7de436",
"size": 194252
},
"duktape": {
"version": "8a90f515606ca59394b8d8351bde6876c6ab4b73",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.94133,
"3d-cube.js": 5.896,
"access-fannkuch.js": 14.0533,
"access-nbody.js": 6.272,
"bitops-bitwise-and.js": 4.156,
"math-partial-sums.js": 2.99467,
"controlflow-recursive.js": 3.508,
"bitops-bits-in-byte.js": 6.652,
"access-binary-trees.js": 3.44667,
"bitops-3bit-bits-in-byte.js": 4.66667,
"string-fasta.js": 36.1653,
"math-cordic.js": 7.39867
},
"duktape": {
"math-spectral-norm.js": 1.10133,
"3d-cube.js": 1.17333,
"access-fannkuch.js": 1.97467,
"access-nbody.js": 1.812,
"bitops-bitwise-and.js": 10.7387,
"math-partial-sums.js": 2.94133,
"controlflow-recursive.js": 1.244,
"bitops-bits-in-byte.js": 0.944,
"access-binary-trees.js": 1.304,
"bitops-3bit-bits-in-byte.js": 0.585333,
"string-fasta.js": 4.95333,
"math-cordic.js": 2.52533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 44,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 36,
"access-binary-trees.js": 104,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 48,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.3893,
"function-empty.js": 30.0227,
"function-excess-args.js": 67.6693,
"function-closure.js": 5.59733,
"function-missing-args.js": 68.188,
"loop-sum.js": 43.1947,
"loop-empty-resolve.js": 4.51333,
"function-correct-args.js": 96.5373,
"function-sum.js": 45.5427
},
"duktape": {
"loop-empty.js": 80.3133,
"function-empty.js": 50.2827,
"function-excess-args.js": 40.1213,
"function-closure.js": 20.884,
"function-missing-args.js": 38.572,
"loop-sum.js": 95.768,
"loop-empty-resolve.js": 9.56267,
"function-correct-args.js": 39.8013,
"function-sum.js": 32.9413
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "ab47365b710c72536d6dfb85ea1fb4f1290da723",
"size": 194252
},
"duktape": {
"version": "51661c12265f0ae04239a3256e6d5428d1b3aaf5",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.03733,
"3d-cube.js": 5.88667,
"access-fannkuch.js": 14.2493,
"access-nbody.js": 6.32133,
"bitops-bitwise-and.js": 4.168,
"math-partial-sums.js": 3.02533,
"controlflow-recursive.js": 3.55467,
"bitops-bits-in-byte.js": 6.64,
"access-binary-trees.js": 3.10533,
"bitops-3bit-bits-in-byte.js": 4.64,
"string-fasta.js": 35.7107,
"math-cordic.js": 7.412
},
"duktape": {
"math-spectral-norm.js": 1.096,
"3d-cube.js": 1.17733,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.80933,
"bitops-bitwise-and.js": 10.7267,
"math-partial-sums.js": 2.944,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.944,
"access-binary-trees.js": 1.30267,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.94533,
"math-cordic.js": 2.528
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 160,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.8707,
"function-empty.js": 31.6013,
"function-excess-args.js": 67.7427,
"function-closure.js": 5.62133,
"function-missing-args.js": 68.0613,
"loop-sum.js": 44.2693,
"loop-empty-resolve.js": 4.58133,
"function-correct-args.js": 98.768,
"function-sum.js": 45.412
},
"duktape": {
"loop-empty.js": 80.336,
"function-empty.js": 50.2373,
"function-excess-args.js": 40.1067,
"function-closure.js": 20.8853,
"function-missing-args.js": 38.516,
"loop-sum.js": 95.82,
"loop-empty-resolve.js": 9.556,
"function-correct-args.js": 39.8453,
"function-sum.js": 32.9293
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "ab47365b710c72536d6dfb85ea1fb4f1290da723",
"size": 194252
},
"duktape": {
"version": "e55e469c68b90f0aac86eca7c058b8347ef2f03e",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 4.04,
"3d-cube.js": 5.89067,
"access-fannkuch.js": 14.2387,
"access-nbody.js": 6.33467,
"bitops-bitwise-and.js": 4.16267,
"math-partial-sums.js": 3.016,
"controlflow-recursive.js": 3.56267,
"bitops-bits-in-byte.js": 6.65067,
"access-binary-trees.js": 3.11467,
"bitops-3bit-bits-in-byte.js": 4.63333,
"string-fasta.js": 35.7867,
"math-cordic.js": 7.41867
},
"duktape": {
"math-spectral-norm.js": 1.10133,
"3d-cube.js": 1.17467,
"access-fannkuch.js": 1.97733,
"access-nbody.js": 1.81467,
"bitops-bitwise-and.js": 10.7213,
"math-partial-sums.js": 2.948,
"controlflow-recursive.js": 1.23867,
"bitops-bits-in-byte.js": 0.945333,
"access-binary-trees.js": 1.30667,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.94,
"math-cordic.js": 2.52267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 160,
"access-fannkuch.js": 48,
"access-nbody.js": 68,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.836,
"function-empty.js": 31.6013,
"function-excess-args.js": 67.7533,
"function-closure.js": 5.62533,
"function-missing-args.js": 68.1773,
"loop-sum.js": 44.212,
"loop-empty-resolve.js": 4.58133,
"function-correct-args.js": 98.704,
"function-sum.js": 45.508
},
"duktape": {
"loop-empty.js": 80.2453,
"function-empty.js": 50.2667,
"function-excess-args.js": 40.108,
"function-closure.js": 20.96,
"function-missing-args.js": 38.5333,
"loop-sum.js": 95.8133,
"loop-empty-resolve.js": 9.58267,
"function-correct-args.js": 39.848,
"function-sum.js": 32.9507
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "e0dee65a368b8ca7fa69c81af9517dd8824d98ed",
"size": 194252
},
"duktape": {
"version": "e55e469c68b90f0aac86eca7c058b8347ef2f03e",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.84,
"3d-cube.js": 5.76133,
"access-fannkuch.js": 14.12,
"access-nbody.js": 5.88133,
"bitops-bitwise-and.js": 4.08267,
"math-partial-sums.js": 2.82667,
"controlflow-recursive.js": 3.572,
"bitops-bits-in-byte.js": 6.55067,
"access-binary-trees.js": 3.08933,
"bitops-3bit-bits-in-byte.js": 4.62667,
"string-fasta.js": 28.856,
"math-cordic.js": 7.268
},
"duktape": {
"math-spectral-norm.js": 1.1,
"3d-cube.js": 1.176,
"access-fannkuch.js": 1.97867,
"access-nbody.js": 1.808,
"bitops-bitwise-and.js": 10.728,
"math-partial-sums.js": 2.94667,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.942667,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.585333,
"string-fasta.js": 4.93867,
"math-cordic.js": 2.52267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.3613,
"function-empty.js": 31.3627,
"function-excess-args.js": 67.7373,
"function-closure.js": 5.828,
"function-missing-args.js": 68.468,
"loop-sum.js": 41.2827,
"loop-empty-resolve.js": 4.568,
"function-correct-args.js": 98.716,
"function-sum.js": 45.82
},
"duktape": {
"loop-empty.js": 80.284,
"function-empty.js": 50.2653,
"function-excess-args.js": 40.064,
"function-closure.js": 20.9013,
"function-missing-args.js": 38.5107,
"loop-sum.js": 95.784,
"loop-empty-resolve.js": 9.56133,
"function-correct-args.js": 39.86,
"function-sum.js": 32.9187
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "b3b87add02f42eac1df89320ac08b760a58abfa1",
"size": 194252
},
"duktape": {
"version": "e55e469c68b90f0aac86eca7c058b8347ef2f03e",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.86667,
"3d-cube.js": 5.73467,
"access-fannkuch.js": 13.9827,
"access-nbody.js": 5.864,
"bitops-bitwise-and.js": 4.05333,
"math-partial-sums.js": 2.84933,
"controlflow-recursive.js": 3.60933,
"bitops-bits-in-byte.js": 6.60267,
"access-binary-trees.js": 3.10533,
"bitops-3bit-bits-in-byte.js": 4.62667,
"string-fasta.js": 29.0307,
"math-cordic.js": 7.27333
},
"duktape": {
"math-spectral-norm.js": 1.09733,
"3d-cube.js": 1.17467,
"access-fannkuch.js": 1.976,
"access-nbody.js": 1.80933,
"bitops-bitwise-and.js": 10.7053,
"math-partial-sums.js": 2.94,
"controlflow-recursive.js": 1.24133,
"bitops-bits-in-byte.js": 0.945333,
"access-binary-trees.js": 1.30267,
"bitops-3bit-bits-in-byte.js": 0.586667,
"string-fasta.js": 4.93867,
"math-cordic.js": 2.52267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.2213,
"function-empty.js": 31.66,
"function-excess-args.js": 68.3853,
"function-closure.js": 5.90267,
"function-missing-args.js": 69.144,
"loop-sum.js": 40.7867,
"loop-empty-resolve.js": 4.53067,
"function-correct-args.js": 99.3,
"function-sum.js": 46.172
},
"duktape": {
"loop-empty.js": 80.2987,
"function-empty.js": 50.2067,
"function-excess-args.js": 40.1227,
"function-closure.js": 20.9413,
"function-missing-args.js": 38.5147,
"loop-sum.js": 95.7587,
"loop-empty-resolve.js": 9.56533,
"function-correct-args.js": 39.84,
"function-sum.js": 32.9507
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "b3b87add02f42eac1df89320ac08b760a58abfa1",
"size": 194252
},
"duktape": {
"version": "e55e469c68b90f0aac86eca7c058b8347ef2f03e",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.86267,
"3d-cube.js": 5.74667,
"access-fannkuch.js": 14.0147,
"access-nbody.js": 5.872,
"bitops-bitwise-and.js": 4.05333,
"math-partial-sums.js": 2.84667,
"controlflow-recursive.js": 3.57867,
"bitops-bits-in-byte.js": 6.59867,
"access-binary-trees.js": 3.088,
"bitops-3bit-bits-in-byte.js": 4.62667,
"string-fasta.js": 29.0707,
"math-cordic.js": 7.26267
},
"duktape": {
"math-spectral-norm.js": 1.1,
"3d-cube.js": 1.17333,
"access-fannkuch.js": 1.97333,
"access-nbody.js": 1.81067,
"bitops-bitwise-and.js": 10.7213,
"math-partial-sums.js": 2.93733,
"controlflow-recursive.js": 1.236,
"bitops-bits-in-byte.js": 0.945333,
"access-binary-trees.js": 1.3,
"bitops-3bit-bits-in-byte.js": 0.588,
"string-fasta.js": 4.94533,
"math-cordic.js": 2.52533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.1573,
"function-empty.js": 31.672,
"function-excess-args.js": 68.3653,
"function-closure.js": 5.916,
"function-missing-args.js": 69.1267,
"loop-sum.js": 40.7987,
"loop-empty-resolve.js": 4.52533,
"function-correct-args.js": 99.2413,
"function-sum.js": 46.0987
},
"duktape": {
"loop-empty.js": 80.2853,
"function-empty.js": 50.2733,
"function-excess-args.js": 40.1053,
"function-closure.js": 20.8933,
"function-missing-args.js": 38.528,
"loop-sum.js": 95.696,
"loop-empty-resolve.js": 9.56267,
"function-correct-args.js": 39.812,
"function-sum.js": 32.9333
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "b3b87add02f42eac1df89320ac08b760a58abfa1",
"size": 194252
},
"duktape": {
"version": "dabddfb6f8df5a9ccf44908055fefbc74c3a5643",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.86,
"3d-cube.js": 5.744,
"access-fannkuch.js": 14.0093,
"access-nbody.js": 5.88667,
"bitops-bitwise-and.js": 4.05467,
"math-partial-sums.js": 2.844,
"controlflow-recursive.js": 3.61067,
"bitops-bits-in-byte.js": 6.59467,
"access-binary-trees.js": 3.10933,
"bitops-3bit-bits-in-byte.js": 4.63067,
"string-fasta.js": 29.0493,
"math-cordic.js": 7.268
},
"duktape": {
"math-spectral-norm.js": 1.09867,
"3d-cube.js": 1.17467,
"access-fannkuch.js": 1.98,
"access-nbody.js": 1.808,
"bitops-bitwise-and.js": 10.728,
"math-partial-sums.js": 2.948,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.941333,
"access-binary-trees.js": 1.3,
"bitops-3bit-bits-in-byte.js": 0.582667,
"string-fasta.js": 4.94933,
"math-cordic.js": 2.52933
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.2573,
"function-empty.js": 31.672,
"function-excess-args.js": 68.308,
"function-closure.js": 5.91467,
"function-missing-args.js": 69.0693,
"loop-sum.js": 40.8067,
"loop-empty-resolve.js": 4.53333,
"function-correct-args.js": 99.2293,
"function-sum.js": 46.152
},
"duktape": {
"loop-empty.js": 80.3027,
"function-empty.js": 50.2733,
"function-excess-args.js": 40.092,
"function-closure.js": 20.848,
"function-missing-args.js": 38.5133,
"loop-sum.js": 95.736,
"loop-empty-resolve.js": 9.556,
"function-correct-args.js": 39.8573,
"function-sum.js": 32.9067
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "b3b87add02f42eac1df89320ac08b760a58abfa1",
"size": 194252
},
"duktape": {
"version": "dabddfb6f8df5a9ccf44908055fefbc74c3a5643",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.872,
"3d-cube.js": 5.82533,
"access-fannkuch.js": 14.0027,
"access-nbody.js": 5.87333,
"bitops-bitwise-and.js": 4.05067,
"math-partial-sums.js": 2.852,
"controlflow-recursive.js": 3.62133,
"bitops-bits-in-byte.js": 6.60133,
"access-binary-trees.js": 3.10667,
"bitops-3bit-bits-in-byte.js": 4.62133,
"string-fasta.js": 29.0347,
"math-cordic.js": 7.26933
},
"duktape": {
"math-spectral-norm.js": 1.10267,
"3d-cube.js": 1.18133,
"access-fannkuch.js": 1.97733,
"access-nbody.js": 1.81333,
"bitops-bitwise-and.js": 10.732,
"math-partial-sums.js": 2.94667,
"controlflow-recursive.js": 1.24,
"bitops-bits-in-byte.js": 0.948,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.585333,
"string-fasta.js": 4.94667,
"math-cordic.js": 2.52533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.1907,
"function-empty.js": 31.656,
"function-excess-args.js": 68.3493,
"function-closure.js": 5.91733,
"function-missing-args.js": 69.1347,
"loop-sum.js": 40.8133,
"loop-empty-resolve.js": 4.536,
"function-correct-args.js": 99.2427,
"function-sum.js": 46.0933
},
"duktape": {
"loop-empty.js": 80.2773,
"function-empty.js": 50.2373,
"function-excess-args.js": 40.056,
"function-closure.js": 20.8573,
"function-missing-args.js": 38.5093,
"loop-sum.js": 95.7973,
"loop-empty-resolve.js": 9.57333,
"function-correct-args.js": 39.84,
"function-sum.js": 32.9573
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "e4843ece763cd4f977d98eaf6f68148ba1ee50fd",
"size": 198352
},
"duktape": {
"version": "64560f815f1bb762460d02a8df0cac2f93d07eaf",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.81067,
"3d-cube.js": 5.78933,
"access-fannkuch.js": 14.14,
"access-nbody.js": 5.94667,
"bitops-bitwise-and.js": 4.13867,
"math-partial-sums.js": 2.83867,
"controlflow-recursive.js": 3.59867,
"bitops-bits-in-byte.js": 6.68267,
"access-binary-trees.js": 3.096,
"bitops-3bit-bits-in-byte.js": 4.67333,
"string-fasta.js": 28.672,
"math-cordic.js": 7.328
},
"duktape": {
"math-spectral-norm.js": 1.06533,
"3d-cube.js": 1.104,
"access-fannkuch.js": 1.816,
"access-nbody.js": 1.70667,
"bitops-bitwise-and.js": 10.284,
"math-partial-sums.js": 2.86133,
"controlflow-recursive.js": 1.21067,
"bitops-bits-in-byte.js": 0.849333,
"access-binary-trees.js": 1.284,
"bitops-3bit-bits-in-byte.js": 0.566667,
"string-fasta.js": 4.84,
"math-cordic.js": 2.36667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.0827,
"function-empty.js": 31.8293,
"function-excess-args.js": 68.6413,
"function-closure.js": 5.81467,
"function-missing-args.js": 69.048,
"loop-sum.js": 41.196,
"loop-empty-resolve.js": 4.512,
"function-correct-args.js": 100.0,
"function-sum.js": 45.936
},
"duktape": {
"loop-empty.js": 76.6493,
"function-empty.js": 48.9467,
"function-excess-args.js": 38.7307,
"function-closure.js": 20.084,
"function-missing-args.js": 37.3213,
"loop-sum.js": 91.512,
"loop-empty-resolve.js": 9.104,
"function-correct-args.js": 38.396,
"function-sum.js": 31.9747
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bf780ad3dc6fe336d6741a8cdc9d6d4f51f3e95e",
"size": 198328
},
"duktape": {
"version": "50171d671af34f2c403acf61c6dc83f2d2561e24",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.864,
"3d-cube.js": 5.8,
"access-fannkuch.js": 14.3773,
"access-nbody.js": 5.92933,
"bitops-bitwise-and.js": 4.13733,
"math-partial-sums.js": 2.84267,
"controlflow-recursive.js": 3.58933,
"bitops-bits-in-byte.js": 6.70133,
"access-binary-trees.js": 3.08667,
"bitops-3bit-bits-in-byte.js": 4.66,
"string-fasta.js": 28.9347,
"math-cordic.js": 7.35467
},
"duktape": {
"math-spectral-norm.js": 1.07733,
"3d-cube.js": 1.104,
"access-fannkuch.js": 1.824,
"access-nbody.js": 1.70533,
"bitops-bitwise-and.js": 10.3147,
"math-partial-sums.js": 2.87333,
"controlflow-recursive.js": 1.208,
"bitops-bits-in-byte.js": 0.857333,
"access-binary-trees.js": 1.28267,
"bitops-3bit-bits-in-byte.js": 0.566667,
"string-fasta.js": 4.82667,
"math-cordic.js": 2.368
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 60,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.3013,
"function-empty.js": 31.532,
"function-excess-args.js": 67.956,
"function-closure.js": 5.76933,
"function-missing-args.js": 68.6813,
"loop-sum.js": 41.9653,
"loop-empty-resolve.js": 4.54533,
"function-correct-args.js": 99.0587,
"function-sum.js": 45.6547
},
"duktape": {
"loop-empty.js": 76.5387,
"function-empty.js": 48.5947,
"function-excess-args.js": 38.568,
"function-closure.js": 20.1053,
"function-missing-args.js": 37.2773,
"loop-sum.js": 91.2093,
"loop-empty-resolve.js": 9.11333,
"function-correct-args.js": 38.2867,
"function-sum.js": 31.888
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "bf780ad3dc6fe336d6741a8cdc9d6d4f51f3e95e",
"size": 198328
},
"duktape": {
"version": "8b5bcca3cfab0ef9fff55422530e6e5a2d7eec04",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.88133,
"3d-cube.js": 5.796,
"access-fannkuch.js": 14.3467,
"access-nbody.js": 5.94,
"bitops-bitwise-and.js": 4.13333,
"math-partial-sums.js": 2.85333,
"controlflow-recursive.js": 3.58667,
"bitops-bits-in-byte.js": 6.70667,
"access-binary-trees.js": 3.10133,
"bitops-3bit-bits-in-byte.js": 4.656,
"string-fasta.js": 28.9267,
"math-cordic.js": 7.36933
},
"duktape": {
"math-spectral-norm.js": 1.06667,
"3d-cube.js": 1.10533,
"access-fannkuch.js": 1.81733,
"access-nbody.js": 1.69867,
"bitops-bitwise-and.js": 10.32,
"math-partial-sums.js": 2.87067,
"controlflow-recursive.js": 1.21333,
"bitops-bits-in-byte.js": 0.856,
"access-binary-trees.js": 1.28667,
"bitops-3bit-bits-in-byte.js": 0.561333,
"string-fasta.js": 4.832,
"math-cordic.js": 2.37867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 52,
"3d-cube.js": 168,
"access-fannkuch.js": 48,
"access-nbody.js": 76,
"bitops-bitwise-and.js": 28,
"math-partial-sums.js": 40,
"controlflow-recursive.js": 224,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 96,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 60,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.4,
"function-empty.js": 31.5533,
"function-excess-args.js": 68.0027,
"function-closure.js": 5.76267,
"function-missing-args.js": 68.8507,
"loop-sum.js": 41.9147,
"loop-empty-resolve.js": 4.548,
"function-correct-args.js": 99.0587,
"function-sum.js": 45.676
},
"duktape": {
"loop-empty.js": 76.7093,
"function-empty.js": 48.948,
"function-excess-args.js": 38.708,
"function-closure.js": 20.2333,
"function-missing-args.js": 37.3493,
"loop-sum.js": 90.9467,
"loop-empty-resolve.js": 9.15467,
"function-correct-args.js": 38.4253,
"function-sum.js": 32.0293
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 24,
"function-empty.js": 24,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 24,
"loop-empty-resolve.js": 24,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "10e5f3530d1bce030ef1006c682735e389b8bcef",
"size": 198328
},
"duktape": {
"version": "dfc66cd923ac8185524647138c518f4dfae46163",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.20667,
"3d-cube.js": 3.768,
"access-fannkuch.js": 10.156,
"access-nbody.js": 4.74933,
"bitops-bitwise-and.js": 4.192,
"math-partial-sums.js": 2.576,
"controlflow-recursive.js": 3.15333,
"bitops-bits-in-byte.js": 4.40933,
"access-binary-trees.js": 2.81867,
"bitops-3bit-bits-in-byte.js": 3.27067,
"string-fasta.js": 27.6907,
"math-cordic.js": 4.84933
},
"duktape": {
"math-spectral-norm.js": 1.05867,
"3d-cube.js": 1.10933,
"access-fannkuch.js": 1.81467,
"access-nbody.js": 1.696,
"bitops-bitwise-and.js": 10.3,
"math-partial-sums.js": 2.88133,
"controlflow-recursive.js": 1.22133,
"bitops-bits-in-byte.js": 0.848,
"access-binary-trees.js": 1.30133,
"bitops-3bit-bits-in-byte.js": 0.557333,
"string-fasta.js": 4.83333,
"math-cordic.js": 2.35867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 40,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.192,
"function-empty.js": 29.8107,
"function-excess-args.js": 64.968,
"function-closure.js": 5.21467,
"function-missing-args.js": 64.6507,
"loop-sum.js": 42.6293,
"loop-empty-resolve.js": 4.62933,
"function-correct-args.js": 92.8987,
"function-sum.js": 43.9893
},
"duktape": {
"loop-empty.js": 76.5493,
"function-empty.js": 49.4,
"function-excess-args.js": 38.8493,
"function-closure.js": 20.2453,
"function-missing-args.js": 37.4987,
"loop-sum.js": 91.0907,
"loop-empty-resolve.js": 9.10667,
"function-correct-args.js": 38.6453,
"function-sum.js": 32.2707
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a00079e8ff203e1a373ed0ada152bdcac37fc90c",
"size": 194232
},
"duktape": {
"version": "589b96fc9bba5996b143b6459414ab8456abd6d4",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.188,
"3d-cube.js": 3.72667,
"access-fannkuch.js": 9.93467,
"access-nbody.js": 4.66,
"bitops-bitwise-and.js": 4.17867,
"math-partial-sums.js": 2.57333,
"controlflow-recursive.js": 3.176,
"bitops-bits-in-byte.js": 4.47867,
"access-binary-trees.js": 2.82133,
"bitops-3bit-bits-in-byte.js": 3.32133,
"string-fasta.js": 27.8453,
"math-cordic.js": 4.896
},
"duktape": {
"math-spectral-norm.js": 1.05867,
"3d-cube.js": 1.11067,
"access-fannkuch.js": 1.82533,
"access-nbody.js": 1.70667,
"bitops-bitwise-and.js": 10.2733,
"math-partial-sums.js": 2.876,
"controlflow-recursive.js": 1.21733,
"bitops-bits-in-byte.js": 0.848,
"access-binary-trees.js": 1.30667,
"bitops-3bit-bits-in-byte.js": 0.564,
"string-fasta.js": 4.83733,
"math-cordic.js": 2.36667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.2973,
"function-empty.js": 31.3387,
"function-excess-args.js": 66.4893,
"function-closure.js": 5.35467,
"function-missing-args.js": 66.096,
"loop-sum.js": 42.3813,
"loop-empty-resolve.js": 4.65467,
"function-correct-args.js": 94.284,
"function-sum.js": 45.1453
},
"duktape": {
"loop-empty.js": 76.5573,
"function-empty.js": 49.392,
"function-excess-args.js": 38.8667,
"function-closure.js": 20.2667,
"function-missing-args.js": 37.5067,
"loop-sum.js": 91.032,
"loop-empty-resolve.js": 9.108,
"function-correct-args.js": 38.664,
"function-sum.js": 32.2707
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a00079e8ff203e1a373ed0ada152bdcac37fc90c",
"size": 194232
},
"duktape": {
"version": "8bc77c5ca3a2a59dc8306ea7e6bcf6d5463d645f",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.19333,
"3d-cube.js": 3.73867,
"access-fannkuch.js": 9.95733,
"access-nbody.js": 4.66533,
"bitops-bitwise-and.js": 4.18267,
"math-partial-sums.js": 2.57067,
"controlflow-recursive.js": 3.17867,
"bitops-bits-in-byte.js": 4.484,
"access-binary-trees.js": 2.82533,
"bitops-3bit-bits-in-byte.js": 3.31733,
"string-fasta.js": 27.8453,
"math-cordic.js": 4.90267
},
"duktape": {
"math-spectral-norm.js": 1.05867,
"3d-cube.js": 1.10933,
"access-fannkuch.js": 1.82133,
"access-nbody.js": 1.72933,
"bitops-bitwise-and.js": 10.3333,
"math-partial-sums.js": 2.892,
"controlflow-recursive.js": 1.22933,
"bitops-bits-in-byte.js": 0.853333,
"access-binary-trees.js": 1.312,
"bitops-3bit-bits-in-byte.js": 0.561333,
"string-fasta.js": 4.84667,
"math-cordic.js": 2.388
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.2187,
"function-empty.js": 31.2347,
"function-excess-args.js": 66.456,
"function-closure.js": 5.37067,
"function-missing-args.js": 66.0053,
"loop-sum.js": 42.2627,
"loop-empty-resolve.js": 4.65333,
"function-correct-args.js": 94.192,
"function-sum.js": 45.12
},
"duktape": {
"loop-empty.js": 76.7293,
"function-empty.js": 49.772,
"function-excess-args.js": 39.3213,
"function-closure.js": 20.292,
"function-missing-args.js": 37.7653,
"loop-sum.js": 91.5947,
"loop-empty-resolve.js": 9.13467,
"function-correct-args.js": 39.0187,
"function-sum.js": 32.5347
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a26c45421988d138a01408ecfefb80816e3bcf81",
"size": 194232
},
"duktape": {
"version": "95681fbe0d5bd548c9ea918d10eb5a4daa7df96d",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.18933,
"3d-cube.js": 3.74,
"access-fannkuch.js": 9.92,
"access-nbody.js": 4.66,
"bitops-bitwise-and.js": 4.19333,
"math-partial-sums.js": 2.57333,
"controlflow-recursive.js": 3.18133,
"bitops-bits-in-byte.js": 4.48667,
"access-binary-trees.js": 2.82667,
"bitops-3bit-bits-in-byte.js": 3.32267,
"string-fasta.js": 27.7667,
"math-cordic.js": 4.908
},
"duktape": {
"math-spectral-norm.js": 1.06933,
"3d-cube.js": 1.11867,
"access-fannkuch.js": 1.808,
"access-nbody.js": 1.724,
"bitops-bitwise-and.js": 10.644,
"math-partial-sums.js": 2.99067,
"controlflow-recursive.js": 1.26533,
"bitops-bits-in-byte.js": 0.850667,
"access-binary-trees.js": 1.31467,
"bitops-3bit-bits-in-byte.js": 0.557333,
"string-fasta.js": 4.92267,
"math-cordic.js": 2.46133
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.764,
"function-empty.js": 31.32,
"function-excess-args.js": 66.4547,
"function-closure.js": 5.34667,
"function-missing-args.js": 66.1093,
"loop-sum.js": 42.3773,
"loop-empty-resolve.js": 4.708,
"function-correct-args.js": 94.272,
"function-sum.js": 45.268
},
"duktape": {
"loop-empty.js": 79.004,
"function-empty.js": 50.3947,
"function-excess-args.js": 39.7,
"function-closure.js": 20.4093,
"function-missing-args.js": 38.4667,
"loop-sum.js": 95.6813,
"loop-empty-resolve.js": 9.42933,
"function-correct-args.js": 39.512,
"function-sum.js": 32.7507
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a26c45421988d138a01408ecfefb80816e3bcf81",
"size": 194232
},
"duktape": {
"version": "95681fbe0d5bd548c9ea918d10eb5a4daa7df96d",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.19867,
"3d-cube.js": 3.75333,
"access-fannkuch.js": 9.93867,
"access-nbody.js": 4.668,
"bitops-bitwise-and.js": 4.19733,
"math-partial-sums.js": 2.57733,
"controlflow-recursive.js": 3.18667,
"bitops-bits-in-byte.js": 4.50933,
"access-binary-trees.js": 2.83067,
"bitops-3bit-bits-in-byte.js": 3.33067,
"string-fasta.js": 27.6893,
"math-cordic.js": 4.908
},
"duktape": {
"math-spectral-norm.js": 1.06933,
"3d-cube.js": 1.12133,
"access-fannkuch.js": 1.79867,
"access-nbody.js": 1.72267,
"bitops-bitwise-and.js": 10.588,
"math-partial-sums.js": 2.98,
"controlflow-recursive.js": 1.26533,
"bitops-bits-in-byte.js": 0.849333,
"access-binary-trees.js": 1.30933,
"bitops-3bit-bits-in-byte.js": 0.56,
"string-fasta.js": 4.90933,
"math-cordic.js": 2.46133
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 144,
"3d-cube.js": 188,
"access-fannkuch.js": 148,
"access-nbody.js": 156,
"bitops-bitwise-and.js": 144,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 184,
"bitops-bits-in-byte.js": 144,
"access-binary-trees.js": 208,
"bitops-3bit-bits-in-byte.js": 144,
"string-fasta.js": 156,
"math-cordic.js": 148
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.712,
"function-empty.js": 31.3,
"function-excess-args.js": 66.3573,
"function-closure.js": 5.34667,
"function-missing-args.js": 66.104,
"loop-sum.js": 42.2333,
"loop-empty-resolve.js": 4.69867,
"function-correct-args.js": 94.3267,
"function-sum.js": 45.276
},
"duktape": {
"loop-empty.js": 79.0093,
"function-empty.js": 50.352,
"function-excess-args.js": 39.632,
"function-closure.js": 20.3333,
"function-missing-args.js": 38.452,
"loop-sum.js": 95.7187,
"loop-empty-resolve.js": 9.41067,
"function-correct-args.js": 39.468,
"function-sum.js": 32.7947
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 140,
"function-empty.js": 144,
"function-excess-args.js": 144,
"function-closure.js": 472,
"function-missing-args.js": 144,
"loop-sum.js": 140,
"loop-empty-resolve.js": 140,
"function-correct-args.js": 144,
"function-sum.js": 144
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "a26c45421988d138a01408ecfefb80816e3bcf81",
"size": 194232
},
"duktape": {
"version": "cbb85c1c99736b22a2f336f8a863d176e20089c9",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.20533,
"3d-cube.js": 3.74133,
"access-fannkuch.js": 9.94133,
"access-nbody.js": 4.664,
"bitops-bitwise-and.js": 4.188,
"math-partial-sums.js": 2.57467,
"controlflow-recursive.js": 3.176,
"bitops-bits-in-byte.js": 4.48933,
"access-binary-trees.js": 2.82933,
"bitops-3bit-bits-in-byte.js": 3.324,
"string-fasta.js": 27.708,
"math-cordic.js": 4.90933
},
"duktape": {
"math-spectral-norm.js": 1.08267,
"3d-cube.js": 1.12533,
"access-fannkuch.js": 1.82667,
"access-nbody.js": 1.77067,
"bitops-bitwise-and.js": 10.896,
"math-partial-sums.js": 3.02267,
"controlflow-recursive.js": 1.24133,
"bitops-bits-in-byte.js": 0.833333,
"access-binary-trees.js": 1.312,
"bitops-3bit-bits-in-byte.js": 0.552,
"string-fasta.js": 4.96267,
"math-cordic.js": 2.48667
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 52,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 40.76,
"function-empty.js": 31.2413,
"function-excess-args.js": 66.4693,
"function-closure.js": 5.36267,
"function-missing-args.js": 66.1213,
"loop-sum.js": 42.3547,
"loop-empty-resolve.js": 4.708,
"function-correct-args.js": 94.296,
"function-sum.js": 45.2467
},
"duktape": {
"loop-empty.js": 80.4693,
"function-empty.js": 50.7293,
"function-excess-args.js": 39.8867,
"function-closure.js": 20.6187,
"function-missing-args.js": 38.8387,
"loop-sum.js": 96.9093,
"loop-empty-resolve.js": 9.564,
"function-correct-args.js": 39.796,
"function-sum.js": 32.96
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "5a09ff2d36d983354df04f526e619e5c3ff22825",
"size": 194244
},
"duktape": {
"version": "cbb85c1c99736b22a2f336f8a863d176e20089c9",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.168,
"3d-cube.js": 3.74133,
"access-fannkuch.js": 10.0507,
"access-nbody.js": 4.684,
"bitops-bitwise-and.js": 4.12533,
"math-partial-sums.js": 2.52,
"controlflow-recursive.js": 3.17067,
"bitops-bits-in-byte.js": 4.42133,
"access-binary-trees.js": 2.81067,
"bitops-3bit-bits-in-byte.js": 3.288,
"string-fasta.js": 27.7827,
"math-cordic.js": 4.84667
},
"duktape": {
"math-spectral-norm.js": 1.084,
"3d-cube.js": 1.12667,
"access-fannkuch.js": 1.828,
"access-nbody.js": 1.76533,
"bitops-bitwise-and.js": 10.8867,
"math-partial-sums.js": 3.01867,
"controlflow-recursive.js": 1.24133,
"bitops-bits-in-byte.js": 0.844,
"access-binary-trees.js": 1.31333,
"bitops-3bit-bits-in-byte.js": 0.552,
"string-fasta.js": 4.96267,
"math-cordic.js": 2.47733
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.872,
"function-empty.js": 29.7347,
"function-excess-args.js": 65.4187,
"function-closure.js": 5.252,
"function-missing-args.js": 64.7933,
"loop-sum.js": 42.06,
"loop-empty-resolve.js": 4.57867,
"function-correct-args.js": 93.34,
"function-sum.js": 44.3213
},
"duktape": {
"loop-empty.js": 80.4213,
"function-empty.js": 50.6827,
"function-excess-args.js": 39.8933,
"function-closure.js": 20.648,
"function-missing-args.js": 38.864,
"loop-sum.js": 96.8747,
"loop-empty-resolve.js": 9.564,
"function-correct-args.js": 39.8173,
"function-sum.js": 32.9587
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "5a09ff2d36d983354df04f526e619e5c3ff22825",
"size": 194244
},
"duktape": {
"version": "565dd9e0a04a83b18384a426142d7b0c3bfb18b9",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.18,
"3d-cube.js": 3.73733,
"access-fannkuch.js": 10.048,
"access-nbody.js": 4.67467,
"bitops-bitwise-and.js": 4.12933,
"math-partial-sums.js": 2.52,
"controlflow-recursive.js": 3.17467,
"bitops-bits-in-byte.js": 4.42,
"access-binary-trees.js": 2.80667,
"bitops-3bit-bits-in-byte.js": 3.28933,
"string-fasta.js": 27.8507,
"math-cordic.js": 4.84533
},
"duktape": {
"math-spectral-norm.js": 1.07067,
"3d-cube.js": 1.12267,
"access-fannkuch.js": 1.81733,
"access-nbody.js": 1.688,
"bitops-bitwise-and.js": 10.368,
"math-partial-sums.js": 2.928,
"controlflow-recursive.js": 1.24267,
"bitops-bits-in-byte.js": 0.841333,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.554667,
"string-fasta.js": 4.92,
"math-cordic.js": 2.47067
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.9907,
"function-empty.js": 29.7133,
"function-excess-args.js": 65.444,
"function-closure.js": 5.256,
"function-missing-args.js": 64.7373,
"loop-sum.js": 41.948,
"loop-empty-resolve.js": 4.60133,
"function-correct-args.js": 93.276,
"function-sum.js": 44.3293
},
"duktape": {
"loop-empty.js": 76.0667,
"function-empty.js": 49.1147,
"function-excess-args.js": 38.7933,
"function-closure.js": 20.288,
"function-missing-args.js": 37.5787,
"loop-sum.js": 91.8787,
"loop-empty-resolve.js": 9.06267,
"function-correct-args.js": 38.6813,
"function-sum.js": 32.092
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "5a09ff2d36d983354df04f526e619e5c3ff22825",
"size": 194244
},
"duktape": {
"version": "b492c79f2c3a1f2e54086ea5a7a1b5cb01596a65",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.17867,
"3d-cube.js": 3.73067,
"access-fannkuch.js": 10.0467,
"access-nbody.js": 4.67067,
"bitops-bitwise-and.js": 4.128,
"math-partial-sums.js": 2.516,
"controlflow-recursive.js": 3.184,
"bitops-bits-in-byte.js": 4.42667,
"access-binary-trees.js": 2.804,
"bitops-3bit-bits-in-byte.js": 3.288,
"string-fasta.js": 27.8933,
"math-cordic.js": 4.84933
},
"duktape": {
"math-spectral-norm.js": 1.07067,
"3d-cube.js": 1.11733,
"access-fannkuch.js": 1.816,
"access-nbody.js": 1.688,
"bitops-bitwise-and.js": 10.38,
"math-partial-sums.js": 2.93067,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.84,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.552,
"string-fasta.js": 4.90667,
"math-cordic.js": 2.46933
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.9173,
"function-empty.js": 29.668,
"function-excess-args.js": 65.3573,
"function-closure.js": 5.25867,
"function-missing-args.js": 64.7613,
"loop-sum.js": 42.06,
"loop-empty-resolve.js": 4.59067,
"function-correct-args.js": 93.216,
"function-sum.js": 44.2347
},
"duktape": {
"loop-empty.js": 75.952,
"function-empty.js": 49.1613,
"function-excess-args.js": 38.8573,
"function-closure.js": 20.228,
"function-missing-args.js": 37.484,
"loop-sum.js": 92.02,
"loop-empty-resolve.js": 9.10133,
"function-correct-args.js": 38.7547,
"function-sum.js": 32.08
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "5a09ff2d36d983354df04f526e619e5c3ff22825",
"size": 194244
},
"duktape": {
"version": "e2ab21201fc23c26f6a371ea08e79133e88221c9",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.15867,
"3d-cube.js": 3.73467,
"access-fannkuch.js": 10.0547,
"access-nbody.js": 4.62133,
"bitops-bitwise-and.js": 4.13067,
"math-partial-sums.js": 2.516,
"controlflow-recursive.js": 3.17467,
"bitops-bits-in-byte.js": 4.42667,
"access-binary-trees.js": 2.80133,
"bitops-3bit-bits-in-byte.js": 3.284,
"string-fasta.js": 27.872,
"math-cordic.js": 4.848
},
"duktape": {
"math-spectral-norm.js": 1.06667,
"3d-cube.js": 1.112,
"access-fannkuch.js": 1.82,
"access-nbody.js": 1.684,
"bitops-bitwise-and.js": 10.3627,
"math-partial-sums.js": 2.92667,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.837333,
"access-binary-trees.js": 1.29467,
"bitops-3bit-bits-in-byte.js": 0.552,
"string-fasta.js": 4.896,
"math-cordic.js": 2.46533
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.9267,
"function-empty.js": 29.6867,
"function-excess-args.js": 65.4787,
"function-closure.js": 5.248,
"function-missing-args.js": 64.7707,
"loop-sum.js": 42.032,
"loop-empty-resolve.js": 4.6,
"function-correct-args.js": 93.3573,
"function-sum.js": 44.2933
},
"duktape": {
"loop-empty.js": 76.0547,
"function-empty.js": 49.1267,
"function-excess-args.js": 38.824,
"function-closure.js": 20.2853,
"function-missing-args.js": 37.5893,
"loop-sum.js": 91.8747,
"loop-empty-resolve.js": 9.11067,
"function-correct-args.js": 38.6787,
"function-sum.js": 32.0907
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "5a09ff2d36d983354df04f526e619e5c3ff22825",
"size": 194244
},
"duktape": {
"version": "146fb34eab8f844bed999b0f188c0d3a08d86b11",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.17333,
"3d-cube.js": 3.73333,
"access-fannkuch.js": 10.0413,
"access-nbody.js": 4.65867,
"bitops-bitwise-and.js": 4.11867,
"math-partial-sums.js": 2.51867,
"controlflow-recursive.js": 3.176,
"bitops-bits-in-byte.js": 4.412,
"access-binary-trees.js": 2.80667,
"bitops-3bit-bits-in-byte.js": 3.28133,
"string-fasta.js": 27.8627,
"math-cordic.js": 4.84667
},
"duktape": {
"math-spectral-norm.js": 1.05467,
"3d-cube.js": 1.112,
"access-fannkuch.js": 1.81867,
"access-nbody.js": 1.67867,
"bitops-bitwise-and.js": 10.368,
"math-partial-sums.js": 2.908,
"controlflow-recursive.js": 1.23733,
"bitops-bits-in-byte.js": 0.84,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.553333,
"string-fasta.js": 4.91067,
"math-cordic.js": 2.448
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.8893,
"function-empty.js": 29.74,
"function-excess-args.js": 65.3933,
"function-closure.js": 5.264,
"function-missing-args.js": 64.6907,
"loop-sum.js": 42.0533,
"loop-empty-resolve.js": 4.60267,
"function-correct-args.js": 93.2973,
"function-sum.js": 44.112
},
"duktape": {
"loop-empty.js": 75.9253,
"function-empty.js": 48.592,
"function-excess-args.js": 38.3813,
"function-closure.js": 20.44,
"function-missing-args.js": 37.2347,
"loop-sum.js": 91.824,
"loop-empty-resolve.js": 9.06,
"function-correct-args.js": 38.3333,
"function-sum.js": 31.78
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "ed321da8c190507fb5a1eb1405bbdb0653e86825",
"size": 194244
},
"duktape": {
"version": "a9003d1838aed9fac3bac490941e5a21d7069417",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.148,
"3d-cube.js": 3.70667,
"access-fannkuch.js": 9.82533,
"access-nbody.js": 4.64,
"bitops-bitwise-and.js": 4.03067,
"math-partial-sums.js": 2.51333,
"controlflow-recursive.js": 3.12933,
"bitops-bits-in-byte.js": 4.39333,
"access-binary-trees.js": 2.776,
"bitops-3bit-bits-in-byte.js": 3.256,
"string-fasta.js": 27.7893,
"math-cordic.js": 4.82133
},
"duktape": {
"math-spectral-norm.js": 1.06533,
"3d-cube.js": 1.11733,
"access-fannkuch.js": 1.81467,
"access-nbody.js": 1.68933,
"bitops-bitwise-and.js": 10.4813,
"math-partial-sums.js": 2.94933,
"controlflow-recursive.js": 1.248,
"bitops-bits-in-byte.js": 0.84,
"access-binary-trees.js": 1.292,
"bitops-3bit-bits-in-byte.js": 0.549333,
"string-fasta.js": 4.924,
"math-cordic.js": 2.46267
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 40,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 38.6813,
"function-empty.js": 28.9587,
"function-excess-args.js": 64.3267,
"function-closure.js": 5.196,
"function-missing-args.js": 63.836,
"loop-sum.js": 41.1787,
"loop-empty-resolve.js": 4.48133,
"function-correct-args.js": 92.2947,
"function-sum.js": 43.544
},
"duktape": {
"loop-empty.js": 76.8507,
"function-empty.js": 49.2813,
"function-excess-args.js": 38.7987,
"function-closure.js": 20.484,
"function-missing-args.js": 37.5693,
"loop-sum.js": 92.92,
"loop-empty-resolve.js": 9.17467,
"function-correct-args.js": 38.7213,
"function-sum.js": 31.976
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 32,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 32,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}
-124
View File
@@ -1,124 +0,0 @@
{
"info": {
"jerryscript": {
"version": "c86bf1425d1f1f9ce1cf04a0093a804cb686b52f",
"size": 194244
},
"duktape": {
"version": "81c2e5d1e1625581a3dd2d8b351d2f8bf81c7cf6",
"size": 165824
}
},
"sunspider-1.0.2": {
"performance": {
"jerryscript": {
"math-spectral-norm.js": 3.156,
"3d-cube.js": 3.72,
"access-fannkuch.js": 9.968,
"access-nbody.js": 4.67733,
"bitops-bitwise-and.js": 4.09067,
"math-partial-sums.js": 2.54533,
"controlflow-recursive.js": 3.14533,
"bitops-bits-in-byte.js": 4.4,
"access-binary-trees.js": 2.72133,
"bitops-3bit-bits-in-byte.js": 3.26267,
"string-fasta.js": 27.7733,
"math-cordic.js": 4.832
},
"duktape": {
"math-spectral-norm.js": 1.06533,
"3d-cube.js": 1.11733,
"access-fannkuch.js": 1.81867,
"access-nbody.js": 1.69467,
"bitops-bitwise-and.js": 10.464,
"math-partial-sums.js": 2.948,
"controlflow-recursive.js": 1.24667,
"bitops-bits-in-byte.js": 0.836,
"access-binary-trees.js": 1.29733,
"bitops-3bit-bits-in-byte.js": 0.552,
"string-fasta.js": 4.93067,
"math-cordic.js": 2.45867
}
},
"memory": {
"jerryscript": {
"math-spectral-norm.js": 48,
"3d-cube.js": 132,
"access-fannkuch.js": 36,
"access-nbody.js": 64,
"bitops-bitwise-and.js": 32,
"math-partial-sums.js": 36,
"controlflow-recursive.js": 212,
"bitops-bits-in-byte.js": 32,
"access-binary-trees.js": 88,
"bitops-3bit-bits-in-byte.js": 36,
"string-fasta.js": 56,
"math-cordic.js": 48
},
"duktape": {
"math-spectral-norm.js": 152,
"3d-cube.js": 192,
"access-fannkuch.js": 152,
"access-nbody.js": 160,
"bitops-bitwise-and.js": 148,
"math-partial-sums.js": 148,
"controlflow-recursive.js": 192,
"bitops-bits-in-byte.js": 148,
"access-binary-trees.js": 216,
"bitops-3bit-bits-in-byte.js": 148,
"string-fasta.js": 160,
"math-cordic.js": 152
}
}
},
"ubench": {
"performance": {
"jerryscript": {
"loop-empty.js": 39.0827,
"function-empty.js": 28.6,
"function-excess-args.js": 64.4133,
"function-closure.js": 3.424,
"function-missing-args.js": 63.992,
"loop-sum.js": 41.9827,
"loop-empty-resolve.js": 4.51067,
"function-correct-args.js": 92.112,
"function-sum.js": 43.78
},
"duktape": {
"loop-empty.js": 76.7253,
"function-empty.js": 49.264,
"function-excess-args.js": 38.76,
"function-closure.js": 20.4973,
"function-missing-args.js": 37.6133,
"loop-sum.js": 92.9,
"loop-empty-resolve.js": 9.17733,
"function-correct-args.js": 38.7093,
"function-sum.js": 32.0213
}
},
"memory": {
"jerryscript": {
"loop-empty.js": 28,
"function-empty.js": 32,
"function-excess-args.js": 32,
"function-closure.js": 32,
"function-missing-args.js": 32,
"loop-sum.js": 32,
"loop-empty-resolve.js": 28,
"function-correct-args.js": 32,
"function-sum.js": 32
},
"duktape": {
"loop-empty.js": 144,
"function-empty.js": 148,
"function-excess-args.js": 148,
"function-closure.js": 476,
"function-missing-args.js": 148,
"loop-sum.js": 144,
"loop-empty-resolve.js": 144,
"function-correct-args.js": 148,
"function-sum.js": 148
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More