Commit Graph
91 Commits
Author SHA1 Message Date
Péter Gál eb97860509 Add support for Symbols when using the 'in' operation (#3202)
The change adds support for the 'in' operation to handle Symbols.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-10-07 15:31:06 +02:00
Péter Gál 3e23a3b62f Improve documentation on native pointer API methods (#3191)
Added extra notes on the native pointer API usages to clarify
when the free callback function is invoked. Also added a note
for the free callback typedef to inform users to not call API methods
in the callback.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-10-04 16:57:16 +02:00
Péter Gál 5ed8647b9e Improve example REPL to exit if there is nothing on the stdin (#3193)
When reading from the stdin a '\n' character or an empty line/file
was expected to end the read. However, in case of an input which is not terminated
with a newline a buffer overflow will occur.

Test case:
```sh
$ echo -n "print('a')" | ./build/bin/jerry
```

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-10-03 09:26:50 +02:00
Péter Gál 2096fba571 Do not add line info into the merged sources by default (#3194)
Previously the #line macro directives were always included in the
generated single source output. However, this adds quite a lot of
size to the source file (not to the binary) and it is only useful
for the library developers. Hence, it is now disabled by default.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-10-03 09:25:53 +02:00
Péter Gál 5d51fe8f27 Fix TypedArray.slice with external array buffer (#3080)
In case of TypedArrays which were constructed with an ArrayBuffer
the `slice` method incorrectly added the `byteOffset` value of
when the elements were copied.

There is no need to add the `byteOffset` value for the ArrayBuffer's
contents pointer as it is already added by the `ecma_typedarray_get_buffer`
call.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-09-07 12:22:20 +02:00
Péter Gál 1b84a17dc7 Correctly propagate super prop ref when parsing expressions (#3077)
The "super prop ref" flag is incorrectly used at multiple expressions
as it was only cleared if there was an assignment operation.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-09-06 16:56:04 +02:00
Péter Gál 57f389dcf4 Add backtrace print when the 'assert' js method fails (#3051)
In the jerry-ext there is a native 'assert' handler implemented.
This change adds extra backtrace information if an 'assert' call fails.

To print out the backtrace the library should be built with `JERRY_LINE_INFO` enabled.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-09-05 13:07:21 +02:00
Péter Gál 27da5a538c Update API version number (#3000)
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-08-01 13:24:41 +02:00
Péter Gál 8ebd3230a1 Make sure that snapshot API return values are the same as in the docs (#2997)
The snapshot API docs describe that those functions returns error if
the related features are not enabled. Updated the return values to follow
the API documentation.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-31 19:23:55 +02:00
Péter Gál 1409a68dcb Generate jerryscript-config.h before build (#2934)
Previously after the library was build there was no easy way
to get back the information of how it was build.

This change adds a bit of CMake code to generate the
jerryscript-config.h file containing the default options
and adding the modified build options/features.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-31 19:21:24 +02:00
Péter Gál c90306449e Correctly handle call arguments when using 'super' calls (#2996)
There are two interconnected changes here:
* Added missing argument number handling for `super.propname(..)` calls.
* The `super.propname.call(...)` is does not need extra 'this' binding helper.

Fixes #2990.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-31 15:13:06 +02:00
Péter Gál 99b061ad10 Fix incorrect feature guard for class support (#2992)
In `ecma-helpers.c` there was an incorrect macro guard which
tested the `JERRY_ES2015` feature but the `JERRY_ES2015_CLASS`
feature should be tested instead.

Profile options for testing:
* JERRY_ES2015=0
* JERRY_ES2015_CLASS=1
* JERRY_ES2015_OBJECT_INITIALIZER=1

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-29 14:29:21 +02:00
Péter Gál c64ee882da Introduce new jerry-ext methods to ease property registration (#2715)
New methods
* jerryx_set_properties: Allows multiple property registration for via a single call
* jerryx_set_property_str: Allows property registration without the need to
    create the property name JS value. The property name can be directly passed
    as a `const char*` value and must be zero terminated.
* jerryx_get_property_str: Allows getting a property value on a given object.
    The property name can be directly passed as a `const char*` value.
* jerryx_has_property_str: Allows checking if a property exists on a given object.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-25 20:37:44 +02:00
Péter Gál 3e12738037 Improve single-source generation (#2989)
Detected and fixed minor issues with the single-source generation:
* On Windows the line info generation now correctly escapes the path separators.
* Fixed an incorrect C file include order. Now the global object C file is
  force included to get all common headers at the start in the generated source
  file.
* Added a missing colon which fixed the correct removal of the config.h include.
* Fix the command line help.
* Small typo fix.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-25 20:34:12 +02:00
Péter Gál 50be3a5384 Document and improve the single-source generation (#2986)
Changes done:
* Added usage/configuration info for this mode.
* Created `tools/srcgenerator.py` to allow source/header generation
  without using CMake.
* Adapted CMake to use the `srcgenerator.py` script.
* Added jerry-libm single-source build.
* Improved the `srcmerger.py` script to correctly handle the line numbering.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-25 12:46:00 +02:00
Péter Gál 434994eb67 Add extra details for the api example page (#2956)
Add simple examples and details on how to execute them.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-24 15:47:55 +02:00
Péter Gál f53dba1a3a Add dependency info for accessing memstats from API (#2979)
The documentation of `jerry_get_memory_stats` method was missing
the requirements on what build option or feature is required.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-22 11:15:19 +02:00
Péter Gál 1374d5f562 Update and improve API documentation (#2952)
A few parts of the API documentation was not clear enough.
Added extra details and examples.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-10 22:43:33 +02:00
Péter Gál ef5dd5c698 Rework CMake options to use the new macro config format (#2933)
Updated all feature related CMake option to use JERRY_ format.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-08 18:25:17 +02:00
Péter Gál eef1efa394 Rework usages/naming of configuration macros [part 3] (#2927)
Reworked the JERRY_DEBUGGER macro to be a 0/1 switch.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-07-01 13:12:19 +02:00
Péter Gál 01ecc7bb7b Rework usages/naming of configuration macros [part 2] (#2903)
There are quite a few configuration macros in the project.
As discussed in the #2520 issue there are a few awkward constructs.

Main changes:

* The following macros are now 0/1 switches:
** Renamed CONFIG_ECMA_LCACHE_DISABLE to JERRY_LCACHE.
** Renamed CONFIG_ECMA_PROPERTY_HASHMAP_DISABLE to JERRY_PROPERTY_HASHMAP.
** Renamed CONFIG_DISABLE_UNICODE_CASE_CONVERSION to JERRY_UNICODE_CASE_CONVERSION.
** Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
** Renamed JERRY_DISABLE_JS_PARSER to JERRY_PARSER.
** Renamed JERRY_ENABLE_ERROR_MESSAGES to JERRY_ERROR_MESSAGES.
** Renamed JERRY_ENABLE_EXTERNAL_CONTEXT to JERRY_EXTERNAL_CONTEXT.
** Renamed JERRY_ENABLE_LINE_INFO to JERRY_LINE_INFO.
** Renamed JERRY_ENABLE_LOGGING to JERRY_LOGGING.
** Renamed JERRY_ENABLE_SNAPSHOT_EXEC to JERRY_SNAPSHOT_EXEC.
** Renamed JERRY_ENABLE_SNAPSHOT_SAVE to JERRY_SNAPSHOT_SAVE.
** Renamed JERRY_SYSTEM_ALLOCATOR to JERRY_SYSTEM_ALLOCATOR.
** Renamed JERRY_VM_EXEC_STOP to JERRY_VM_EXEC_STOP.
** Renamed JMEM_GC_BEFORE_EACH_ALLOC to JERRY_MEM_GC_BEFORE_EACH_ALLOC.
** Renamed JMEM_STATS to JERRY_MEM_STATS.
** Renamed PARSER_DUMP_BYTE_CODE to JERRY_PARSER_DUMP_BYTE_CODE.
** Renamed REGEXP_DUMP_BYTE_CODE to JERRY_REGEXP_DUMP_BYTE_CODE.
* Recursion check changes:
** Renamed REGEXP_RECURSION_LIMIT to JERRY_REGEXP_RECURSION_LIMIT.
** Renamed VM_RECURSION_LIMIT to JERRY_VM_RECURSION_LIMIT.
* Attribute macro changes:
** Renamed JERRY_CONST_DATA to JERRY_ATTR_CONST_DATA.
** Renamed JERRY_HEAP_SECTION_ATTR to JERRY_ATTR_GLOBAL_HEAP.
  Now the macro can specify any attribute for the global heap object.
* Other macro changes:
** Renamed CONFIG_MEM_HEAP_AREA_SIZE to JERRY_GLOBAL_HEAP_SIZE.
   Then new macro now specify the global heap size in kilobytes.
* Updated documentations to reflect the new macro names.

For more deatils please see jerry-core/config.h.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-06-19 12:28:21 +02:00
Péter Gál 40f7b1c27f Rework usages/naming of configuration macros [part 1] (#2793)
There are quite a few configuration macros in the project.
As discussed in the #2520 issue there are a few awkward constructs.

Main changes:

* Renamed all CONFIG_DISABLE_<name>_BUILTIN macro to JERRY_BUILTIN_<name> format.
* The special JERRY_BUILTINS macro specifies the basic config for all es5.1 builtins.
* Renamed all CONFIG_DISABLE_ES2015_<name> to JERRY_ES2015_<name> format.
* The special JERRY_ES2015 macro specifies the basic config for all es2015 builtins.
* Renamed UNICODE_CASE_CONVERSION to JERRY_UNICODE_CASE_CONVERSION.
* Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
* All options (in this change) can have a value of 0 or 1.
* Renamed ENABLE_REGEXP_STRICT_MODE to JERRY_REGEXP_STRICT_MODE.
  JERRY_REGEXP_STRICT_MODE is set to 0 by default.
* Reworked CONFIG_ECMA_NUMBER_TYPE macro to JERRY_NUMBER_TYPE_FLOAT64 name and now
  it uses the value 1 for 64 bit floating point numbers and 0 for 32 bit floating point
  number.
  By default the 64-bit floating point number mode is enabled.
* All new JERRY_ defines can be used wit the `#if ENABLED (JERRY_...)` construct to
  test if the feature is enabled or not.
* Added/replaced a few config.h includes to correctly propagate the macro values.
* Added sanity checks for each macro to avoid incorrectly set values.
* Updated profile documentation.
* The CMake feature names are not updated at this point.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-04-09 10:14:46 +02:00
Péter Gál 3f6599c358 Add a "single" source/header file generation and build mode (#2790)
Introduce a new way of building: before any file is compiled
all source files are combined into a single C file and all
header files into a single H file (per subdir).

This new approach makes it possible to quickly integrate JerryScript
into other projects:

```
$ gcc -o demo demo.c jerryscript.c jerryscript-port-default.c -lm
```

To use the source generator run:
```
$ cmake -Bbuild_dir -H. -DENABLE_ALL_IN_ONE_SOURCE=ON
$ make -C build_dir generate-single-source
```

This will create the following files in the `build_dir`:
* jerryscript.c
* jerryscript.h
* jerryscript-config.h
* jerryscript-port-default.c
* jerryscript-port-default.h

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-04-01 11:06:13 +02:00
Péter Gál fbd734ed28 Split the Travis checks into two test calls (#2797)
The cppcheck can run for quite a long time, sometimes even more than
10 minutes. This change splits the test execution into two part:
* First, do all checks excluding the cppcheck call with the default timeout.
* Second, do the cppcheck call with a 30 minutes maximum timeout.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-03-18 09:32:40 +01:00
Péter Gál 162ba8c116 Make jerryx_port_handler_print_char truly a port function (#2789)
In the previous approach `jerryx_port_handler_print_char` was implemented
in by the jerry-default-port. This implementation however required the
jerry-ext handler header file which created a requirement in the
jerry-default-port for the jerry-ext headers.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-03-13 10:19:30 +01:00
Péter Gál f22eea5c6e Allow build artifacts on AppVeyor (#2752)
Enabled the creation of JerryScript Windows binary artifacts during builds.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-02-09 17:01:31 +01:00
Péter Gál 545c6c771b Update the debugger to work on Windows (#2684)
Changed the debugger-tcp.c file to include Windows specific
socket handling code and mode user all components are compilable
for Windows.

Added appveyor configuration to build with and without debugger.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2019-01-17 11:40:29 +01:00
Péter Gál efa8850783 Use binary mode when opening via fopen in the tools (#2371)
In the snapshot tool the files were opened
in text mode. However the snapshot files
are binary files thus it is advised to use the
binary mode when opening the files.

Specifying the binary mode is a must on Windows
platform otherwise the read/write operations
are inserting extra '\r' characters.

To make the tools consitent across OSes all
fopen are now opening files in binary mode.

Also update jerry-libc to accept the 'b'
modifier and add a test case where the JS
file uses CR-LF line endings.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-06-12 04:38:35 +09:00
Péter Gál 9ae60a4910 Improve license checker line ending validation (#2391)
The license checker previously assumed that the
lines of the license will always end with \n
characters. However when checking a file
it could happen that other line endings are
returned (should only happen for test files) thus
the checker can incorrectly report invalid license
as the line endings are incorrect.

Additional note #1: in Python when reading a file
in text mode it can happen that the line endings are
converted to the host system's line ending.
However on Travis the conversion did not happen when
using the open built-in method. By switching to the
io.open call the conversion is enforced and
all line endings are converted to '\n' regardless of
the host system's line ending.

Additional note #2: it is possible that there
are input test files which are not utf-8 conformant
(eg.: to test the parser). These files can't be read
as utf-8 strings and an exception would occur.
By ignoring these errors the tool can check
the file's license. In the license text there is no
invalid utf-8 character so the check will work
correctly.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-06-11 19:37:28 +09:00
Péter Gál d637e31933 On simple strings the utf8 substring copy api call created an assert (#2389)
When the `jerry_substring_to_utf8_char_buffer` was called
with direct strings the assert incorrectly assumed that the
string is a ref counted string and tried to access the
refcount value resulting in a failed assert.

Added direct string check for the underlying implementation
and created a test case for such simple string.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-06-11 10:19:39 +09:00
Peter Gal 27dcfa51e1 Build fix after landing #2249
The old `jerry_value_has_error_flag` function was used
when the #2249 PR was merged.

Replaced with the correct `jerry_value_is_error` call.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-05-17 13:56:37 +02:00
Péter Gál 38f0dbf065 Remove 'useless' variable from function.bind (#2327)
The `args_length` variable in the `ecma_builtin_function_prototype_object_bind`
method is not needed, the `arguments_number` variable can be
directly used.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-05-15 09:03:40 +09:00
Peter Gal 86111acbc4 Remove usage of comma operator in array prototype
There was a typo in the `ecma_builtin_array_prototype_helper_set_length`
method as the comma operator was used to close the statement, incorrectly

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-05-15 00:52:30 +02:00
Péter Gál 708f66ad91 Fix accessing the contents of a direct string (#2261)
In the `ecma_string_get_chars` method
the contents of a direct string is accessed incorrectly.
It tries to extract the magic string id from the
string pointer but the direct string does not need
this step.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-03-29 20:20:59 +02:00
Péter Gál 66d0f53bbb Remove a few ECMA_TRY_CATCH macro usages (#2246)
By removing the ECMA_TRY_CATCH macros at these
places  ~200 bytes of .text is saved on rpi2.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-03-21 18:36:38 +09:00
Péter Gál 55058cf151 Add quiet mode for test runner(s) (#2228)
In one of the previous PR we have encountered a problem,
where the Travis cuts off the test execution
as the generated log file is too big.

By adding a quiet mode for the test runners, we will
only report the failing tests.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-03-02 10:18:17 +09:00
Péter Gál 575ec7e10a Check _XOPEN_SOURCE macro before defining (#2220)
In jrt.h the _XOPEN_SOURCE macro is defined.
However if the compiler already specifies this as
a default define, it can lead to compiler warnings
or errors.

By adding a macro check the warnings/errors can be
avoided.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-03-02 10:17:25 +09:00
Péter Gál d7991ae54c Add C API to query the type of a JS value (#2195)
New API function:
 * jerry_value_get_type

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-02-13 13:48:07 +01:00
Péter Gál 4652c3caaf Add OpenWrt build guide (#2199)
There was an OpenWrt toolchain file however it's a bit outdated and
we did not have any guide on how to build for this target at all.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-02-12 17:21:57 +09:00
Péter Gál 6f339eb05c Introduce C API to query the type of an Error object (#2177)
New api function:
* jerry_get_error_type

Additionally update a few places where this new function
can be used.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-02-06 09:41:54 +01:00
Péter Gál 8041953a7a Add TypedArray C API (#2165)
New API functions added:
 - jerry_value_is_typedarray
 - jerry_create_typedarray
 - jerry_create_typedarray_for_arraybuffer_sz
 - jerry_create_typedarray_for_arraybuffer
 - jerry_get_typedarray_type
 - jerry_get_typedarray_length
 - jerry_get_typedarray_buffer

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-02-06 08:01:32 +01:00
Peter Gal 4b699e997a Add ArrayBuffer with user specified buffer
New API functions:
 - jerry_create_arraybuffer_external
 - jerry_get_arraybuffer_pointer

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-01-25 10:14:53 +09:00
Peter Gal 40d05cdca2 Add version fields for debugger configuration
By adding version information to the debugger protocol
it is possible to report if the debugger client and server
have different expectations on debugger workings (opcodes, types, etc.).

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-01-23 10:17:33 +09:00
Péter Gál ded0d5a846 Introduce the Array Buffer C API (#2161)
Add C API to work with Array Buffers.
The following methods are added:
- jerry_value_is_arraybuffer
- jerry_create_arraybuffer
- jerry_arraybuffer_write
- jerry_arraybuffer_read
- jerry_get_arraybuffer_byte_length

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2018-01-11 20:36:08 +01:00
Péter Gál 8b109510fd Move _XOPEN_SOURCE macro to a more generic place (#2136)
Building with all-in-one and enabled debugger caused
errors as the sleep functions were not defined.

By moving the _XOPEN_SOURCE macro to a generic place
we make sure that the required sleep functions are
present in every case.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-12-07 11:54:37 +01:00
Peter Gal a8a6122a93 Force python2 when running test262
The test262 python script is not python 3 compatible
so we force it to be executed with python2.

Additionally print out the reason if the execution
failed.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-12-06 13:16:25 +09:00
Peter Gal a8dffe023e Fix the mbed Travis build
On Travis the Python (by default) is a bit old
and causes problems when the yotta is being used.

Switching to Python 2.7.13 solves half of the problem.

The other problem is the pyOpenSSL 17.5 and Linux
library incompatibilities. Thus we force the pyOpenSSL
to a pre-17.5 version.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-12-05 20:16:25 +09:00
Péter Gál 7692aa9d66 Improve the heap limit measure tool (#2092)
Changes:
 * Added support for Python3
 * Suppressed the build output text
 * Code cleanup
 * Fixed pylint warnings

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-11-15 17:02:32 +01:00
Péter Gál 8ae659227e Move snapshot generation function to the snapshot tool (#2057)
Now there is a snapshot tool which can merge snapshots
but was unable to generate snapshots by itself.

This change moves the snapshot generation utilities
to the snapshot tool.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-11-05 18:37:27 +01:00
Péter Gál 0ee7509030 Install pylint for user on Travis (#2064)
On Travis the pylint package can't be installed
due to insufficient permissions.

To fix this we'll try to install the package for the user
and not for the system.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-10-30 14:46:29 +01:00
Peter Gal 4913a42086 Fix API docs
The #2043 introduced a bit of error in the API
docs as there was missing backticks.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-10-19 16:26:59 +09:00
Péter Gál 6d988afbf4 Introduce a way to directly save snapshot functions and load them back (#2043)
Added two new api functions:
* jerry_parse_and_save_function_snapshot
* jerry_load_function_snapshot_at

The jerry_parse_and_save_function_snapshot function allows
creating snapshots from snapshot arguments and body source.

The jerry_load_function_snapshot_at function enables loading
back functions from a given snapshot as a JS function object.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-10-18 15:03:54 +02:00
Péter Gál d56713b9af When compiling with gcc 7 the current fallthrough comments (#1878)
are not accepted. This is a bug in gcc 7.

For now disable the fallthrough comment detection.
Disabling the check does not introduce any risk
as previously it was not enabled by default and
vera++ already check these kind of comments.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-06-08 17:07:40 +09:00
Péter Gál add60865e0 Rename files under jerry-code/debugger to avoid build fails (#1877)
Without the file renaming there are two jerry-debugger.c files.
Thus when the jerry-core archive is created there are two objects
in it with the same name. Generally this does not create any problems.
However if the archive is extracted then the second object file
will overwrite the first one which results in undefined reference
linkage error.

The jerry- prefix was removed from the file names and
fixed the include oreders where it was needed.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-06-07 08:39:30 +09:00
Péter Gál 013430aafb Fix minor inconsistencies in the API documentation (#1663)
In the jerry_set_prototype part the method was described
as jerry_get_prototype. Minor typo fix.

The usage of jerry_set_property was incorrect. Each
call to the jerry_set_property returns a value which must be freed.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-03-23 15:50:24 +01:00
Péter Gál 75d8226af3 Add jerryscript.h and mark jerry-api.h as deprecated (#1579)
Add a notification for JerryScript API users that the jerry-api.h
will be removed in the future and should use the jerryscript.h
header instead.

Also update the examples in the docs and the targets where
the jerry-api.h is used.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2017-02-16 08:46:08 +01:00
Peter Gal 17d1d37cca Improve the Curie build file generator a bit
Works with python 2 and 3.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2016-08-31 11:35:21 +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 [email protected]
2015-10-07 10:35:02 +02: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 [email protected]
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 [email protected]
2015-10-01 14:47:10 +02:00
Peter Gal fe0ec9d7fa Object constructor prototype should be set to Function.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-08-06 13:38:24 +02:00
Peter Gal af56cd8465 Make the string trim method unicode tolerant.
Fixes issue #426

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-08-04 17:09:45 +02:00
Peter Gal 801e8e34cd Test lastIndex calculation for exec calls
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-07-29 11:20:13 +02:00
Peter Gal 3fbe54393f Make parseInt unicode tolerant.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-07-28 18:36:39 +02:00
Peter Gal 25450d8a12 Error constructor prototypes should be Function
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-07-28 12:16:38 +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 [email protected]
2015-07-27 15:58:38 +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 [email protected]
2015-07-24 16:22:50 +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 [email protected]
2015-07-24 14:39:12 +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 [email protected]
2015-07-24 11:00:24 +02: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 [email protected]
2015-07-23 10:42:13 +03:00
Peter Gal db9b74a114 Fix buffer size calculation in parseInt.
Fixes issue #279.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-07-16 10:14:22 +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 [email protected]
2015-07-15 15:33:10 +03: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 [email protected]
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 [email protected]
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 [email protected]
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-07-06 10:25:12 +02: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 [email protected]
2015-06-23 18:08:51 +02: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 [email protected]
2015-06-17 17:55:56 +02:00
Peter Gal 62cb842434 Implement Function.prototype.toString.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-06-12 14:54:03 +02:00
Peter Gal 36c80f2cf5 Remove nullptr usages and use NULL instead
Related issue: #119

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-06-11 18:38:48 +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 [email protected]
2015-06-09 18:03:42 +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 [email protected]
2015-06-03 10:47:00 +02:00
Peter Gal 5c012a1183 Implement Object.getOwnPropertyNames and Object.keys.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-06-01 16:01:02 +02: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 [email protected]
2015-05-28 15:44:03 +02:00
Peter Gal aaeec7fb09 Implement Array.prototoype.toLocaleString()
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-05-27 15:18:43 +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 [email protected]
2015-05-27 11:44:28 +02:00
Peter Gal b614c0bd9a Implement Array.prototype.join
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-05-21 16:22:48 +02:00
Peter Gal c16e065263 Implement Array.prototype.toString
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-05-20 16:18:47 +02:00
Peter Gal 7d703040d0 Implement Object.prototype.isPrototypeOf
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
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 [email protected]
2015-05-19 15:45:51 +02:00
Peter Gal 7954df3e82 Implement Object.prototype.toLocaleString
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-05-19 10:31:03 +02:00
Peter Gal 6c4e988a06 Implement Object.property.hasOwnProperty
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2015-05-15 15:43:10 +02:00