Commit Graph

270 Commits

Author SHA1 Message Date
Gabriel Ivăncescu a8057c2e14 jscript: Implement Array.prototype.toLocaleString.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-03 20:24:31 +02:00
Gabriel Ivăncescu 41782ec12e jscript: Return proper error in Number.toLocaleString with invalid 'this' in ES5 mode.
Note that, for example, Number.toFixed still returns JS_E_NUMBER_EXPECTED
even in ES5 mode (this is already tested).

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-03 20:24:18 +02:00
Gabriel Ivăncescu 8aefdf48f9 jscript: Implement Number.prototype.toLocaleString.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-03 20:24:06 +02:00
Gabriel Ivăncescu 429325b689 jscript: Don't allow changing prototype on non-extensible objects.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 22:33:30 +01:00
Gabriel Ivăncescu 7858f87ae5 jscript: Throw error when attempting to set circular __proto__ chains.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 22:33:27 +01:00
Gabriel Ivăncescu 364e093ab7 jscript: Make Object.prototype.__proto__ an actual accessor.
We have to define it after the constructors are initiated.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 22:33:24 +01:00
Gabriel Ivăncescu 7a1c6453bc jscript: Pass a jsval "this" to builtin functions.
And get rid of vdisp_t since it's no longer needed.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-17 21:06:11 +01:00
Eric Pouech 679bbdf89d jscript: Use correct integral type.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-01 18:23:19 +01:00
Gabriel Ivăncescu ce1b3f5f1d jscript: Replace the value_prop in builtin_info with a call method.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-25 21:20:29 +01:00
Gabriel Ivăncescu 46367d1ecc jscript: Implement Object.prototype.__proto__ property.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:10:09 +01:00
Jacek Caban 9ced0b1fbc jscript: Add Map.prototype.set implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-27 18:55:24 +02:00
Jacek Caban 6dda7096bf jscript: Add Map object stub implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-27 18:19:53 +02:00
Jacek Caban 8dd582ebeb jscript: Add Set object stub implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-22 10:20:24 +02:00
Jacek Caban 6e292a745f mshtml: Introduce ES6 JavaScript mode and use it in IE11 compat mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-22 10:20:08 +02:00
Jacek Caban 9885de45af jscript: Add Object.getOwnPropertyNames implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 22:57:11 +02:00
Jacek Caban c4948c428a jscript: Use enum to pass enumeration type to jsdisp_next_prop.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 22:57:11 +02:00
Jacek Caban 1f49903e66 jscript: Add Object.isFrozen and Object.isSealed implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 21:13:39 +02:00
Jacek Caban 380ae426a4 jscript: Throw error when trying to add a property to non-extensible objects in jsdisp_propput_idx.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 21:13:27 +02:00
Jacek Caban 51742d80cd jscript: Add Object.seal implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:34:06 +02:00
Jacek Caban 0d3634b3ff jscript: Add Object.freeze implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:34:06 +02:00
Jacek Caban 7f1c98cac6 jscript: Support non-extensible objects in jsdisp_define_property.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:34:06 +02:00
Jacek Caban 7750753758 jscript: Support non-extensible objects.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:29:53 +02:00
Jacek Caban f568b48e66 jscript: Get dispid and call invoke in a single step when setting a member property.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:29:48 +02:00
Gabriel Ivăncescu eb43d59e8e jscript: Store the object prototype in the script context.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 22:58:26 +01:00
Jacek Caban 42c044ae71 jscript: Support VT_DATE to string conversion.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 21:44:17 +01:00
Jacek Caban 3fb0e893b1 jscript: Support VT_DATE to number conversion.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 21:44:17 +01:00
Alexandre Julliard 061c747bfa jscript: Use the standard isfinite() function.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 13:46:26 +01:00
Jacek Caban 102fe73e66 jscript: Add Object.keys implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:39 +02:00
Jacek Caban 3e9d32ca43 jscript: Throw proper stack overflow exception.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:39 +02:00
Jacek Caban 2c21d0344c jscript: Don't realloc interpreter stack.
We share the stack for all calls in script instance, so it no loner
makes sense.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:39 +02:00
Jacek Caban 6de0a658f1 jscript: Throw proper exception in RegExp.prototype.toString when called on non-RegExp object.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:31:23 +02:00
Gabriel Ivăncescu c2a5aa7d37 jscript: Add stub implementation of separate script dispatches for named items.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 22:16:30 +01:00
Gabriel Ivăncescu acb076c820 jscript: Lookup host global object on demand instead of storing it in script context.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:54:31 +01:00
Gabriel Ivăncescu e560489e50 jscript: Use struct list for named items.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:50:13 +01:00
Gabriel Ivăncescu 3d23f095bf jscript: Reference-count the named items.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 19:37:38 +01:00
Gabriel Ivăncescu 0242ae52e6 jscript: Lookup the named item using a helper function.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 00:55:44 +01:00
Gabriel Ivăncescu f6a4dda977 jscript: Move the named_item_t definition.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 00:55:44 +01:00
Jacek Caban bfb2e5d959 jscript: Delay error object creation for builtin errors with message string until it's needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-03 20:48:04 +01:00
Jacek Caban df70647b00 jscript: Directly return error code instead of using throw_syntax_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:25:07 +01:00
Jacek Caban 2224736967 jscript: Directly return error code instead of using throw_uri_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:25:05 +01:00
Jacek Caban 0167f4a7dd jscript: Directly return error code instead of using throw_regexp_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:25:03 +01:00
Jacek Caban c372e79e25 jscript: Directly return error code instead of using throw_reference_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:25:00 +01:00
Jacek Caban b67c957f39 jscript: Directly return error code instead of using throw_range_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:24:58 +01:00
Jacek Caban 1d487027a0 jscript: Directly return error code instead of using throw_generic_error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:24:55 +01:00
Jacek Caban f6c5da47f7 jscript: Suport generic error object for exception with no associated JavaScript exception value.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-02 16:24:51 +01:00
Jacek Caban 9855c248f8 jscript: Store error code in jsexcept_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 16:22:33 +01:00
Jacek Caban 63683b42f7 jscript: Use separated jsexcept_t instance for each external call.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 15:58:40 +01:00
Gabriel Ivăncescu a6ac60dcc3 jscript: Implement ScriptTypeInfo_GetIDsOfNames.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-12 23:17:05 +01:00
Gabriel Ivăncescu 94bd9ab8a9 jscript: Store the necessary function and variable info in the TypeInfo.
The TypeInfo is built when it is retrieved and frozen at that moment, even
if the script changes after that and more identifiers are added to it,
or existing ones deleted.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-12 23:17:05 +01:00
Jacek Caban f34cecbae2 jscript: Treat only ASCII digits as digits.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 23:38:07 +01:00