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/. */
11 #ifndef js_MapAndSet_h
12 #define js_MapAndSet_h
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
,
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
,
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
,
85 #endif // js_MapAndSet_h