Commit Graph
1078 Commits
Author SHA1 Message Date
Daniella Barsony 73daeb19c9 Implement new Reflect methods (#3549)
This patch implements the get, set, has, deleteProperty, ownKeys, and construct methods of the Reflect objects. The Reflect.construct method is missing the new_target support because ecma_op_function_construct doesn't support it yet.

JerryScript-DCO-1.0-Signed-off-by: Daniella Barsony [email protected]
2020-02-24 11:02:06 +01:00
Dániel Bátyai 68909fc5de Fix lexical scoping between scripts (#3558)
This change fixes the handling of lexical blocks when executing multiple
scripts, and also fixes a few issues with module environments.

After this change, all script files will run in the same context and
will have access to lexically scoped global variables of previous
scripts, and module environments will no longer have a bound global
'this' value.

The REPL implementation in main-unix is also fixed to correctly handle
lexically scoped variables.

Fixes #3561.

JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2020-02-21 13:30:48 +01:00
rwalczyna 98b90ba697 Fix third parameter of forEach callback function in Map and Set (#3565)
There was a problem with passing third parameter to callback.

This patch fixes #3564

JerryScript-DCO-1.0-Signed-off-by: Rafal Walczyna [email protected]
2020-02-18 19:22:08 +01:00
rwalczyna 0ff664cab6 Fix Array.find and Array.findIndex omitting empty values. (#3563)
Empty values in array were omitted. Predicate should be called
for every element from 0 to length.

JerryScript-DCO-1.0-Signed-off-by: Rafal Walczyna [email protected]
2020-02-18 15:19:53 +01:00
Szilagyi Adam 181570ff41 Implement EscapeRegExpPattern method (#3543)
the algorithm is based on ECMA-262 v6, 21.2.3.2.4

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-02-18 09:49:54 +01:00
Szilagyi Adam 44e63e038d Use stringbuilder in ecma_get_symbol_descriptive_string (#3560)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-02-18 09:47:53 +01:00
Hyukwoo Park 54e4de39ab Fix attributes of length property for builtin objects (#3556)
* length property has the attributes {[[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true} based on ECMA-262 v6, 19.2.4.1

JerryScript-DCO-1.0-Signed-off-by: HyukWoo Park [email protected]
2020-02-14 10:25:26 +01:00
Szilagyi Adam 4d67ac3225 Use stringbuilder in ecma_builtin_string_prototype_object_concat (#3557)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-02-13 17:42:07 +01:00
Szilagyi Adam 8cd5d06620 Update ecma_op_typedarray_from to use iterable objects (#3501)
Added steps 6-8 from ECMA-262 v6, 22.2.2.1.1

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-02-13 15:53:41 +01:00
Péter Gál fa81944743 Foreach API methods should not iterate over internal objects (#3537)
The `jerry_objects_foreach` and `jerry_objects_foreach_by_native_info` methods
iterates over all objects. However in ES 2015 there are a few special objects
which should only be used internally thus these objects should not be accessed
by the API user.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2020-02-03 19:07:24 +01:00
Dániel Bátyai a78c8d4f16 Add vera rules to check consecutive and trailing empty lines (#3540)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2020-02-03 16:39:04 +01:00
Robert Fancsik 563a5d93e9 Fix 'arguments' and 'caller' properties lazy listing in ES2015 profile (#3539)
This patch fixes #3536.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-02-03 15:12:59 +01:00
Robert Fancsik b73100d933 Add missing release value call to Array.prototype.pop fast path. (#3535)
This patch fixes #3534.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-24 10:54:55 +01:00
Robert Fancsik e693854dae Fix array-indexed property name calculation for fast access mode arrays in property name listing (#3533)
This patch fixes #3532.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-23 17:21:35 +01:00
Robert Fancsik 3c5fb342be Update "arguments" and "caller" properties of function object to conform ES6 changes (#3530)
This patch resolves #3393.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-23 15:53:37 +01:00
Péter Gál 608bc9e5ff Improve new.target handling in case of eval calls (#3517)
Only direct eval calls propagate the "new.target" information.
In any other eval cases the "new.target" invocation is a syntax error.

Added test cases also.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2020-01-21 18:01:35 +01:00
Daniel Balla f46d061d19 Allow API usage in native_free_callbacks (#3515)
This patch allows the use of API functions in native_free_callbacks for native pointers once again.

JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2020-01-18 10:05:32 +01:00
Robert Fancsik c4948936c2 Add missing release value to ecma_op_object_get_property_names (#3524)
This patch fixes #3523.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-17 11:36:40 +01:00
Peter Marki 51244b6d08 Add option to list symbols in Object.getOwnPropertyNames() (#3507)
Also a little refactoring of Object.getOwnPropertyNames()

JerryScript-DCO-1.0-Signed-off-by: Peter Marki [email protected]
2020-01-16 15:59:27 +01:00
Robert Fancsik 8b41bf306a Introduce builtin intrinsic object to share property values between builtin objects (#3490)
Fixed:
 - Global symbol access
 - Array.prototype.values and Array.prototype[Symbol.iterator] must be the same function object

To test the new functionality arguments object Symbol.iterator property is added.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-16 15:57:27 +01:00
Robert Fancsik 4a331b2edc Add builtin GeneratorFunction support (#3499)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-15 12:01:58 +01:00
Peter Marki c8ce7d8791 Construct non-fast array in ecma_op_array_species_create (#3514)
Fixes #3506

JerryScript-DCO-1.0-Signed-off-by: Peter Marki [email protected]
2020-01-14 15:35:49 +01:00
Péter Gál 0fd1ed6f27 Add support for new.target (#3469)
Notable changes:
* Extracted the pure JS/builtin and external C method invocations
  into two new methods (`ecma_op_function_call_{simple, external}`).
* Updated parser/scanner to handle "new.target" correctly.
* Added JS test case.

JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
2020-01-14 13:34:19 +01:00
Robert Fancsik be8ae3aae8 Add iterator close support for for-of statement (#3401)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-13 17:38:47 +01:00
Robert Fancsik be83ff6b71 Update Function.prototype.bind to conform ES6 requirements (#3504)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2020-01-13 11:43:11 +01:00
Daniel Balla 1725e014b8 Support iterable objects in Promise.all and Promise.race functions (#3496)
JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2020-01-10 15:44:52 +01:00
Szilagyi Adam c407e8a04c Refactor ecma_builtin_error_prototype_object_to_string to use stringbuilder (#3503)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-01-10 15:40:00 +01:00
Virag Orkenyi b6c2e6eb54 toNumber operation should handle binary and octal literals (#3471)
JerryScript-DCO-1.0-Signed-off-by: Virag Orkenyi [email protected]
2020-01-10 15:31:54 +01:00
Peter Marki 08da8bc7aa Add length check to ecma_builtin_array_prototype_object_slice (#3481)
Fixes #3479

JerryScript-DCO-1.0-Signed-off-by: Peter Marki [email protected]
2020-01-10 12:16:53 +01:00
Szilagyi Adam aedd55b1f8 Add unscopables check to ecma_op_get_value_lex_env_base (#3476)
Also added a special test case for this to symbol-unscopables.js

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-01-07 15:13:28 +01:00
Szilagyi Adam 22e52e45af Fix value release in ecma_builtin_typedarray_prototype_map (#3491)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-01-07 14:25:59 +01:00
Csaba Osztrogonác 9e0709e401 Fix Array.prototype.reduce and reduceRight (#3487)
Don't throw TypeError when object length is 0 and initialValue is undefined.
Additionally the error message should be more precise and match other engines.

Fixes #3463

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2020-01-06 15:17:54 +01:00
Szilagyi Adam 40b38f70ef Refactor ecma_regexp_exec_helper arguments (#3484)
We use pointers instead of ecma_value_t

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-01-06 14:38:09 +01:00
Szilagyi Adam 183600dff2 Refactor ecma_op_same_value (#3486)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2020-01-06 14:33:46 +01:00
Peter Marki 300570381f Add fast-path check to ecma_builtin_array_prototype_slice (#3480)
Fixes #3459

JerryScript-DCO-1.0-Signed-off-by: Peter Marki [email protected]
2020-01-06 10:30:10 +01:00
Daniel Balla e21e4a18ba Fix freeing this_arg in ecma_builtin_promise_race_or_all (#3482)
Fixes #3478

JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2020-01-03 14:18:40 +01:00
Csaba Osztrogonác 518fcf2c6a Optimize ecma_number_to_uint32 (#3470)
The ecma_number_to_uint32 function is called many times, we can merge
ecma_number_is_nan and ecma_number_is_infinity checks to !ecma_number_is_finite
to let the compiler generate more optimal code for it.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-12-20 12:37:02 +01:00
Zoltan Herczeg 8cb2be6001 Support parsing async modifiers for functions. (#3460)
Only parsing is implemented, so the async functions currently behave
like normal function except they return with a resolved Promise object
when the function is terminated correctly.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2019-12-20 09:55:41 +01:00
Dániel Bátyai 2a29b72a83 Implement and add support for Symbol.split (#3453)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-12-20 09:10:58 +01:00
Csaba Osztrogonác 85bb2113fe Make Math.min() and Math.max() ECMA262 conform (#3465)
Math.min() and Math.max() functions should apply ToNumber on each arguments
always, even if a NaN argument occured previously and the result will be NaN.

ECMA262 v5.1 15.8.2:
"Each of the following Math object functions applies the ToNumber abstract
operator to each of its arguments (in left-to-right order if there is more
than one) and then performs a computation on the resulting Number value(s).

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-12-20 08:57:17 +01:00
Robert Fancsik 9596a7e1d6 Implement tagged template literals (#3456)
Missing features: snapshot support

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-12-19 19:10:45 +01:00
Szilagyi Adam 7bfbc701d8 Implement Symbol.unscopables (#3405)
Added a new property for Array.prototype based on ECMA-262 v6, 22.1.3.31
Also upgraded the HasBinding operation with ECMA-262 v6, 8.1.1.2.1 steps 7-9

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-12-19 16:34:23 +01:00
Csaba Osztrogonác 456fb046ba Remove asserts from ecma_number_is_zero and is_inf (#3466)
There is no reason to force the developer to call ecma_number_is_nan
check before all ecma_number_is_zero and ecma_number_is_infinity.
These functions work fine and return false if NaN is passed.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-12-19 15:36:56 +01:00
Szilagyi Adam e2893f26a1 Add iterator closing for ecma_op_container_create (#3457)
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi [email protected]
2019-12-19 11:40:29 +01:00
Daniel Balla e0d8c4ca10 Add @@species accessor to Array and Promise builtin objects (#3440)
Fully support @@species and SpeciesConstructor in Array and Promise builtins.
Also added partial support to TypedArrays, but a rework is needed in %TypedArray%.prototype functions' typedarray constructor, which is out of this patch's scope.

JerryScript-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
2019-12-16 11:44:15 +01:00
Zoltan Herczeg 40d930d62c Implement \u{hex} support. (#3447)
A large rework because surrogate pairs must be combined.

Currently only the 0x10C80..0x10CF2 is accepted as valid identifier character from the non-basic plane.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2019-12-16 11:26:02 +01:00
Csaba Osztrogonác 1db16c3a1c Fix Math.round(x) for big integer numbers (#3449)
Math.round(x) should be x it x is already integer. (ES5 15.8.2.15)
The current implementation calculates with x +/- 0.5, which isn't
representable numbers if x >= 2^52.

A correct bug fix can be to follow the spec and simply
return the number itself if it is already integer.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-12-16 10:57:22 +01:00
Dániel Bátyai d3b8bed2c1 Implement and add support for RegExp.prototype[@@search] (#3436)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2019-12-12 15:59:28 +01:00
Csaba Osztrogonác fb4b18a515 Fix Math.trunc(x) if -1 < x < 0 (#3445)
Math.trunc(x) should be -0.0 if -1 < x < 0 (ES2015 20.2.2.35). The problem
was that -0 isn't -0.0, but +0.0 in C. There were a test case for it, but
it was incorrect, because +0.0 === -0.0 in JS.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác [email protected]
2019-12-12 10:57:44 +01:00
Robert Fancsik 9b33fc8cbd Revise the usage of the global error value/exception flag (#3426)
This patch also fixes #3422.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-12-10 14:42:10 +01:00