[PATCH 2/9] jscript: Move Set below Map.

Gabriel Ivăncescu gabrielopcode at gmail.com
Thu Apr 14 11:24:39 CDT 2022


So it can be implemented on top of Map.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
 dlls/jscript/set.c | 190 ++++++++++++++++++++++-----------------------
 1 file changed, 95 insertions(+), 95 deletions(-)

diff --git a/dlls/jscript/set.c b/dlls/jscript/set.c
index 8098d76..d87ce97 100644
--- a/dlls/jscript/set.c
+++ b/dlls/jscript/set.c
@@ -37,101 +37,6 @@ typedef struct {
     size_t size;
 } MapInstance;
 
-static HRESULT Set_add(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("%p\n", debugstr_jsval(vthis));
-    return E_NOTIMPL;
-}
-
-static HRESULT Set_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("%p\n", debugstr_jsval(vthis));
-    return E_NOTIMPL;
-}
-
-static HRESULT Set_delete(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("%p\n", debugstr_jsval(vthis));
-    return E_NOTIMPL;
-}
-
-static HRESULT Set_forEach(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("%p\n", debugstr_jsval(vthis));
-    return E_NOTIMPL;
-}
-
-static HRESULT Set_has(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("%p\n", debugstr_jsval(vthis));
-    return E_NOTIMPL;
-}
-
-static HRESULT Set_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static const builtin_prop_t Set_props[] = {
-    {L"add",        Set_add,       PROPF_METHOD|1},
-    {L"clear",      Set_clear,     PROPF_METHOD},
-    {L"delete" ,    Set_delete,    PROPF_METHOD|1},
-    {L"forEach",    Set_forEach,   PROPF_METHOD|1},
-    {L"has",        Set_has,       PROPF_METHOD|1},
-};
-
-static const builtin_info_t Set_prototype_info = {
-    JSCLASS_SET,
-    Set_value,
-    ARRAY_SIZE(Set_props),
-    Set_props,
-    NULL,
-    NULL
-};
-
-static const builtin_info_t Set_info = {
-    JSCLASS_SET,
-    Set_value,
-    0, NULL,
-    NULL,
-    NULL
-};
-
-static HRESULT Set_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
-        jsval_t *r)
-{
-    SetInstance *set;
-    HRESULT hres;
-
-    switch(flags) {
-    case DISPATCH_CONSTRUCT:
-        TRACE("\n");
-
-        if(!r)
-            return S_OK;
-        if(!(set = heap_alloc_zero(sizeof(*set))))
-            return E_OUTOFMEMORY;
-
-        hres = init_dispex(&set->dispex, ctx, &Set_info, ctx->set_prototype);
-        if(FAILED(hres))
-            return hres;
-
-        *r = jsval_obj(&set->dispex);
-        return S_OK;
-
-    default:
-        FIXME("unimplemented flags %x\n", flags);
-        return E_NOTIMPL;
-    }
-}
-
 struct jsval_map_entry {
     struct wine_rb_entry entry;
     jsval_t key;
@@ -483,6 +388,101 @@ static HRESULT Map_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, uns
     }
 }
 
+static HRESULT Set_add(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("%p\n", debugstr_jsval(vthis));
+    return E_NOTIMPL;
+}
+
+static HRESULT Set_clear(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("%p\n", debugstr_jsval(vthis));
+    return E_NOTIMPL;
+}
+
+static HRESULT Set_delete(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("%p\n", debugstr_jsval(vthis));
+    return E_NOTIMPL;
+}
+
+static HRESULT Set_forEach(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("%p\n", debugstr_jsval(vthis));
+    return E_NOTIMPL;
+}
+
+static HRESULT Set_has(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("%p\n", debugstr_jsval(vthis));
+    return E_NOTIMPL;
+}
+
+static HRESULT Set_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    FIXME("\n");
+    return E_NOTIMPL;
+}
+
+static const builtin_prop_t Set_props[] = {
+    {L"add",        Set_add,       PROPF_METHOD|1},
+    {L"clear",      Set_clear,     PROPF_METHOD},
+    {L"delete" ,    Set_delete,    PROPF_METHOD|1},
+    {L"forEach",    Set_forEach,   PROPF_METHOD|1},
+    {L"has",        Set_has,       PROPF_METHOD|1},
+};
+
+static const builtin_info_t Set_prototype_info = {
+    JSCLASS_SET,
+    Set_value,
+    ARRAY_SIZE(Set_props),
+    Set_props,
+    NULL,
+    NULL
+};
+
+static const builtin_info_t Set_info = {
+    JSCLASS_SET,
+    Set_value,
+    0, NULL,
+    NULL,
+    NULL
+};
+
+static HRESULT Set_constructor(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv,
+        jsval_t *r)
+{
+    SetInstance *set;
+    HRESULT hres;
+
+    switch(flags) {
+    case DISPATCH_CONSTRUCT:
+        TRACE("\n");
+
+        if(!r)
+            return S_OK;
+        if(!(set = heap_alloc_zero(sizeof(*set))))
+            return E_OUTOFMEMORY;
+
+        hres = init_dispex(&set->dispex, ctx, &Set_info, ctx->set_prototype);
+        if(FAILED(hres))
+            return hres;
+
+        *r = jsval_obj(&set->dispex);
+        return S_OK;
+
+    default:
+        FIXME("unimplemented flags %x\n", flags);
+        return E_NOTIMPL;
+    }
+}
+
 HRESULT init_set_constructor(script_ctx_t *ctx)
 {
     jsdisp_t *constructor;
-- 
2.34.1




More information about the wine-devel mailing list