return Value::undefinedValue();
return Value::fromString(ctx, result);
}
+
+
+
+QV4::Value JsonObject::fromJsonValue(ExecutionEngine *engine, const QJsonValue &value)
+{
+ if (value.isString())
+ return Value::fromString(engine->current, value.toString());
+ else if (value.isDouble())
+ return Value::fromDouble(value.toDouble());
+ else if (value.isBool())
+ return Value::fromBoolean(value.toBool());
+ else if (value.isArray())
+ return fromJsonArray(engine, value.toArray());
+ else if (value.isObject())
+ return fromJsonObject(engine, value.toObject());
+ else if (value.isNull())
+ return Value::nullValue();
+ else
+ return Value::undefinedValue();
+}
+
+QJsonValue JsonObject::toJsonValue(const QV4::Value &value,
+ V4ObjectSet &visitedObjects)
+{
+ if (String *s = value.asString())
+ return QJsonValue(s->toQString());
+ else if (value.isNumber())
+ return QJsonValue(value.toNumber());
+ else if (value.isBoolean())
+ return QJsonValue((bool)value.booleanValue());
+ else if (ArrayObject *a = value.asArrayObject())
+ return toJsonArray(a, visitedObjects);
+ else if (Object *o = value.asObject())
+ return toJsonObject(o, visitedObjects);
+ else if (value.isNull())
+ return QJsonValue(QJsonValue::Null);
+ else
+ return QJsonValue(QJsonValue::Undefined);
+}
+
+QV4::Value JsonObject::fromJsonObject(ExecutionEngine *engine, const QJsonObject &object)
+{
+ Object *o = engine->newObject();
+ for (QJsonObject::const_iterator it = object.begin(); it != object.end(); ++it)
+ o->put(engine->current, engine->newString(it.key()), fromJsonValue(engine, it.value()));
+ return Value::fromObject(o);
+}
+
+QJsonObject JsonObject::toJsonObject(QV4::Object *o, V4ObjectSet &visitedObjects)
+{
+ QJsonObject result;
+ if (!o || o->asFunctionObject())
+ return result;
+
+ if (visitedObjects.contains(o)) {
+ // Avoid recursion.
+ // For compatibility with QVariant{List,Map} conversion, we return an
+ // empty object (and no error is thrown).
+ return result;
+ }
+
+ visitedObjects.insert(o);
+
+ ObjectIterator it(o, ObjectIterator::EnumerableOnly);
+ while (1) {
+ PropertyAttributes attributes;
+ String *name;
+ uint idx;
+ Property *p = it.next(&name, &idx, &attributes);
+ if (!p)
+ break;
+
+ Value v = o->getValue(o->engine()->current, p, attributes);
+ QString key = name ? name->toQString() : QString::number(idx);
+ result.insert(key, toJsonValue(v, visitedObjects));
+ }
+
+ visitedObjects.remove(o);
+
+ return result;
+}
+
+QV4::Value JsonObject::fromJsonArray(ExecutionEngine *engine, const QJsonArray &array)
+{
+ int size = array.size();
+ ArrayObject *a = engine->newArrayObject();
+ a->arrayReserve(size);
+ for (int i = 0; i < size; i++)
+ a->arrayData[i].value = fromJsonValue(engine, array.at(i));
+ a->setArrayLengthUnchecked(size);
+ return Value::fromObject(a);
+}
+
+QJsonArray JsonObject::toJsonArray(ArrayObject *a, V4ObjectSet &visitedObjects)
+{
+ QJsonArray result;
+ if (!a)
+ return result;
+
+ if (visitedObjects.contains(a)) {
+ // Avoid recursion.
+ // For compatibility with QVariant{List,Map} conversion, we return an
+ // empty array (and no error is thrown).
+ return result;
+ }
+
+ visitedObjects.insert(a);
+
+ quint32 length = a->arrayLength();
+ for (quint32 i = 0; i < length; ++i) {
+ Value v = a->getIndexed(i);
+ result.append(toJsonValue(v, visitedObjects));
+ }
+
+ visitedObjects.remove(a);
+
+ return result;
+}
#define QV4SJONOBJECTS_H
#include "qv4object_p.h"
+#include <qjsonarray.h>
+#include <qjsonobject.h>
+#include <qjsonvalue.h>
QT_BEGIN_NAMESPACE
namespace QV4 {
struct JsonObject : Object {
+private:
+ typedef QSet<QV4::Object *> V4ObjectSet;
+public:
JsonObject(ExecutionContext *context);
static Value method_parse(SimpleCallContext *ctx);
static Value method_stringify(SimpleCallContext *ctx);
+ static QV4::Value fromJsonValue(ExecutionEngine *engine, const QJsonValue &value);
+ static QV4::Value fromJsonObject(ExecutionEngine *engine, const QJsonObject &object);
+ static QV4::Value fromJsonArray(ExecutionEngine *engine, const QJsonArray &array);
+
+ static inline QJsonValue toJsonValue(const QV4::Value &value)
+ { V4ObjectSet visitedObjects; return toJsonValue(value, visitedObjects); }
+ static inline QJsonObject toJsonObject(QV4::Object *o)
+ { V4ObjectSet visitedObjects; return toJsonObject(o, visitedObjects); }
+ static inline QJsonArray toJsonArray(QV4::ArrayObject *a)
+ { V4ObjectSet visitedObjects; return toJsonArray(a, visitedObjects); }
+
+private:
+ static QJsonValue toJsonValue(const QV4::Value &value, V4ObjectSet &visitedObjects);
+ static QJsonObject toJsonObject(QV4::Object *o, V4ObjectSet &visitedObjects);
+ static QJsonArray toJsonArray(QV4::ArrayObject *a, V4ObjectSet &visitedObjects);
};
}
struct FunctionObject;
struct ErrorObject;
struct ArgumentsObject;
-struct JSONObject;
struct Managed;
struct Value;
struct Lookup;
DateObject *asDateObject() { return type == Type_DateObject ? reinterpret_cast<DateObject *>(this) : 0; }
ErrorObject *asErrorObject() { return type == Type_ErrorObject ? reinterpret_cast<ErrorObject *>(this) : 0; }
ArgumentsObject *asArgumentsObject() { return type == Type_ArgumentsObject ? reinterpret_cast<ArgumentsObject *>(this) : 0; }
- JSONObject *asJSONObject() { return type == Type_JSONObject ? reinterpret_cast<JSONObject *>(this) : 0; }
-
bool isListType() const { return type == Type_QmlSequence; }
+++ /dev/null
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qv4jsonwrapper_p.h"
-#include "private/qv4engine_p.h"
-#include "private/qv4object_p.h"
-#include "private/qv4objectiterator_p.h"
-
-QT_BEGIN_NAMESPACE
-
-using namespace QV4;
-
-QV4JsonWrapper::QV4JsonWrapper()
-: m_engine(0)
-{
-}
-
-QV4JsonWrapper::~QV4JsonWrapper()
-{
-}
-
-void QV4JsonWrapper::init(QV4::ExecutionEngine *engine)
-{
- m_engine = engine;
-}
-
-void QV4JsonWrapper::destroy()
-{
-}
-
-QV4::Value QV4JsonWrapper::fromJsonValue(const QJsonValue &value)
-{
- if (value.isString())
- return Value::fromString(m_engine->current, value.toString());
- else if (value.isDouble())
- return Value::fromDouble(value.toDouble());
- else if (value.isBool())
- return Value::fromBoolean(value.toBool());
- else if (value.isArray())
- return fromJsonArray(value.toArray());
- else if (value.isObject())
- return fromJsonObject(value.toObject());
- else if (value.isNull())
- return Value::nullValue();
- else
- return Value::undefinedValue();
-}
-
-QJsonValue QV4JsonWrapper::toJsonValue(const QV4::Value &value,
- V4ObjectSet &visitedObjects)
-{
- if (String *s = value.asString())
- return QJsonValue(s->toQString());
- else if (value.isNumber())
- return QJsonValue(value.toNumber());
- else if (value.isBoolean())
- return QJsonValue((bool)value.booleanValue());
- else if (ArrayObject *a = value.asArrayObject())
- return toJsonArray(a, visitedObjects);
- else if (Object *o = value.asObject())
- return toJsonObject(o, visitedObjects);
- else if (value.isNull())
- return QJsonValue(QJsonValue::Null);
- else
- return QJsonValue(QJsonValue::Undefined);
-}
-
-QV4::Value QV4JsonWrapper::fromJsonObject(const QJsonObject &object)
-{
- Object *o = m_engine->newObject();
- for (QJsonObject::const_iterator it = object.begin(); it != object.end(); ++it)
- o->put(m_engine->current, m_engine->newString(it.key()), fromJsonValue(it.value()));
- return Value::fromObject(o);
-}
-
-QJsonObject QV4JsonWrapper::toJsonObject(QV4::Object *o, V4ObjectSet &visitedObjects)
-{
- QJsonObject result;
- if (!o || o->asFunctionObject())
- return result;
-
- if (visitedObjects.contains(o)) {
- // Avoid recursion.
- // For compatibility with QVariant{List,Map} conversion, we return an
- // empty object (and no error is thrown).
- return result;
- }
-
- visitedObjects.insert(o);
-
- ObjectIterator it(o, ObjectIterator::EnumerableOnly);
- while (1) {
- PropertyAttributes attributes;
- String *name;
- uint idx;
- Property *p = it.next(&name, &idx, &attributes);
- if (!p)
- break;
-
- Value v = o->getValue(m_engine->current, p, attributes);
- QString key = name ? name->toQString() : QString::number(idx);
- result.insert(key, toJsonValue(v, visitedObjects));
- }
-
- visitedObjects.remove(o);
-
- return result;
-}
-
-QV4::Value QV4JsonWrapper::fromJsonArray(const QJsonArray &array)
-{
- int size = array.size();
- ArrayObject *a = m_engine->newArrayObject();
- a->arrayReserve(size);
- for (int i = 0; i < size; i++)
- a->arrayData[i].value = fromJsonValue(array.at(i));
- a->setArrayLengthUnchecked(size);
- return Value::fromObject(a);
-}
-
-QJsonArray QV4JsonWrapper::toJsonArray(ArrayObject *a, V4ObjectSet &visitedObjects)
-{
- QJsonArray result;
- if (!a)
- return result;
-
- if (visitedObjects.contains(a)) {
- // Avoid recursion.
- // For compatibility with QVariant{List,Map} conversion, we return an
- // empty array (and no error is thrown).
- return result;
- }
-
- visitedObjects.insert(a);
-
- quint32 length = a->arrayLength();
- for (quint32 i = 0; i < length; ++i) {
- Value v = a->getIndexed(m_engine->current, i);
- result.append(toJsonValue(v, visitedObjects));
- }
-
- visitedObjects.remove(a);
-
- return result;
-}
-
-QT_END_NAMESPACE
+++ /dev/null
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QV8JSONWRAPPER_P_H
-#define QV8JSONWRAPPER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-#include <QtCore/qset.h>
-
-#include <QtCore/qjsonarray.h>
-#include <QtCore/qjsonobject.h>
-#include <QtCore/qjsonvalue.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace QV4 {
-struct Value;
-struct Object;
-struct ArrayObject;
-struct ExecutionEngine;
-}
-
-class QV4JsonWrapper
-{
- typedef QSet<QV4::Object *> V4ObjectSet;
-public:
- QV4JsonWrapper();
- ~QV4JsonWrapper();
-
- void init(QV4::ExecutionEngine *);
- void destroy();
-
- QV4::Value fromJsonValue(const QJsonValue &value);
- inline QJsonValue toJsonValue(const QV4::Value &value)
- { V4ObjectSet visitedObjects; return toJsonValue(value, visitedObjects); }
-
- QV4::Value fromJsonObject(const QJsonObject &object);
- inline QJsonObject toJsonObject(QV4::Object *o)
- { V4ObjectSet visitedObjects; return toJsonObject(o, visitedObjects); }
-
- QV4::Value fromJsonArray(const QJsonArray &array);
- inline QJsonArray toJsonArray(QV4::ArrayObject *a)
- { V4ObjectSet visitedObjects; return toJsonArray(a, visitedObjects); }
-
-private:
- QJsonValue toJsonValue(const QV4::Value &value, V4ObjectSet &visitedObjects);
- QJsonObject toJsonObject(QV4::Object *o, V4ObjectSet &visitedObjects);
- QJsonArray toJsonArray(QV4::ArrayObject *a, V4ObjectSet &visitedObjects);
-
- QV4::ExecutionEngine *m_engine;
-};
-
-QT_END_NAMESPACE
-
-#endif // QV8JSONWRAPPER_P_H
-
#include <private/qv4variantobject_p.h>
#include <private/qv4script_p.h>
#include <private/qv4include_p.h>
+#include <private/qv4jsonobject_p.h>
Q_DECLARE_METATYPE(QList<int>)
m_v4Engine->publicEngine = q;
m_qobjectWrapper.init(this);
- m_jsonWrapper.init(m_v4Engine);
-
}
QV8Engine::~QV8Engine()
delete m_listModelData;
m_listModelData = 0;
- m_jsonWrapper.destroy();
- m_qobjectWrapper.destroy();
-
v8::Isolate::SetEngine(0);
delete m_v4Engine;
}
return QVariant(value.toBoolean());
if (typeHint == QMetaType::QJsonValue)
- return QVariant::fromValue(jsonValueFromJS(value));
+ return QVariant::fromValue(QV4::JsonObject::toJsonValue(value));
if (typeHint == qMetaTypeId<QJSValue>())
return QVariant::fromValue(QJSValue(new QJSValuePrivate(m_v4Engine, value)));
}
} else if (typeHint == QMetaType::QJsonObject
&& !value.asArrayObject() && !value.asFunctionObject()) {
- return QVariant::fromValue(jsonObjectFromJS(value));
+ return QVariant::fromValue(QV4::JsonObject::toJsonObject(object));
} else if (QV4::QObjectWrapper *wrapper = object->as<QV4::QObjectWrapper>()) {
return qVariantFromValue<QObject *>(wrapper->object());
} else if (QV4::QmlContextWrapper *wrapper = object->as<QV4::QmlContextWrapper>()) {
return qVariantFromValue<QList<QObject*> >(list);
} else if (typeHint == QMetaType::QJsonArray) {
- return QVariant::fromValue(jsonArrayFromJS(value));
+ return QVariant::fromValue(QV4::JsonObject::toJsonArray(a));
}
bool succeeded = false;
case QMetaType::QVariantMap:
return objectFromVariantMap(this, *reinterpret_cast<const QVariantMap *>(ptr));
case QMetaType::QJsonValue:
- return jsonValueToJS(*reinterpret_cast<const QJsonValue *>(ptr));
+ return QV4::JsonObject::fromJsonValue(m_v4Engine, *reinterpret_cast<const QJsonValue *>(ptr));
case QMetaType::QJsonObject:
- return jsonObjectToJS(*reinterpret_cast<const QJsonObject *>(ptr));
+ return QV4::JsonObject::fromJsonObject(m_v4Engine, *reinterpret_cast<const QJsonObject *>(ptr));
case QMetaType::QJsonArray:
- return jsonArrayToJS(*reinterpret_cast<const QJsonArray *>(ptr));
+ return QV4::JsonObject::fromJsonArray(m_v4Engine, *reinterpret_cast<const QJsonArray *>(ptr));
default:
break;
result = variantToJS(*reinterpret_cast<const QVariant*>(data));
break;
case QMetaType::QJsonValue:
- result = m_jsonWrapper.fromJsonValue(*reinterpret_cast<const QJsonValue *>(data));
+ result = QV4::JsonObject::fromJsonValue(m_v4Engine, *reinterpret_cast<const QJsonValue *>(data));
break;
case QMetaType::QJsonObject:
- result = m_jsonWrapper.fromJsonObject(*reinterpret_cast<const QJsonObject *>(data));
+ result = QV4::JsonObject::fromJsonObject(m_v4Engine, *reinterpret_cast<const QJsonObject *>(data));
break;
case QMetaType::QJsonArray:
- result = m_jsonWrapper.fromJsonArray(*reinterpret_cast<const QJsonArray *>(data));
+ result = QV4::JsonObject::fromJsonArray(m_v4Engine, *reinterpret_cast<const QJsonArray *>(data));
break;
default:
if (type == qMetaTypeId<QJSValue>()) {
*reinterpret_cast<QVariant*>(data) = variantFromJS(value);
return true;
case QMetaType::QJsonValue:
- *reinterpret_cast<QJsonValue *>(data) = jsonValueFromJS(value);
+ *reinterpret_cast<QJsonValue *>(data) = QV4::JsonObject::toJsonValue(value);
return true;
case QMetaType::QJsonObject:
- *reinterpret_cast<QJsonObject *>(data) = jsonObjectFromJS(value);
+ *reinterpret_cast<QJsonObject *>(data) = QV4::JsonObject::toJsonObject(value.asObject());
return true;
case QMetaType::QJsonArray:
- *reinterpret_cast<QJsonArray *>(data) = jsonArrayFromJS(value);
+ *reinterpret_cast<QJsonArray *>(data) = QV4::JsonObject::toJsonArray(value.asArrayObject());
return true;
default:
;
return variantMapFromJS(value.asObject(), visitedObjects);
}
-QV4::Value QV8Engine::jsonValueToJS(const QJsonValue &value)
-{
- return m_jsonWrapper.fromJsonValue(value);
-}
-
-QJsonValue QV8Engine::jsonValueFromJS(const QV4::Value &value)
-{
- return m_jsonWrapper.toJsonValue(value);
-}
-
-QV4::Value QV8Engine::jsonObjectToJS(const QJsonObject &object)
-{
- return m_jsonWrapper.fromJsonObject(object);
-}
-
-QJsonObject QV8Engine::jsonObjectFromJS(const QV4::Value &value)
-{
- return m_jsonWrapper.toJsonObject(value.asObject());
-}
-
-QV4::Value QV8Engine::jsonArrayToJS(const QJsonArray &array)
-{
- return m_jsonWrapper.fromJsonArray(array);
-}
-
-QJsonArray QV8Engine::jsonArrayFromJS(const QV4::Value &value)
-{
- return m_jsonWrapper.toJsonArray(value.asArrayObject());
-}
bool QV8Engine::convertToNativeQObject(const QV4::Value &value, const QByteArray &targetType, void **result)
{
#include "qv8objectresource_p.h"
#include "qv8qobjectwrapper_p.h"
-#include "qv4jsonwrapper_p.h"
#include <private/qv4value_p.h>
#include <private/qv4object_p.h>
inline QVariant variantFromJS(const QV4::Value &value)
{ V8ObjectSet visitedObjects; return variantFromJS(value, visitedObjects); }
- QV4::Value jsonValueToJS(const QJsonValue &value);
- QJsonValue jsonValueFromJS(const QV4::Value &value);
- QV4::Value jsonObjectToJS(const QJsonObject &object);
- QJsonObject jsonObjectFromJS(const QV4::Value &value);
- QV4::Value jsonArrayToJS(const QJsonArray &array);
- QJsonArray jsonArrayFromJS(const QV4::Value &value);
-
QV4::Value metaTypeToJS(int type, const void *data);
bool metaTypeFromJS(const QV4::Value &value, int type, void *data);
QV4::ExecutionEngine *m_v4Engine;
QV8QObjectWrapper m_qobjectWrapper;
- QV4JsonWrapper m_jsonWrapper;
QV4::PersistentValue m_freezeObject;
#include <private/qv4variantobject_p.h>
#include <private/qv4sequenceobject_p.h>
#include <private/qv4objectproto_p.h>
+#include <private/qv4jsonobject_p.h>
#include <QtQml/qjsvalue.h>
#include <QtCore/qjsonarray.h>
handlePtr = new (&allocData) QQmlV4Handle(QQmlV4Handle(value));
type = callType;
} else if (callType == QMetaType::QJsonArray) {
- jsonArrayPtr = new (&allocData) QJsonArray(engine->jsonArrayFromJS(value));
+ jsonArrayPtr = new (&allocData) QJsonArray(QV4::JsonObject::toJsonArray(value.asArrayObject()));
type = callType;
} else if (callType == QMetaType::QJsonObject) {
- jsonObjectPtr = new (&allocData) QJsonObject(engine->jsonObjectFromJS(value));
+ jsonObjectPtr = new (&allocData) QJsonObject(QV4::JsonObject::toJsonObject(value.asObject()));
type = callType;
} else if (callType == QMetaType::QJsonValue) {
- jsonValuePtr = new (&allocData) QJsonValue(engine->jsonValueFromJS(value));
+ jsonValuePtr = new (&allocData) QJsonValue(QV4::JsonObject::toJsonValue(value));
type = callType;
} else if (callType == QMetaType::Void) {
*qvariantPtr = QVariant();
} else if (type == qMetaTypeId<QQmlV4Handle>()) {
return handlePtr->toValue();
} else if (type == QMetaType::QJsonArray) {
- return engine->jsonArrayToJS(*jsonArrayPtr);
+ return QV4::JsonObject::fromJsonArray(QV8Engine::getV4(engine), *jsonArrayPtr);
} else if (type == QMetaType::QJsonObject) {
- return engine->jsonObjectToJS(*jsonObjectPtr);
+ return QV4::JsonObject::fromJsonObject(QV8Engine::getV4(engine), *jsonObjectPtr);
} else if (type == QMetaType::QJsonValue) {
- return engine->jsonValueToJS(*jsonValuePtr);
+ return QV4::JsonObject::fromJsonValue(QV8Engine::getV4(engine), *jsonValuePtr);
} else if (type == -1 || type == qMetaTypeId<QVariant>()) {
QVariant value = *qvariantPtr;
QV4::Value rv = engine->fromVariant(value);
$$PWD/qv8profiler_p.h \
$$PWD/qv8engine_p.h \
$$PWD/qv8qobjectwrapper_p.h \
- $$PWD/qv4jsonwrapper_p.h \
$$PWD/qv4domerrors_p.h \
$$PWD/qv4sqlerrors_p.h \
$$PWD/qqmlbuiltinfunctions_p.h \
SOURCES += \
$$PWD/qv8engine.cpp \
$$PWD/qv8qobjectwrapper.cpp \
- $$PWD/qv4jsonwrapper.cpp \
$$PWD/qv4domerrors.cpp \
$$PWD/qv4sqlerrors.cpp \
$$PWD/qqmlbuiltinfunctions.cpp