This patch fixes the return value of the routine also fixes several incorrect regression-tests
due to the previously incorrect [[RegExpMatcher]] internal slot check.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Until now "get"/"set" were always parsed as special 'keywords' for accessor methods,
but they should be parsed as simple class method if no identifier is followed by them.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch slightly reworks the container objects internal objects allocation.
This rework allows the same lifetime of the objects without the manual allocation/deallocation of the internal object.
This patch also fixes#2951.
Co-authored-by: Dániel Bátyai <[email protected]>
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
VM_RECURSION_LIMIT only prevented the recursion of interpreted codeblocks but
native/builtin function calls can also create stack overflow due to the too deep recursion.
This patch fixes#2905.
Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2889 and extends the API documentation of the native free callbacks.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes the build error due to #2888 since this patch has been merged without rebasing to #2903.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
The reference to the previous context is only used by the debugger and the backtrace info,
so this element should not be part of the structure by default.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Also implement the missing iterator initializer part from the Map builtin object constructor.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
A class expression can be part of any kind of expression since the asserts for the stack position calculation were incorrect.
This patch fixes#2819.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch reworks the core of the builtin Map object.
Advantages:
- Provide sublinear access time for the elements via Lcache and property hashmap
- This implementation is suitable for the builtin Set object as well
Also add the missing 'forEach' routine for the builtin object as well.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
New API functions:
- jerry_create_dataview
- jerry_value_is_dataview
- jerry_get_dataview_buffer
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Currently JS objects can only have one native pointer data which could be a limitation in special cases.
This patch allows to register multiple native infos, which can be accessed/associated with the corresponding `jerry_object_native_info_t`.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Binary size gain:
- Intel: ~780B (gcc-7.3)
- Arm: ~450B (arm-linux-gnueabi-gcc-7.3)
The change also contains the renovation of each builtin routine to use early return in case of error to make the code less complicated.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2779 and the same issue for the Symbol.prototype object, also fixes the check
for the Iterator/ArrayIterator object as well since these checks macro guards were misplaced.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2774 and fixes#2775 as well.
Also add a shortcut to access the length of the array in `ecma_builtin_json_array`.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2757, also adds a short path for the case when the source and the target typedarrays are the same.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
New functions:
- ecma_create_symbol
- ecma_value_is_symbol
- jerry_get_symbol_descriptive_string
Also improve the jerryx_handler_print to be able to print symbol values via using the jerry_get_symbol_descriptive_string API function for symbol values.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch reduces the number of string to string object conversion during property managing operations,
via access the length property directly from the string instead of the newly created string object.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Implicit class constructor functions should not be handled as bound functions during [[HasInstance]] check.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch adds posibility to supervise the VM call stack to avoid aborts/crashes due to the recursion calls.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Also add a missing word from `PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER` error message.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Add missing check for during property handling for %TypedArray% object since until now only string property names were possible.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch is the proper fix for #2667, since #2269 did not fix the problem entirely.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch contains the base functionalities that the new builtin object requires.
Currently unavailable:
- print (Symbol('foo')) - this features requires the refactor of the print handler function
- Several global symbol based builtin routines (follow up patch)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch substitutes all binary lvalue operators with an assigment + the corresponding binary operator.
E.g. A += (expression) is pasred as A = A + (expression).
Due to this replacement, all the related binary lvalue CBC opcodes can be removed.
Also the arithmetic related VM instructions can put their result directly onto the stack, since no more checking is needed.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2658 and ensures that when a class extends value is null and the class has no explicit constructor
the proper error is raised during constructing a class instance.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch introduces a new builtin descriptor table to substitute the generated switch-case structure in 'ecma_instantiate_builtin',
also removes the corresponding helpers functions to simplify the instantiation process.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
`PARSER_CLASS_SUPER_PROP_REFERENCE` flag should be applied for only binary lvalue tokens.
This patch fixed#2671.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2652 and fixes#2653 as well, also reverts #2521.
Related part of the standard ECMAScript v5.1 15.12.3.10.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
All ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND type lexical environments should return their outer reference during resolving syntactic reference.
This patch fixes#2666.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
Exec operations{call, construct, super_call} related bytecode sequences no longer executed twice.
The execution continues with the next opcode or a specific bytecode sequence if an error occurs during the operation.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
VM_OC_PROP_GET is the general vm instruction for getting an object's property.
This opcode can be mutated into several other opcodes depending on the context (pre- post increment, ident reference).
Since these mutated opcodes perform additional checks and VM_OC_PROP_GET is a highly frequent instruction and it is worth to introduce a special case for it.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch removes the ECMA_IS_VALUE_ERROR check from VM_OC_NOT, since the general toBoolean operation cannot throw an exception.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
In with contexts the object base value must be resolved before executing a call operation.
Since this happens rarely the base resolving code paths has been seperated to an other VM opcode
so these extra checks do not burden the general property call steps.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
The following stucture was highly frequented in the code base:
- Get a builtin object // This operation increases the reference count of the object
- Use it for create a new object
- Deref the builtin object
After a builtin has been instantiated there is always at least one reference to "keep it alive",
so increase/decrease the reference count for getting the value only is unnecessary.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
With the change the test file truly checks the corresponding part of the standard (ECMAScript v5, 15.2.3.4.1).
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
This patch fixes#2587.
The reason of disabling these tests is that the current implementation slightly differs from the related part of the standard (ECMA-262 v6, 9.4.2.3.6.d.1).
This part requires the hidden Symbol.@@species property, hence this functionality has not been implemented yet in the project.
Also add the related test case to prevent further errors.
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]