On 14/12/2021 12:24, Jinoh Kang wrote:
On 12/14/21 06:12, Jacek Caban wrote:
Hi Gabriel,
The series will obviously need to wait for the code freeze. I took a look and didn't catch problems with patch 1 (although I will have another look when the time comes).
On 12/10/21 10:52 PM, Gabriel Ivăncescu wrote:
else - vthis = jsval_disp(lookup_global_host(ctx)); + vthis = jsval_null();
This looks suspicious, doesn't it break the assumption that 'this' is an object in ES3?
Yes, and it does not conform to ES5 strict mode either, where `this` should be undefined.
Thanks,
Jacek
I actually had to revert it, and keep the checks like originally. I don't know if the spec is wrong, or if Microsoft's implementation is not compliant here, but there are some tests added in this patch (for example, the Object.hasOwnProperty and Array.sort tests) that return JS_E_OBJECT_EXPECTED.
Which means they do receive a NULL (or undefined) value. Both are supposed to work even on dispatch objects, so that can't be the issue either, no matter what the global object is. Unless I'm missing something here...?
Also, we don't even implement ES5 strict mode yet, and this patch is only temporary for now, because we don't pass jsval yet. This is fixed later in the series where we pass the jsval directly in ES5 mode (so whether it's NULL or undefined, it gets passed that way).