From 399f8b6f0653275ac0068b58ef08ce9d223f4adb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Thu, 14 Apr 2022 19:24:42 +0300 Subject: [PATCH] jscript: Pass the Map object to the callback when iterating. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/jscript/set.c | 3 ++- dlls/mshtml/tests/documentmode.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/jscript/set.c b/dlls/jscript/set.c index 640bf44b5f4..dd6829d9b6d 100644 --- a/dlls/jscript/set.c +++ b/dlls/jscript/set.c @@ -179,11 +179,12 @@ static HRESULT iterate_map(MapInstance *map, script_ctx_t *ctx, unsigned argc, j } LIST_FOR_EACH_ENTRY(entry, &map->entries, struct jsval_map_entry, list_entry) { - jsval_t args[2], v; + jsval_t args[3], v; if(entry->deleted) continue; args[0] = entry->value; args[1] = entry->key; + args[2] = jsval_obj(&map->dispex); grab_map_entry(entry); hres = disp_call_value(ctx, get_object(argv[0]), NULL, DISPATCH_METHOD, ARRAY_SIZE(args), args, &v); diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index 28450f721bb..ed41ac1d7a7 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -995,7 +995,7 @@ sync_test("map_obj", function() { var calls = []; i = 0; - r = s.forEach(function(value, key) { + r = s.forEach(function(value, key, map) { if(isNaN(test_keys[i])) { ok(isNaN(key), "key = " + key + " expected NaN"); ok(isNaN(value), "value = " + value + " expected NaN"); @@ -1003,6 +1003,7 @@ sync_test("map_obj", function() { ok(key === test_keys[i], "key = " + key + " expected " + test_keys[i]); ok(value === key + 1, "value = " + value); } + ok(map === s, "map = " + map); i++; }); ok(i === test_keys.length, "i = " + i);