From 4322c8d7686c7cbbdf348146d32d705007b21d56 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 21 Nov 2014 13:18:23 +0100 Subject: Better encapsulate access to the global object Change-Id: I8a76112d821cb3fc172ba0d16ee8410d39b4422a Reviewed-by: Simon Hausmann --- src/qml/jsapi/qjsengine.cpp | 4 +- src/qml/jsapi/qjsvalue.cpp | 2 +- src/qml/jsruntime/qv4context.cpp | 6 +-- src/qml/jsruntime/qv4engine.cpp | 89 ++++++++++++++++---------------- src/qml/jsruntime/qv4engine_p.h | 3 +- src/qml/jsruntime/qv4include.cpp | 2 +- src/qml/jsruntime/qv4lookup.cpp | 14 ++--- src/qml/jsruntime/qv4objectproto.cpp | 4 +- src/qml/jsruntime/qv4qobjectwrapper.cpp | 2 +- src/qml/jsruntime/qv4runtime.cpp | 2 +- src/qml/jsruntime/qv4sequenceobject.cpp | 2 +- src/qml/qml/qqmlcomponent.cpp | 6 +-- src/qml/qml/qqmlcontextwrapper.cpp | 2 +- src/qml/qml/qqmljavascriptexpression.cpp | 2 +- src/qml/qml/qqmlxmlhttprequest.cpp | 2 +- src/qml/qml/v8/qv4domerrors.cpp | 2 +- src/qml/qml/v8/qv4sqlerrors.cpp | 2 +- src/qml/qml/v8/qv8engine.cpp | 14 ++--- 18 files changed, 80 insertions(+), 80 deletions(-) (limited to 'src') diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index ccf4c47eac..bd78b7d051 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -254,7 +254,7 @@ void QJSEngine::installTranslatorFunctions(const QJSValue &object) QJSValuePrivate *vp = QJSValuePrivate::get(object); QV4::ScopedObject obj(scope, vp->getValue(v4)); if (!obj) - obj = v4->globalObject; + obj = v4->globalObject(); #ifndef QT_NO_TRANSLATION obj->defineDefaultProperty(QStringLiteral("qsTranslate"), QV4::GlobalExtensions::method_qsTranslate); obj->defineDefaultProperty(QStringLiteral("QT_TRANSLATE_NOOP"), QV4::GlobalExtensions::method_qsTranslateNoOp); @@ -397,7 +397,7 @@ QJSValue QJSEngine::globalObject() const { Q_D(const QJSEngine); QV4::Scope scope(d->m_v4Engine); - QV4::ScopedValue v(scope, d->m_v4Engine->globalObject); + QV4::ScopedValue v(scope, d->m_v4Engine->globalObject()); return new QJSValuePrivate(d->m_v4Engine, v); } diff --git a/src/qml/jsapi/qjsvalue.cpp b/src/qml/jsapi/qjsvalue.cpp index 9089fffc74..fd7aeed1cd 100644 --- a/src/qml/jsapi/qjsvalue.cpp +++ b/src/qml/jsapi/qjsvalue.cpp @@ -545,7 +545,7 @@ QJSValue QJSValue::call(const QJSValueList &args) Scope scope(engine); ScopedCallData callData(scope, args.length()); - callData->thisObject = engine->globalObject->asReturnedValue(); + callData->thisObject = engine->globalObject()->asReturnedValue(); for (int i = 0; i < args.size(); ++i) { if (!args.at(i).d->checkEngine(engine)) { qWarning("QJSValue::call() failed: cannot call function with argument created in a different engine"); diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 957c099c3c..8b510fd1fc 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -106,7 +106,7 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) Scope scope(this); // find the right context to create the binding on - ScopedObject activation(scope, d()->engine->globalObject); + ScopedObject activation(scope, d()->engine->globalObject()); Scoped ctx(scope, this); while (ctx) { if (ctx->d()->type >= Heap::ExecutionContext::Type_CallContext) { @@ -131,7 +131,7 @@ void ExecutionContext::createMutableBinding(String *name, bool deletable) Heap::GlobalContext::GlobalContext(ExecutionEngine *eng) : Heap::ExecutionContext(eng, Heap::ExecutionContext::Type_GlobalContext) { - global = eng->globalObject->d(); + global = eng->globalObject()->d(); } Heap::WithContext::WithContext(ExecutionEngine *engine, QV4::Object *with) @@ -334,7 +334,7 @@ void ExecutionContext::setProperty(String *name, const ValueRef value) engine()->throwReferenceError(n); return; } - d()->engine->globalObject->put(name, value); + d()->engine->globalObject()->put(name, value); } ReturnedValue ExecutionContext::getProperty(String *name) diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index a2fd33bc3c..ddee344114 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -167,7 +167,6 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) , jsStack(new WTF::PageAllocation) , debugger(0) , profiler(0) - , globalObject(0) , globalCode(0) , v8Engine(0) , argumentsAccessors(0) @@ -283,8 +282,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) Q_ASSERT(argumentsObjectClass->vtable == ArgumentsObject::staticVTable()); Q_ASSERT(strictArgumentsObjectClass->vtable == ArgumentsObject::staticVTable()); - ScopedObject global(scope, newObject()); - globalObject = global; + m_globalObject = ScopedObject(scope, newObject()).getPointer(); + Q_ASSERT(globalObject()->internalClass()->vtable); initRootContext(); ScopedObject stringPrototype(scope, memoryManager->alloc(InternalClass::create(this, StringPrototype::staticVTable(), objectPrototype))); @@ -397,53 +396,53 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) // // set up the global object // - rootContext()->d()->global = globalObject->d(); - rootContext()->d()->callData->thisObject = globalObject; - Q_ASSERT(globalObject->internalClass()->vtable); - - globalObject->defineDefaultProperty(QStringLiteral("Object"), objectCtor); - globalObject->defineDefaultProperty(QStringLiteral("String"), stringCtor); - globalObject->defineDefaultProperty(QStringLiteral("Number"), numberCtor); - globalObject->defineDefaultProperty(QStringLiteral("Boolean"), booleanCtor); - globalObject->defineDefaultProperty(QStringLiteral("Array"), arrayCtor); - globalObject->defineDefaultProperty(QStringLiteral("Function"), functionCtor); - globalObject->defineDefaultProperty(QStringLiteral("Date"), dateCtor); - globalObject->defineDefaultProperty(QStringLiteral("RegExp"), regExpCtor); - globalObject->defineDefaultProperty(QStringLiteral("Error"), errorCtor); - globalObject->defineDefaultProperty(QStringLiteral("EvalError"), evalErrorCtor); - globalObject->defineDefaultProperty(QStringLiteral("RangeError"), rangeErrorCtor); - globalObject->defineDefaultProperty(QStringLiteral("ReferenceError"), referenceErrorCtor); - globalObject->defineDefaultProperty(QStringLiteral("SyntaxError"), syntaxErrorCtor); - globalObject->defineDefaultProperty(QStringLiteral("TypeError"), typeErrorCtor); - globalObject->defineDefaultProperty(QStringLiteral("URIError"), uRIErrorCtor); - - globalObject->defineDefaultProperty(QStringLiteral("ArrayBuffer"), arrayBufferCtor); - globalObject->defineDefaultProperty(QStringLiteral("DataView"), dataViewCtor); + rootContext()->d()->global = globalObject()->d(); + rootContext()->d()->callData->thisObject = globalObject(); + Q_ASSERT(globalObject()->internalClass()->vtable); + + globalObject()->defineDefaultProperty(QStringLiteral("Object"), objectCtor); + globalObject()->defineDefaultProperty(QStringLiteral("String"), stringCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Number"), numberCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Boolean"), booleanCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Array"), arrayCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Function"), functionCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Date"), dateCtor); + globalObject()->defineDefaultProperty(QStringLiteral("RegExp"), regExpCtor); + globalObject()->defineDefaultProperty(QStringLiteral("Error"), errorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("EvalError"), evalErrorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("RangeError"), rangeErrorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("ReferenceError"), referenceErrorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("SyntaxError"), syntaxErrorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("TypeError"), typeErrorCtor); + globalObject()->defineDefaultProperty(QStringLiteral("URIError"), uRIErrorCtor); + + globalObject()->defineDefaultProperty(QStringLiteral("ArrayBuffer"), arrayBufferCtor); + globalObject()->defineDefaultProperty(QStringLiteral("DataView"), dataViewCtor); ScopedString str(scope); for (int i = 0; i < Heap::TypedArray::NTypes; ++i) - globalObject->defineDefaultProperty((str = typedArrayCtors[i].asFunctionObject()->name())->toQString(), typedArrayCtors[i]); + globalObject()->defineDefaultProperty((str = typedArrayCtors[i].asFunctionObject()->name())->toQString(), typedArrayCtors[i]); ScopedObject o(scope); - globalObject->defineDefaultProperty(QStringLiteral("Math"), (o = memoryManager->alloc(QV4::InternalClass::create(this, MathObject::staticVTable(), objectPrototype)))); - globalObject->defineDefaultProperty(QStringLiteral("JSON"), (o = memoryManager->alloc(QV4::InternalClass::create(this, JsonObject::staticVTable(), objectPrototype)))); + globalObject()->defineDefaultProperty(QStringLiteral("Math"), (o = memoryManager->alloc(QV4::InternalClass::create(this, MathObject::staticVTable(), objectPrototype)))); + globalObject()->defineDefaultProperty(QStringLiteral("JSON"), (o = memoryManager->alloc(QV4::InternalClass::create(this, JsonObject::staticVTable(), objectPrototype)))); - globalObject->defineReadonlyProperty(QStringLiteral("undefined"), Primitive::undefinedValue()); - globalObject->defineReadonlyProperty(QStringLiteral("NaN"), Primitive::fromDouble(std::numeric_limits::quiet_NaN())); - globalObject->defineReadonlyProperty(QStringLiteral("Infinity"), Primitive::fromDouble(Q_INFINITY)); + globalObject()->defineReadonlyProperty(QStringLiteral("undefined"), Primitive::undefinedValue()); + globalObject()->defineReadonlyProperty(QStringLiteral("NaN"), Primitive::fromDouble(std::numeric_limits::quiet_NaN())); + globalObject()->defineReadonlyProperty(QStringLiteral("Infinity"), Primitive::fromDouble(Q_INFINITY)); evalFunction = Scoped(scope, memoryManager->alloc(rootContext())); - globalObject->defineDefaultProperty(QStringLiteral("eval"), (o = evalFunction)); - - globalObject->defineDefaultProperty(QStringLiteral("parseInt"), GlobalFunctions::method_parseInt, 2); - globalObject->defineDefaultProperty(QStringLiteral("parseFloat"), GlobalFunctions::method_parseFloat, 1); - globalObject->defineDefaultProperty(QStringLiteral("isNaN"), GlobalFunctions::method_isNaN, 1); - globalObject->defineDefaultProperty(QStringLiteral("isFinite"), GlobalFunctions::method_isFinite, 1); - globalObject->defineDefaultProperty(QStringLiteral("decodeURI"), GlobalFunctions::method_decodeURI, 1); - globalObject->defineDefaultProperty(QStringLiteral("decodeURIComponent"), GlobalFunctions::method_decodeURIComponent, 1); - globalObject->defineDefaultProperty(QStringLiteral("encodeURI"), GlobalFunctions::method_encodeURI, 1); - globalObject->defineDefaultProperty(QStringLiteral("encodeURIComponent"), GlobalFunctions::method_encodeURIComponent, 1); - globalObject->defineDefaultProperty(QStringLiteral("escape"), GlobalFunctions::method_escape, 1); - globalObject->defineDefaultProperty(QStringLiteral("unescape"), GlobalFunctions::method_unescape, 1); + globalObject()->defineDefaultProperty(QStringLiteral("eval"), (o = evalFunction)); + + globalObject()->defineDefaultProperty(QStringLiteral("parseInt"), GlobalFunctions::method_parseInt, 2); + globalObject()->defineDefaultProperty(QStringLiteral("parseFloat"), GlobalFunctions::method_parseFloat, 1); + globalObject()->defineDefaultProperty(QStringLiteral("isNaN"), GlobalFunctions::method_isNaN, 1); + globalObject()->defineDefaultProperty(QStringLiteral("isFinite"), GlobalFunctions::method_isFinite, 1); + globalObject()->defineDefaultProperty(QStringLiteral("decodeURI"), GlobalFunctions::method_decodeURI, 1); + globalObject()->defineDefaultProperty(QStringLiteral("decodeURIComponent"), GlobalFunctions::method_decodeURIComponent, 1); + globalObject()->defineDefaultProperty(QStringLiteral("encodeURI"), GlobalFunctions::method_encodeURI, 1); + globalObject()->defineDefaultProperty(QStringLiteral("encodeURIComponent"), GlobalFunctions::method_encodeURIComponent, 1); + globalObject()->defineDefaultProperty(QStringLiteral("escape"), GlobalFunctions::method_escape, 1); + globalObject()->defineDefaultProperty(QStringLiteral("unescape"), GlobalFunctions::method_unescape, 1); Scoped name(scope, newString(QStringLiteral("thrower"))); thrower = ScopedFunctionObject(scope, BuiltinFunction::create(rootContext(), name.getPointer(), ::throwTypeError)).getPointer(); @@ -498,7 +497,7 @@ void ExecutionEngine::initRootContext() r->d()->callData = reinterpret_cast(r->d() + 1); r->d()->callData->tag = QV4::Value::_Integer_Type; r->d()->callData->argc = 0; - r->d()->callData->thisObject = globalObject; + r->d()->callData->thisObject = globalObject(); r->d()->callData->args[0] = Encode::undefined(); m_rootContext = r; @@ -876,7 +875,7 @@ void ExecutionEngine::markObjects() { identifierTable->mark(this); - globalObject->mark(this); + globalObject()->mark(this); for (int i = 0; i < nArgumentsAccessors; ++i) { const Property &pd = argumentsAccessors[i]; diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 57fe7eb9bf..ad9fde3d86 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -119,7 +119,8 @@ public: QV4::Debugging::Debugger *debugger; QV4::Profiling::Profiler *profiler; - Object *globalObject; + Object *m_globalObject; + Object *globalObject() { return m_globalObject; } Function *globalCode; diff --git a/src/qml/jsruntime/qv4include.cpp b/src/qml/jsruntime/qv4include.cpp index 67282f25ac..bf2662dd34 100644 --- a/src/qml/jsruntime/qv4include.cpp +++ b/src/qml/jsruntime/qv4include.cpp @@ -101,7 +101,7 @@ void QV4Include::callback(const QV4::ValueRef callback, const QV4::ValueRef stat return; QV4::ScopedCallData callData(scope, 1); - callData->thisObject = v4->globalObject->asReturnedValue(); + callData->thisObject = v4->globalObject()->asReturnedValue(); callData->args[0] = status; f->call(callData); if (scope.hasException()) diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index b93230606f..e6f997d5df 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -578,7 +578,7 @@ ReturnedValue Lookup::arrayLengthGetter(Lookup *l, ExecutionEngine *engine, cons ReturnedValue Lookup::globalGetterGeneric(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); PropertyAttributes attrs; ReturnedValue v = l->lookup(o, &attrs); if (v != Primitive::emptyValue().asReturnedValue()) { @@ -607,7 +607,7 @@ ReturnedValue Lookup::globalGetterGeneric(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetter0(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass()) return o->memberData()->data[l->index].asReturnedValue(); @@ -617,7 +617,7 @@ ReturnedValue Lookup::globalGetter0(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetter1(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass() && l->classList[1] == o->prototype()->internalClass()) return o->prototype()->memberData()->data[l->index].asReturnedValue(); @@ -628,7 +628,7 @@ ReturnedValue Lookup::globalGetter1(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetter2(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass()) { o = o->prototype(); if (l->classList[1] == o->internalClass()) { @@ -644,7 +644,7 @@ ReturnedValue Lookup::globalGetter2(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetterAccessor0(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass()) { Scope scope(o->engine()); FunctionObject *getter = o->propertyAt(l->index)->getter(); @@ -661,7 +661,7 @@ ReturnedValue Lookup::globalGetterAccessor0(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetterAccessor1(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass() && l->classList[1] == o->prototype()->internalClass()) { Scope scope(o->engine()); @@ -679,7 +679,7 @@ ReturnedValue Lookup::globalGetterAccessor1(Lookup *l, ExecutionEngine *engine) ReturnedValue Lookup::globalGetterAccessor2(Lookup *l, ExecutionEngine *engine) { - Object *o = engine->globalObject; + Object *o = engine->globalObject(); if (l->classList[0] == o->internalClass()) { o = o->prototype(); if (l->classList[1] == o->internalClass()) { diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index 962d9bbee5..090bc32c93 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -489,7 +489,7 @@ ReturnedValue ObjectPrototype::method_defineGetter(CallContext *ctx) if (!o) { if (!ctx->d()->callData->thisObject.isUndefined()) return Encode::undefined(); - o = ctx->d()->engine->globalObject; + o = ctx->d()->engine->globalObject(); } Property pd; @@ -517,7 +517,7 @@ ReturnedValue ObjectPrototype::method_defineSetter(CallContext *ctx) if (!o) { if (!ctx->d()->callData->thisObject.isUndefined()) return Encode::undefined(); - o = ctx->d()->engine->globalObject; + o = ctx->d()->engine->globalObject(); } Property pd; diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index 9b08e89ffb..3744d5617c 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -796,7 +796,7 @@ struct QObjectSlotDispatcher : public QtPrivate::QSlotObjectBase QV4::ScopedFunctionObject f(scope, This->function.value()); QV4::ScopedCallData callData(scope, argCount); - callData->thisObject = This->thisObject.isUndefined() ? v4->globalObject->asReturnedValue() : This->thisObject.value(); + callData->thisObject = This->thisObject.isUndefined() ? v4->globalObject()->asReturnedValue() : This->thisObject.value(); for (int ii = 0; ii < argCount; ++ii) { int type = argsTypes[ii + 1]; if (type == qMetaTypeId()) { diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 8436b8d828..147e81b627 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -1408,7 +1408,7 @@ void Runtime::convertThisToObject(ExecutionEngine *engine) if (t->isObject()) return; if (t->isNullOrUndefined()) { - *t = engine->globalObject->asReturnedValue(); + *t = engine->globalObject()->asReturnedValue(); } else { *t = t->toObject(engine)->asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 738de8b03d..20dad8a6d6 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -356,7 +356,7 @@ public: ScopedCallData callData(scope, 2); callData->args[0] = convertElementToValue(this->m_ctx->d()->engine, lhs); callData->args[1] = convertElementToValue(this->m_ctx->d()->engine, rhs); - callData->thisObject = this->m_ctx->d()->engine->globalObject; + callData->thisObject = this->m_ctx->d()->engine->globalObject(); QV4::ScopedValue result(scope, compare->call(callData)); return result->toNumber() < 0; } diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index b4461e32fa..395d33f3c1 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1245,7 +1245,7 @@ void QQmlComponent::createObject(QQmlV4Function *args) QV4::ScopedValue f(scope, QV4::Script::evaluate(v4, QString::fromLatin1(INITIALPROPERTIES_SOURCE), qmlglobal)); Q_ASSERT(f->asFunctionObject()); QV4::ScopedCallData callData(scope, 2); - callData->thisObject = v4->globalObject; + callData->thisObject = v4->globalObject(); callData->args[0] = object; callData->args[1] = valuemap; f->asFunctionObject()->call(callData); @@ -1399,7 +1399,7 @@ void QQmlComponentPrivate::initializeObjectWithInitialProperties(const QV4::Valu QV4::Scoped f(scope, QV4::Script::evaluate(QV8Engine::getV4(v8engine), QString::fromLatin1(INITIALPROPERTIES_SOURCE), qmlGlobalObj)); QV4::ScopedCallData callData(scope, 2); - callData->thisObject = v4engine->globalObject; + callData->thisObject = v4engine->globalObject(); callData->args[0] = object; callData->args[1] = valuemap; f->call(callData); @@ -1500,7 +1500,7 @@ void QV4::QmlIncubatorObject::setInitialState(QObject *o) QV4::Scoped f(scope, QV4::Script::evaluate(v4, QString::fromLatin1(INITIALPROPERTIES_SOURCE), d()->qmlGlobal.asObject())); QV4::ScopedCallData callData(scope, 2); - callData->thisObject = v4->globalObject; + callData->thisObject = v4->globalObject(); callData->args[0] = QV4::QObjectWrapper::wrap(v4, o); callData->args[1] = d()->valuemap; f->call(callData); diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp index 51e72223d0..0ce141cde8 100644 --- a/src/qml/qml/qqmlcontextwrapper.cpp +++ b/src/qml/qml/qqmlcontextwrapper.cpp @@ -136,7 +136,7 @@ ReturnedValue QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty // In V8 the JS global object would come _before_ the QML global object, // so simulate that here. bool hasProp; - QV4::ScopedValue result(scope, v4->globalObject->get(name, &hasProp)); + QV4::ScopedValue result(scope, v4->globalObject()->get(name, &hasProp)); if (hasProp) { if (hasProperty) *hasProperty = hasProp; diff --git a/src/qml/qml/qqmljavascriptexpression.cpp b/src/qml/qml/qqmljavascriptexpression.cpp index 6a3e0d4a73..dad90b77f2 100644 --- a/src/qml/qml/qqmljavascriptexpression.cpp +++ b/src/qml/qml/qqmljavascriptexpression.cpp @@ -147,7 +147,7 @@ QV4::ReturnedValue QQmlJavaScriptExpression::evaluate(QQmlContextData *context, QV4::ExecutionEngine *v4 = QV8Engine::getV4(ep->v8engine()); QV4::Scope scope(v4); QV4::ScopedValue result(scope, QV4::Primitive::undefinedValue()); - callData->thisObject = v4->globalObject; + callData->thisObject = v4->globalObject(); if (scopeObject()) { QV4::ScopedValue value(scope, QV4::QObjectWrapper::wrap(v4, scopeObject())); if (value->isObject()) diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index e8cc7e65b7..4b26778008 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -2001,7 +2001,7 @@ void *qt_add_qmlxmlhttprequest(QV8Engine *engine) Scoped ctor(scope, v4->memoryManager->alloc(v4)); ScopedString s(scope, v4->newString(QStringLiteral("XMLHttpRequest"))); - v4->globalObject->defineReadonlyProperty(s.getPointer(), ctor); + v4->globalObject()->defineReadonlyProperty(s.getPointer(), ctor); QQmlXMLHttpRequestData *data = new QQmlXMLHttpRequestData; return data; diff --git a/src/qml/qml/v8/qv4domerrors.cpp b/src/qml/qml/v8/qv4domerrors.cpp index cc7a6546f9..c0ea03f83f 100644 --- a/src/qml/qml/v8/qv4domerrors.cpp +++ b/src/qml/qml/v8/qv4domerrors.cpp @@ -59,7 +59,7 @@ void qt_add_domexceptions(ExecutionEngine *e) domexception->defineReadonlyProperty(QStringLiteral("INVALID_ACCESS_ERR"), Primitive::fromInt32(DOMEXCEPTION_INVALID_ACCESS_ERR)); domexception->defineReadonlyProperty(QStringLiteral("VALIDATION_ERR"), Primitive::fromInt32(DOMEXCEPTION_VALIDATION_ERR)); domexception->defineReadonlyProperty(QStringLiteral("TYPE_MISMATCH_ERR"), Primitive::fromInt32(DOMEXCEPTION_TYPE_MISMATCH_ERR)); - e->globalObject->defineDefaultProperty(QStringLiteral("DOMException"), domexception); + e->globalObject()->defineDefaultProperty(QStringLiteral("DOMException"), domexception); } QT_END_NAMESPACE diff --git a/src/qml/qml/v8/qv4sqlerrors.cpp b/src/qml/qml/v8/qv4sqlerrors.cpp index e8e0462b6e..77e2257b3e 100644 --- a/src/qml/qml/v8/qv4sqlerrors.cpp +++ b/src/qml/qml/v8/qv4sqlerrors.cpp @@ -51,7 +51,7 @@ void qt_add_sqlexceptions(QV4::ExecutionEngine *engine) sqlexception->defineReadonlyProperty(QStringLiteral("SYNTAX_ERR"), Primitive::fromInt32(SQLEXCEPTION_SYNTAX_ERR)); sqlexception->defineReadonlyProperty(QStringLiteral("CONSTRAINT_ERR"), Primitive::fromInt32(SQLEXCEPTION_CONSTRAINT_ERR)); sqlexception->defineReadonlyProperty(QStringLiteral("TIMEOUT_ERR"), Primitive::fromInt32(SQLEXCEPTION_TIMEOUT_ERR)); - engine->globalObject->defineDefaultProperty(QStringLiteral("SQLException"), sqlexception); + engine->globalObject()->defineDefaultProperty(QStringLiteral("SQLException"), sqlexception); } QT_END_NAMESPACE diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index e08f2c494f..80ef41acca 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -482,7 +482,7 @@ QQmlContextData *QV8Engine::callingContext() void QV8Engine::initializeGlobal() { QV4::Scope scope(m_v4Engine); - QV4::GlobalExtensions::init(m_engine, m_v4Engine->globalObject); + QV4::GlobalExtensions::init(m_engine, m_v4Engine->globalObject()); QQmlLocale::registerStringLocaleCompare(m_v4Engine); QQmlDateExtension::registerExtension(m_v4Engine); @@ -494,9 +494,9 @@ void QV8Engine::initializeGlobal() qt_add_sqlexceptions(m_v4Engine); { - for (uint i = 0; i < m_v4Engine->globalObject->internalClass()->size; ++i) { - if (m_v4Engine->globalObject->internalClass()->nameMap.at(i)) - m_illegalNames.insert(m_v4Engine->globalObject->internalClass()->nameMap.at(i)->string); + for (uint i = 0; i < m_v4Engine->globalObject()->internalClass()->size; ++i) { + if (m_v4Engine->globalObject()->internalClass()->nameMap.at(i)) + m_illegalNames.insert(m_v4Engine->globalObject()->internalClass()->nameMap.at(i)->string); } } @@ -532,7 +532,7 @@ void QV8Engine::freezeObject(const QV4::ValueRef value) QV4::ScopedFunctionObject f(scope, m_freezeObject.value()); QV4::ScopedCallData callData(scope, 1); callData->args[0] = value; - callData->thisObject = m_v4Engine->globalObject; + callData->thisObject = m_v4Engine->globalObject(); f->call(callData); } @@ -570,7 +570,7 @@ void QV8Engine::initQmlGlobalObject() { initializeGlobal(); QV4::Scope scope(m_v4Engine); - QV4::ScopedValue v(scope, m_v4Engine->globalObject); + QV4::ScopedValue v(scope, m_v4Engine->globalObject()); freezeObject(v); } @@ -582,7 +582,7 @@ void QV8Engine::setEngine(QQmlEngine *engine) QV4::ReturnedValue QV8Engine::global() { - return m_v4Engine->globalObject->asReturnedValue(); + return m_v4Engine->globalObject()->asReturnedValue(); } // Converts a QVariantList to JS. -- cgit v1.2.3