if (d->value.isEmpty())
return d->unboundData;
- if (d->value.asObject())
- return d->value.engine()->toVariant(d->value, /*typeHint*/ -1, /*createJSValueForObjects*/ false);
+ if (Object *o = d->value.asObject())
+ return o->engine()->toVariant(d->value, /*typeHint*/ -1, /*createJSValueForObjects*/ false);
if (d->value.isString())
return QVariant(d->value.stringValue()->toQString());
void QV4Include::callback(const QV4::ValueRef callback, const QV4::ValueRef status)
{
- QV4::ExecutionEngine *v4 = callback->engine();
- if (!v4)
+ if (!callback->isObject())
return;
+ QV4::ExecutionEngine *v4 = callback->asObject()->engine();
QV4::Scope scope(v4);
QV4::ScopedFunctionObject f(scope, callback);
if (!f)
return QJsonValue(QJsonValue::Null);
else if (value->isUndefined())
return QJsonValue(QJsonValue::Undefined);
+ else if (value->isString())
+ return QJsonValue(value->toQString());
- Q_ASSERT(value->engine());
- Scope scope(value->engine());
+ Q_ASSERT(value->isObject());
+ Scope scope(value->asObject()->engine());
ScopedArrayObject a(scope, value);
if (a)
return toJsonArray(a, visitedObjects);
#endif
if (object->as<ArgumentsObject>()) {
- Scope scope(object->engine());
+ Scope scope(engine);
Scoped<ArgumentsObject> (scope, object->asReturnedValue())->fullyCreate();
}
}
PropertyAttributes attrs;
uint index;
- Scope scope(object->engine());
+ Scope scope(engine);
ScopedProperty p(scope);
ScopedString name(scope);
next(name.getRef(), &index, p, &attrs);
PropertyAttributes attrs;
uint index;
- Scope scope(object->engine());
+ Scope scope(engine);
ScopedProperty p(scope);
ScopedString name(scope);
next(name.getRef(), &index, p, &attrs);
if (!!name)
return name->asReturnedValue();
assert(index < UINT_MAX);
- return Encode(object->engine()->newString(QString::number(index)));
+ return Encode(engine->newString(QString::number(index)));
}
ReturnedValue ObjectIterator::nextPropertyNameAsString()
PropertyAttributes attrs;
uint index;
- Scope scope(object->engine());
+ Scope scope(engine);
ScopedProperty p(scope);
ScopedString name(scope);
next(name.getRef(), &index, p, &attrs);
if (!!name)
return name->asReturnedValue();
Q_ASSERT(index < UINT_MAX);
- return Encode(object->engine()->newString(QString::number(index)));
+ return Encode(engine->newString(QString::number(index)));
}
static QPair<QObject *, int> extractQtSignal(const ValueRef value)
{
- QV4::ExecutionEngine *v4 = value->engine();
- if (v4) {
+ if (value->isObject()) {
+ QV4::ExecutionEngine *v4 = value->asObject()->engine();
QV4::Scope scope(v4);
QV4::ScopedFunctionObject function(scope, value);
if (function)
*succeeded = false;
return QVariant();
}
- QV4::Scope scope(array->engine());
+ QV4::Scope scope(array->asObject()->engine());
QV4::ScopedArrayObject a(scope, array);
FOREACH_QML_SEQUENCE_TYPE(SEQUENCE_TO_VARIANT) { /* else */ *succeeded = false; return QVariant(); }
return 0;
}
-inline ExecutionEngine *Value::engine() const
-{
- Managed *m = asManaged();
- return m ? m->engine() : 0;
-}
-
inline void Value::mark(ExecutionEngine *e) const
{
if (!val)
inline uint asArrayIndex() const;
inline uint asArrayLength(bool *ok) const;
- inline ExecutionEngine *engine() const;
-
ReturnedValue asReturnedValue() const { return val; }
static Value fromReturnedValue(ReturnedValue val) { Value v; v.val = val; return v; }
QQmlContextData *QmlContextWrapper::getContext(const ValueRef value)
{
- QV4::ExecutionEngine *v4 = value->engine();
- if (!v4)
+ if (!value->isObject())
return 0;
+ QV4::ExecutionEngine *v4 = value->asObject()->engine();
Scope scope(v4);
QV4::Scoped<QmlContextWrapper> c(scope, value);
void QmlContextWrapper::takeContextOwnership(const ValueRef qmlglobal)
{
- QV4::ExecutionEngine *v4 = qmlglobal->engine();
- Q_ASSERT(v4);
+ Q_ASSERT(qmlglobal->isObject());
+ QV4::ExecutionEngine *v4 = qmlglobal->asObject()->engine();
Scope scope(v4);
QV4::Scoped<QmlContextWrapper> c(scope, qmlglobal);
Q_ASSERT(c);
QQmlDelegateModelItem *cacheItem = m_adaptorModel.createItem(m_cacheMetaType, m_context->engine(), -1);
if (!cacheItem)
return false;
- QV4::ExecutionEngine *v4 = object->engine();
- if (!v4)
+ if (!object->isObject())
return false;
+ QV4::ExecutionEngine *v4 = object->asObject()->engine();
QV4::Scope scope(v4);
QV4::ScopedObject o(scope, object);
if (!o)
return true;
}
- QV4::ExecutionEngine *v4 = value->engine();
- if (!v4)
+ if (!value->isObject())
return false;
+ QV4::ExecutionEngine *v4 = value->asObject()->engine();
QV4::Scope scope(v4);
QV4::Scoped<QQmlDelegateModelItemObject> object(scope, value);