Some of these fixes are subtle (like the first patch) and very annoying to debug. Although the first patch looks like a hack, surprisingly, it's how the spec itself says it is! It's not even an IE quirk, but a special case in the spec.
For example, the variable name (which holds the builtin eval func) **does** matter: if it's called something other than 'eval', it gets treated differently (as if indirect), and this is verified by the tests + the spec's wording (so Microsoft's implementation follows it).
Most of the patches other than the first 2 are pretty small so they're in same MR.
--
v9: jscript: Get rid of the function instance in arguments obj.
jscript: Start from the last argument when adding them to named locals.
jscript: Store detached args into a scope's specialized buffer.
jscript: Don't use iface_to_jsdisp where it's not necessary to grab it.
jscript: Get rid of jsobj in scope_chain_t.
jscript: Fix function leak in scope_init_locals.
jscript: Fix addressing invalid memory if ref is an argument.
jscript: Correctly implement context for indirect eval calls in ES5+ modes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2942
The goal of this MR is to set up the minimum necessary infrastructure to display the contents of some simple, software rendered windows. This involves two major steps:
1. Associate a window with a Wayland surface and give it the `xdg_toplevel` role, so that the compositor can display it. We also have to implement the required initial `xdg_surface` configuration sequence to be able to safely (i.e., without the compositor disconnecting us with an error) attach buffers to the surface in step (2).
2. Implement the `window_surface` interface for the Wayland driver. For now we provide a simple (and suboptimal) `window_surface_flush` implementation: for each flush we create a new `wl_shm` buffer, copy the whole window contents (ignoring damaged bounds for now) into it and attach it to the target Wayland surface. In the next MR I will optimize this implementation in multiple ways: a. implement a buffer queue to avoid constantly allocating new buffers b. respect the damaged bounds of the `window_surface` to minimize copying of data from the `window_surface` to the SHM buffer (and also for correctness) c. communicate damaged surface regions to the compositor to (potentially) allow more efficient texture uploads.
With this MR many (software-rendered) applications can now display dynamic content on screen. We can't interact with the apps yet, but we do get to enjoy `notepad` in all its blinking-cursor glory.
Thanks!
--
v6: winewayland.drv: Do not commit buffers to unconfigured surfaces.
winewayland.drv: Implement a simple window_surface flush.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2944
This series adds a couple of features to WinRT's media.speech:
- IVoiceInformation, and synthetizer's options are present
(mainly use to store information, not yet to make fully use of it)
- add a dummy implementation (1 single voice); that should be extended
in future series by using ISpVoice instead
- add a couple of more tests to go with implementation
(the serie should prevent MS Flight simulator to crash on first
connection. Crash is due to exception handling of C# generated
exceptions from E_NOTIMPL with some X11 related critical resources).
A+
--
v3: windows.media.speech: Implement get/put voice on synthesizer.
windows.media.speech: Select a default voice in synthesizer.
windows.media.speech: Add more tests about default voice.
windows.media.speech: Finish implementation of voice information view.
windows.media.speech/tests: Add tests about vector view's content.
windows.media.speech: Add basic implementation of IVoiceInformation.
windows.media.speech: Add more tests about IVoiceInformation.
windows.media.speech: Add basic implementation on synthesizer options.
windows.media.speech: Add a couple of synthesizer's options tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3048