Commit Graph
3555 Commits
Author SHA1 Message Date
Daniel Vince d60587f838 Add @@hasInstance Symbol support for instanceof operator (#3226)
Implemented ES2015 modifications for `instanceof` operator.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
JerryScript-DCO-1.0-Signed-off-by: Dániel Vince [email protected]
2019-10-21 11:03:43 +02:00
Zoltan Herczeg 7df87b7778 Create function variables using the data produced by the pre-scanner. (#3199)
The pre-scanner now is able to track all variable declarations and produces a compressed
stream which store this data for each function and catch block. When a function or
catch block is parsed, this information is decoded and the appropriate variables are
created. Furthermore a stack scope is created which contains the currently available
local variables and their register or literal index.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2019-10-17 15:20:04 +02:00
Robert Fancsik fd1f7eab9f Add public API functions for internal property management (#3128)
These 4 new API functions give possibility to perform [[Get]], [[Set]], [[Has]], [[Delete]] operations for properties
which are not accessible from the JavaScript context only from the public API.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-17 13:56:49 +02:00
Robert Fancsik a40eb9bab8 Remove duplicated error raising in ecma_op_typedarray_set_with_typedarray (#3223)
This patch fixes #3222.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-17 11:56:14 +02:00
Daniel Balla fd8203ce98 Add missing error checks to API functions (#3190)
JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2019-10-16 16:51:03 +02:00
legendecas 2e86bdae6f Add ArrayBuffer detach operations (#3208)
JerryScript-DCO-1.0-Signed-off-by: legendecas [email protected]
2019-10-16 16:41:27 +02:00
Szilagyi Adam 09c5d98e25 Optimize array push/pop for fast-array cases (#3187)
Performance results:
ARM: 1m19s -> 0m57s
Intel: 0m7,5s -> 0m5s

Binary size increase: 168 bytes

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-10-16 16:41:01 +02:00
Daniella Barsony 390916e989 Add Array.prototype.fill method (#3201)
JerryScript-DCO-1.0-Signed-off-by: Daniella Barsony [email protected]
2019-10-16 16:37:56 +02:00
Szilagyi Adam 5320f5a396 Use stringbuilder in typedArry toLocaleString (#3207)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-10-16 16:37:19 +02:00
Csaba Osztrogonác e8bc7a2b93 Update API version to 2.1.0. (#3220)
Closes #3104.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
v2.1.0
2019-10-16 15:14:56 +02:00
Robert Fancsik 8f39d90f7c Static strings should be reference counted in debug mode (#3219)
This patch helps to find out invalid reference count usage for ecma-strings.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-16 14:00:47 +02:00
Robert Fancsik 7518b7bfe6 Remove ECMA_PROPERTY_HASHMAP_SHIFT_LIMIT (#3217)
Ecma-string hash limit has already been increased to UINT32_MAX so all the string hashes can be stored directly in the hashmap.
This patch fixes #3216.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-16 13:59:43 +02:00
Zoltan Herczeg f0e432c9b9 Set post-processing mode after an arrow expression scanning is completed (#3215)
Fixes #3214.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2019-10-14 11:26:16 +02:00
Csaba Osztrogonác 84a56efd4f Fix undefined references build error on Windows (#3212)
We should emit symbol for ecma_make_nan_value (void), because
it is used by unit-core/test-to-integer.c and test-to-length.c.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-11 12:26:19 +02:00
Robert Fancsik fc2a2f94fd Properly release scanner info in parser_parse_for_statement_start (#3211)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-10 12:44:29 +02:00
Robert Fancsik 9e323cdcd6 Improve ecma_typedarray_info_t (#3205)
- The structure members have been renamed and the members got more detailed description.
- Updated the usage of the typedarray info structure in all occurrences to use absolute addressing from the underlying arraybuffer pointer.

This patch also fixes #3204.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-09 14:10:54 +02:00
legendecas ede1957932 Fix handle-scope unittest force conversion complaints (#3209)
JerryScript-DCO-1.0-Signed-off-by: legendecas [email protected]
2019-10-08 23:48:16 +02:00
Roland Takacs 6f515f079e Remove ARTIK 053 from the targets. (#3206)
ARTIK devices are no longer supported by the manufacturer.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs [email protected]
2019-10-08 16:50:32 +02:00
Szilagyi Adam 848a9854c3 Add missing value release in typedArray toLocaleString (#3200)
Fixes #3162

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-10-07 16:28:30 +02:00
Daniel Balla 7dc2d1dcd7 Fix delete operation in Set objects (#3203)
Delete should return false if an element doesn't exist in a set.
ECMA_VALUE_EMPTY wasn't checked in case of a deleted property.

JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2019-10-07 16:27:34 +02:00
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
Szilagyi Adam 0f754ff33c Fix count variable calculation in typedarray copyWithin (#3158)
Fixes #3130

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-10-07 11:31:44 +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
Zsolt Borbély e54666b448 Fix the include format of math.h (#3197)
The order of includes are also fixed.

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
2019-10-03 17:39:57 +02:00
Zsolt Borbély b206d60842 Remove superfluous include (#3198)
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
2019-10-03 17:39:21 +02:00
Daniella Barsony 466dc903fb Add toLength and toInteger operations (#3146)
JerryScript-DCO-1.0-Signed-off-by: Daniella Barsony [email protected]
2019-10-03 14:05:23 +02:00
Dániel Bátyai c17da4f33b Use a string builder in Array.prototype.join and toLocaleString (#3184)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-03 11:30:38 +02:00
Dániel Bátyai cfaecc6698 Fix an undefined read during module cleanup after parse error (#3181)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-03 11:01:11 +02:00
Dániel Bátyai 2180d979b7 Remove abort-on-fail from the default port (#3182)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-03 09:50:47 +02:00
Csaba Osztrogonác 6a848a36fd Make Date.parse handle 24:00:00.000 time properly (#3196)
ES5.1 15.9.1.15 Note1 defines that 24:00 is same as 0:00
of the next day. The spec explicitly doesn't mention that
24:01 should be invalid, but it should be self-evident.
(FireFox and Chrome also refuses times bigger than 24:00)

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-03 09:49:51 +02:00
Daniel Balla cd7720ee08 Remove test-longjmp.c (#3188)
The test is not needed anymore.
This file was added back then, when our libc had its own longjump implementation.
Now with this test we are only testing the system's longjump implementation which -in fact- works great.

JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2019-10-03 09:29:02 +02:00
Daniel Balla 64774d30ae Fix typos "enumberable" -> "enumerable" (#3189)
JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2019-10-03 09:28:36 +02:00
Dániel Bátyai 21e17a1412 Fix null escape in character classes (#3192)
Fixes #3001.

JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-03 09:28:00 +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
Dániel Bátyai c3bb516e4a Refactor RegExp builtin (#3136)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-02 16:55:16 +02:00
Szilagyi Adam c3510fc03d Improve typedArray get, set (#3023)
Here are the following changes:
  - The getter and setter methods are callback based now, and we can use
    them with the proper typedArray id
  - The typedArray set_element and get_element methods are using memcpy now.
  - There is a new struct which contains basic informations from typedArray,
    and we are using this in most of the prototype methods.
  - Eliminated ecma_op_typedarray_set_index_prop and
    ecma_op_typedarray_get_index_prop, because these methods
    also calculated the same informations which are in the new
    struct, so we use the new method instead.

Co-authored-by: Robert Fancsik [email protected]
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-10-02 16:39:26 +02:00
Dániel Bátyai f1883b9e7d Provide support for native modules with ES6 imports (#3090)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-02 12:20:43 +02:00
Robert Fancsik 2a89eec98b Reduce code duplication in js-parser-expr.c (#3159)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 12:17:45 +02:00
Csaba Osztrogonác f5e3faeaff Make ecma_number_make_nan more optimal and C99 conform (#3163)
This change makes ecma_number_make_nan and ecma_number_make_infinity
always return constant value without any function call. Previously we
relied on compiler optimizations.

The ecma_number_t_accessor union is introduced to be able to access
float values as float and uint32_t (and doubles as double and uint64_t)
properly, without violating strict aliasing rules. There were many
copies of it, all of them were replaced to this new union.

Additionally ecma_number_make_nan should return QNaN instead of SNaN,
same value as C99 nan(""). Unfortunately calling nan("") here isn't
always optimal, because compilers sometimes generate constant returns,
sometimes function calls.

Before this change ecma_number_make_nan returned SNaN:
- double: 0x7FF0 0000 0000 0001 (sign:0, exponent: all 1 bits, fraction: 0...01)
- float: 0x7F8 00001 (sign:0, exponent: all 1 bits, fraction: 0...01)

After this change ecma_number_make_nan returns QNaN:
- double: 0x7FF8 0000 0000 0000 (sign:0, exponent: all 1 bits, fraction: 10..0)
- float: 0x7FC0 0000 (sign:0, exponent: all 1 bits, fraction: 10...0)

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-02 12:17:27 +02:00
Robert Fancsik 32962f067e Fix class/function parsing in single-statement blocks (#3179)
This patch fixes #3151 and fixes #3174.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 11:16:52 +02:00
legendecas 07c7eb8a20 Fix python build --mem-heap document (#3185)
`--heap-size` has been renamed to `--mem-heap`
JerryScript-DCO-1.0-Signed-off-by: legendecas [email protected]
2019-10-02 11:16:38 +02:00
Csaba Osztrogonác 32c74fff22 Fix Date.prototype.toString() and toISOString() (#3175)
The implementation was incorrect for negative years and years bigger than 9999.
-1 was 000/ because the negative (year%10) was added to '0' character, years
bigger than 9999 was truncated to 4 digits.

ES5.1 15.9.1.15.1 defines extended years format with 6 digits, but toString()
and toISOString() sections don't mention anything about extended years. ES6
20.3.4.3 already clarifies that Date.prototype.toISOString() should use this
extended year format if it is necessary.

Changes:
- Date.prototype.toString() uses 4 digits for years by default, 5 or 6 if it
is necessary and put '-' sign for negative years, no sign for positive years.
Date.prototype.toString() was implementation dependent until ES9, but ES9
already specify exactly this format.
- Date.prototype.toISOString() uses fixed 4 digits for years 0 - 9999,
otherwise sign + 6 digits (extended years).
- Tests added for corner cases.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-02 10:26:20 +02:00
Robert Fancsik fbca37fde6 Fix argument validation for Number.prototype.toPrecision (#3176)
This patch fixes #3173

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 10:25:52 +02:00
Robert Fancsik 195b0d3c3a Fix duplicated argument validation for default arguments (#3178)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 10:10:23 +02:00
Csaba Osztrogonác e9664b78cd Make Date.parse accept extended years format too (#3177)
ES5.1 15.9.4.2 specifies that Date.parse (string) has to accept
at least Date Time String Format: YYYY-MM-DDTHH:mm:ss.sssZ. But
the spec allows implementation-specific fallbacks. Additionally
ES5.1 15.9.1.15.1 specifies Extended years format, but isn't
explicitly required to be accepted by Date.parse. But ES6 already
clarified that Date.parse has to accept extended years format too.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-01 15:08:16 +02:00
Csaba Osztrogonác 3763ac8371 Get rid of strict aliasing rule violations from libm (#3069)
JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-10-01 14:37:18 +02:00
Dániel Bátyai f7391a94ae Cleanup Valgrind macros (#3180)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-10-01 14:26:56 +02:00
Robert Fancsik 26626947c0 Inline ecma_gc_set_object_visited for performance critical code paths (#3154)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-30 16:46:31 +02:00
Robert Fancsik 57abd26c33 Optimize lcache insert (#3155)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-30 16:46:18 +02:00