1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  * vim: set ts=8 sts=4 et sw=4 tw=99:
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/. */
6 
7 #ifndef json_h
8 #define json_h
9 
10 #include "mozilla/Range.h"
11 
12 #include "NamespaceImports.h"
13 
14 #include "js/RootingAPI.h"
15 
16 namespace js {
17 class StringBuffer;
18 
19 extern JSObject*
20 InitJSONClass(JSContext* cx, HandleObject obj);
21 
22 extern bool
23 Stringify(JSContext* cx, js::MutableHandleValue vp, JSObject* replacer,
24           Value space, StringBuffer& sb);
25 
26 template <typename CharT>
27 extern bool
28 ParseJSONWithReviver(JSContext* cx, const mozilla::Range<const CharT> chars,
29                      HandleValue reviver, MutableHandleValue vp);
30 
31 } // namespace js
32 
33 #endif /* json_h */
34