The toJSON method should be searched on the `this` object
only once. In case of normal objects there were no problems
however when a Proxy object is used as the `this` argument
for the Date.prototype.toJSON method the Proxy's `get` method
was invoked twice.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
From ES 6 the ToPropertyKey operation is used to convert elements to a valid property key.
This "new" method uses the ToPrimitive operation which can call the `@@ToPrimitive`
well-known symbol to convert the given element to a key.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
This change introduces simple stack measuring by coloring the stack
before doing the actual JS work.
The dynamic linking should be avoided as it will use the stack during
the symbol resolving.
At this moment the `JERRY_STACK_MEASURE` compile time define will enable
the measurement for the jerry-test binary.
A usable build configuration:
```
./tools/build.py --jerry-cmdline-test=on --compile-flag=-DJERRY_STACK_MEASURE=1 --compile-flag=-static
```
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
The Date.prototype[@@toPrimitive] only allows the "string", "default" and "number"
hint values. Any other value should throw a TypeError.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
* Added more details into documentation.
* Moved the C unit-test into its own file.
* Added extra test cases.
* Extended the API reference documentation with doctests.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
In case of an empty array is used as a replacer for the JSON.stringify,
the output string should not contain any keys.
Fixes: #3926
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
The DataView's third argument incorrectly processed the "undefined"
value resulting in a RangeError.
Fixes: #3927
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
During the `opfunc_spread_arguments` argument release process
the stack pointer was incremented early resulting in a state where
one of the arguments was not freed causing a memory leak.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
When the getOwnPropertyDescriptor method was invoked the input property
descriptor was not cleared in every case. This could lead to problems when
the property descriptor is not set/modified by the getOwnPropertyDescriptor
call, resulting in a failure at a later state.
Related to this the Proxy getOwnPropertyDescriptor method incorrectly returned
"undefined" value in a single case.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
Property key query for Proxy objects always returned all keys
even if no symbols were requested symbols were present in the
resulting array.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
When lastIndexOf is executed the array length can change and in
case of fast arrays the length should be re-checked.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
The regexp flag should be correctly referenced and released
if an existing regexp like object is used for constructing a new one.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
The release of the regexp pattern string during creating
was incorrect as it was dereferenced a bit to early.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
During ecma_collection_append the underlying collection
was not increased in the required case. This triggered
a buffer overflow when processing the bound function's arguments
during call or during the Proxy ownKeys method.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]
During "put" with receiver the fast arrays were not converted to normal
objects to correctly set properties on it.
JerryScript-DCO-1.0-Signed-off-by: Peter Gal [email protected]