19#include <qjsonarray.h>
20#include <qjsonobject.h>
21#include <qjsonvalue.h>
22#include <qjsondocument.h>
43{
return a
.o->d() == b
.o->d(); }
46{
return ::qHash((
void *)i
.o->d(), seed); }
64 { V4ObjectSet visitedObjects;
return toJsonValue(value, visitedObjects); }
66 { V4ObjectSet visitedObjects;
return toJsonObject(o, visitedObjects); }
68 { V4ObjectSet visitedObjects;
return toJsonArray(o, visitedObjects); }
71 static QJsonValue toJsonValue(
const QV4::Value &value, V4ObjectSet &visitedObjects);
72 static QJsonObject toJsonObject(
const Object *o, V4ObjectSet &visitedObjects);
73 static QJsonArray toJsonArray(
const Object *o, V4ObjectSet &visitedObjects);
79 JsonParser(ExecutionEngine *engine,
const QChar *json,
int length);
84 inline bool eatSpace();
85 inline QChar nextToken();
87 ReturnedValue parseObject();
88 ReturnedValue parseArray();
89 bool parseMember(Object *o);
90 bool parseString(QString *string);
91 bool parseValue(Value *val);
92 bool parseNumber(Value *val);
94 ExecutionEngine *engine;
100 QJsonParseError::ParseError lastError;
JsonParser(ExecutionEngine *engine, const QChar *json, int length)
ReturnedValue parse(QJsonParseError *error)
bool operator==(const ObjectItem &a, const ObjectItem &b)
size_t qHash(const ObjectItem &i, size_t seed=0)
static bool scanEscapeSequence(const QChar *&json, const QChar *end, uint *ch)
static const int nestingLimit
DEFINE_OBJECT_VTABLE(JsonObject)
static bool addHexDigit(QChar digit, uint *result)
#define Q_MANAGED_TYPE(type)
#define CHECK_EXCEPTION()
#define RETURN_UNDEFINED()
static ReturnedValue fromJsonValue(ExecutionEngine *engine, const QJsonValue &value)
static ReturnedValue fromJsonObject(ExecutionEngine *engine, const QJsonObject &object)
static QJsonArray toJsonArray(const QV4::Object *o)
static ReturnedValue fromJsonArray(ExecutionEngine *engine, const QJsonArray &array)
static ReturnedValue method_parse(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static QJsonObject toJsonObject(const QV4::Object *o)
static ReturnedValue method_stringify(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static QJsonValue toJsonValue(const QV4::Value &value)
ObjectItem(const QV4::Object *o)