Bug 1874684 - Part 25: Editorial updates. r=dminor
[gecko.git] / js / public / MapAndSet.h
blob754379dc82079e079f850c6e32a5158653710450
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: set ts=8 sts=2 et sw=2 tw=80:
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /*
8 * Maps and Sets.
9 */
11 #ifndef js_MapAndSet_h
12 #define js_MapAndSet_h
14 #include "jspubtd.h"
16 namespace JS {
19 * Map
21 extern JS_PUBLIC_API JSObject* NewMapObject(JSContext* cx);
23 extern JS_PUBLIC_API uint32_t MapSize(JSContext* cx, HandleObject obj);
25 extern JS_PUBLIC_API bool MapGet(JSContext* cx, HandleObject obj,
26 HandleValue key, MutableHandleValue rval);
28 extern JS_PUBLIC_API bool MapHas(JSContext* cx, HandleObject obj,
29 HandleValue key, bool* rval);
31 extern JS_PUBLIC_API bool MapSet(JSContext* cx, HandleObject obj,
32 HandleValue key, HandleValue val);
34 extern JS_PUBLIC_API bool MapDelete(JSContext* cx, HandleObject obj,
35 HandleValue key, bool* rval);
37 extern JS_PUBLIC_API bool MapClear(JSContext* cx, HandleObject obj);
39 extern JS_PUBLIC_API bool MapKeys(JSContext* cx, HandleObject obj,
40 MutableHandleValue rval);
42 extern JS_PUBLIC_API bool MapValues(JSContext* cx, HandleObject obj,
43 MutableHandleValue rval);
45 extern JS_PUBLIC_API bool MapEntries(JSContext* cx, HandleObject obj,
46 MutableHandleValue rval);
48 extern JS_PUBLIC_API bool MapForEach(JSContext* cx, HandleObject obj,
49 HandleValue callbackFn,
50 HandleValue thisVal);
53 * Set
55 extern JS_PUBLIC_API JSObject* NewSetObject(JSContext* cx);
57 extern JS_PUBLIC_API uint32_t SetSize(JSContext* cx, HandleObject obj);
59 extern JS_PUBLIC_API bool SetHas(JSContext* cx, HandleObject obj,
60 HandleValue key, bool* rval);
62 extern JS_PUBLIC_API bool SetDelete(JSContext* cx, HandleObject obj,
63 HandleValue key, bool* rval);
65 extern JS_PUBLIC_API bool SetAdd(JSContext* cx, HandleObject obj,
66 HandleValue key);
68 extern JS_PUBLIC_API bool SetClear(JSContext* cx, HandleObject obj);
70 extern JS_PUBLIC_API bool SetKeys(JSContext* cx, HandleObject obj,
71 MutableHandleValue rval);
73 extern JS_PUBLIC_API bool SetValues(JSContext* cx, HandleObject obj,
74 MutableHandleValue rval);
76 extern JS_PUBLIC_API bool SetEntries(JSContext* cx, HandleObject obj,
77 MutableHandleValue rval);
79 extern JS_PUBLIC_API bool SetForEach(JSContext* cx, HandleObject obj,
80 HandleValue callbackFn,
81 HandleValue thisVal);
83 } // namespace JS
85 #endif // js_MapAndSet_h