Commit Graph

243 Commits

Author SHA1 Message Date
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
Jacek Caban 9b4267b04d jscript: Support enumerating own properties.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 14:18:49 +02:00
Alexandre Julliard 29ea8b42db jscript: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-06 11:15:24 +02:00
Andreas Maier a015c62643 jscript: Implement Enumerator object.
Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-17 20:02:47 +02:00
Andreas Maier 6630bc4096 jscript: Stub Enumerator object.
Enumerator is an MS extension.
It's needed to succeed VyChat219.msi installation.

Signed-off-by: Andreas Maier <staubim@quantentunnel.de>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-20 00:17:37 +02:00
Jacek Caban 5a90acf59c jscript: Use global accumulator for storing function call results.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-12 14:08:07 +02:00
Jacek Caban b0cce16c7a jscript: Use jsdisp_define_data_property in Object.getOwnPropertyDescriptor.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 16:48:26 +02:00
Jacek Caban 599769f857 jscript: Use jsdisp_define_property to set prototype constructors.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-14 16:26:07 +02:00
Jacek Caban 4555828c57 jscript: Use jsdisp_define_property instead of jsdisp_propput_const.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 17:26:51 +02:00
Jacek Caban 83de7691c6 jscript: Add Object.defineProperty implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 17:26:51 +02:00
Jacek Caban fc639fa271 jscript: Use jsdisp_get_own_property in Object.propertyIsEnumerable implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 00:39:45 +02:00
Jacek Caban f82bc09f28 jscript: Use jsdisp_get_own_property in Object.hasOwnProperty implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 00:39:43 +02:00
Jacek Caban 551e5a77e2 jscript: Added Object.getOwnPropertyDescriptor implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 00:39:41 +02:00
Jacek Caban da186c3cc5 jscript: Rename PROPF_ENUM to PROPF_ENUMERABLE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-03 16:20:42 +02:00
Jacek Caban 6b86fd795c jscript: Use new PROPF_WRITABLE flag instead of PROPF_CONST.
This is closer to how ES5 defines them.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-03 16:20:40 +02:00
Jacek Caban 197db9cac9 jscript: Use new PROPF_CONFIGURABLE flag instead of PROPF_DONTDELETE.
This is closer to how ES5 defines them.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-03 16:20:36 +02:00
Jacek Caban 3987d93992 jscript: Added Array.prototype.indexOf implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-02 10:54:32 +01:00
Jacek Caban d95a8b2bb4 jscript: Introduce Wine-specific extension allowing IE9+ JavaScript mode implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-01 19:27:23 +01:00
Michael Stefaniuc eb168bcbbf jscript: Use the global HeapAlloc() wrappers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Jacek Caban<jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-01 22:24:59 +01:00
Francois Gouget 1731629fd3 jscript: Add __WINE_ALLOC_SIZE attributes to heap_xxx() functions.
And standardize their parameter names.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 13:57:35 +01:00
Jacek Caban be37b894a4 jscript: Use IDispatch* as iface_to_jsdisp argument type.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 23:04:53 +09:00
Jacek Caban 6a03b38f33 jscript: Use already running interpreter for eval() execution.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:44 +09:00
Jacek Caban 66632091bf jscript: Use already running interpreter for execution of member source function.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:33 +09:00
Jacek Caban 32d9c59868 jscript: Get rid of no longer needed exec_ctx_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:17 +09:00
Jacek Caban 0224f1829b jscript: Moved stack from execution context to script context.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:05 +09:00
Jacek Caban 8a17cf89fb jscript: Keep track of active call in a separated structure.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:07 +09:00
Jacek Caban 95bdd084a1 jscript: Added JSON.stringify implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:43:35 +09:00
Jacek Caban 4e1e2ee451 jscript: Added JSON object stub implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-28 13:43:10 +09:00