From d412840ec6b2e29053d6dc09a6066188c7d27477 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 31 May 2013 14:02:15 +0200 Subject: [PATCH] Convert more subclasses of Managed to the new casting scheme Change-Id: I4105f61d8b1d32b59281eb28fc31002a0ac4e4eb Reviewed-by: Simon Hausmann --- src/qml/qml/qqmlcontextwrapper.cpp | 1 - src/qml/qml/qqmllistwrapper.cpp | 1 - src/qml/qml/qqmllocale.cpp | 15 +-- src/qml/qml/qqmltypewrapper.cpp | 1 - src/qml/qml/qqmlvaluetypewrapper.cpp | 1 - src/qml/qml/v4/qv4managed_p.h | 33 +----- src/qml/qml/v4/qv4object_p.h | 2 +- src/qml/qml/v4/qv4regexp_p.h | 2 +- src/qml/qml/v4/qv4regexpobject.cpp | 12 +- src/qml/qml/v4/qv4regexpobject_p.h | 2 +- src/qml/qml/v4/qv4runtime.cpp | 2 +- src/qml/qml/v4/qv4serialize.cpp | 2 +- src/qml/qml/v4/qv4stringobject.cpp | 14 +-- src/qml/qml/v4/qv4v8.cpp | 2 +- src/qml/qml/v4/qv4value_p.h | 6 - src/qml/qml/v4/qv4variantobject.cpp | 1 - src/qml/qml/v8/qjsvalue.cpp | 3 +- src/qml/qml/v8/qv8engine.cpp | 6 +- src/quick/items/context2d/qquickcontext2d.cpp | 155 +++++++++++++------------- 19 files changed, 108 insertions(+), 153 deletions(-) diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp index c7ac489..a4b8349 100644 --- a/src/qml/qml/qqmlcontextwrapper.cpp +++ b/src/qml/qml/qqmlcontextwrapper.cpp @@ -65,7 +65,6 @@ QmlContextWrapper::QmlContextWrapper(QV8Engine *engine, QQmlContextData *context v8(engine), readOnly(true), ownsContext(ownsContext), context(context), scopeObject(scopeObject) { - type = Type_QmlContext; vtbl = &static_vtbl; } diff --git a/src/qml/qml/qqmllistwrapper.cpp b/src/qml/qml/qqmllistwrapper.cpp index e8bc053..6d49b54 100644 --- a/src/qml/qml/qqmllistwrapper.cpp +++ b/src/qml/qml/qqmllistwrapper.cpp @@ -55,7 +55,6 @@ QmlListWrapper::QmlListWrapper(QV8Engine *engine) : Object(QV8Engine::getV4(engine)), v8(engine) { - type = Type_QmlListWrapper; vtbl = &static_vtbl; } diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index 5db82c9..69ce403 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -56,19 +56,20 @@ QT_BEGIN_NAMESPACE class QV4_JS_CLASS(QQmlLocaleData) : public QV4::Object { + Q_MANAGED QV4_ANNOTATE(managedTypeName QmlLocale staticInitClass true) public: QQmlLocaleData(QV4::ExecutionEngine *engine) : QV4::Object(engine) { vtbl = &static_vtbl; - type = Type_QmlLocale; + type = Type_Object; } QLocale locale; static QLocale &getThisLocale(QV4::SimpleCallContext *ctx) { - QQmlLocaleData *thisObject = ctx->thisObject.asObject()->asQmlLocale(); + QQmlLocaleData *thisObject = ctx->thisObject.asObject()->as(); if (!thisObject) ctx->throwTypeError(); return thisObject->locale; @@ -109,24 +110,18 @@ private: { static_cast(that)->~QQmlLocaleData(); } - - static const QV4::ManagedVTable static_vtbl; }; DEFINE_MANAGED_VTABLE(QQmlLocaleData); #define GET_LOCALE_DATA_RESOURCE(OBJECT) \ - QQmlLocaleData *r = OBJECT.isObject() ? (OBJECT.asManaged()->asQmlLocale()) : 0; \ + QQmlLocaleData *r = OBJECT.as(); \ if (!r) \ V4THROW_ERROR("Not a valid Locale object") static bool isLocaleObject(const QV4::Value &val) { - QV4::Object *obj = val.asObject(); - if (!obj) - return false; - - return obj->asQmlLocale(); + return val.as(); } //-------------- diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp index 1c2fd1f..8cabebf 100644 --- a/src/qml/qml/qqmltypewrapper.cpp +++ b/src/qml/qml/qqmltypewrapper.cpp @@ -60,7 +60,6 @@ QmlTypeWrapper::QmlTypeWrapper(QV8Engine *engine) : Object(QV8Engine::getV4(engine)), v8(engine), mode(IncludeEnums), type(0), typeNamespace(0), importNamespace(0) { - Managed::type = Type_QmlTypeWrapper; vtbl = &static_vtbl; } diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 8248e47..d17b50c 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -80,7 +80,6 @@ QmlValueTypeWrapper::QmlValueTypeWrapper(QV8Engine *engine, ObjectType objectTyp : Object(QV8Engine::getV4(engine)), objectType(objectType) { v8 = engine; - Managed::type = Type_QmlValueTypeWrapper; vtbl = &static_vtbl; } diff --git a/src/qml/qml/v4/qv4managed_p.h b/src/qml/qml/v4/qv4managed_p.h index 702e620..9efc253 100644 --- a/src/qml/qml/v4/qv4managed_p.h +++ b/src/qml/qml/v4/qv4managed_p.h @@ -48,9 +48,6 @@ QT_BEGIN_NAMESPACE -class QQmlLocaleData; -class QQuickJSContext2D; - namespace QV4 { class MemoryManager; @@ -67,14 +64,11 @@ struct StringObject; struct ArrayObject; struct DateObject; struct FunctionObject; -struct RegExpObject; struct ErrorObject; struct ArgumentsObject; struct JSONObject; -struct ForeachIteratorObject; struct Managed; struct Value; -class RegExp; struct Lookup; struct ExecutionEngine; struct QObjectWrapper; @@ -92,7 +86,7 @@ inline void qYouForgotTheQ_MANAGED_Macro(T1, T2) {} #define Q_MANAGED \ public: \ Q_MANAGED_CHECK \ - static const ManagedVTable static_vtbl; + static const QV4::ManagedVTable static_vtbl; struct ManagedVTable @@ -183,28 +177,11 @@ public: Type_RegExp, Type_QObject, - // QML bindings - Type_QmlLocale, - Type_QQuickJSContext2D, - - Type_QmlSequence, - - // Wrapped QVariant - Type_QVariant, - - // Qt Object - Type_QtObject, - Type_QmlContext, - Type_QmlTypeWrapper, - Type_QmlValueTypeWrapper, - Type_QmlListWrapper + Type_QmlSequence }; ExecutionEngine *engine() const; - String *asString() { return reinterpret_cast(this); } - Object *asObject() { return reinterpret_cast(this); } - template T *as() { #if !defined(QT_NO_QOBJECT_CHECK) @@ -226,18 +203,12 @@ public: NumberObject *asNumberObject() { return type == Type_NumberObject ? reinterpret_cast(this) : 0; } StringObject *asStringObject() { return type == Type_StringObject ? reinterpret_cast(this) : 0; } DateObject *asDateObject() { return type == Type_DateObject ? reinterpret_cast(this) : 0; } - RegExpObject *asRegExpObject() { return type == Type_RegExpObject ? reinterpret_cast(this) : 0; } ErrorObject *asErrorObject() { return type == Type_ErrorObject ? reinterpret_cast(this) : 0; } ArgumentsObject *asArgumentsObject() { return type == Type_ArgumentsObject ? reinterpret_cast(this) : 0; } JSONObject *asJSONObject() { return type == Type_JSONObject ? reinterpret_cast(this) : 0; } - ForeachIteratorObject *asForeachIteratorObject() { return type == Type_ForeachIteratorObject ? reinterpret_cast(this) : 0; } - RegExp *asRegExp() { return type == Type_RegExp ? reinterpret_cast(this) : 0; } QObjectWrapper *asQObjectWrapper() { return type == Type_QObject ? reinterpret_cast(this) : 0; } - QQmlLocaleData *asQmlLocale() { return type == Type_QmlLocale ? reinterpret_cast(this) : 0; } - QQuickJSContext2D *asQQuickJSContext2D() { return type == Type_QQuickJSContext2D ? reinterpret_cast(this) : 0; } - bool isListType() const { return type == Type_QmlSequence; } bool isArrayObject() const { return type == Type_ArrayObject; } diff --git a/src/qml/qml/v4/qv4object_p.h b/src/qml/qml/v4/qv4object_p.h index 7371f44..d091a51 100644 --- a/src/qml/qml/v4/qv4object_p.h +++ b/src/qml/qml/v4/qv4object_p.h @@ -372,6 +372,7 @@ private: }; struct ForEachIteratorObject: Object { + Q_MANAGED ObjectIterator it; ForEachIteratorObject(ExecutionContext *ctx, Object *o) : Object(ctx->engine), it(o, ObjectIterator::EnumerableOnly|ObjectIterator::WithProtoChain) { @@ -382,7 +383,6 @@ struct ForEachIteratorObject: Object { Value nextPropertyName() { return it.nextPropertyNameAsString(); } protected: - static const ManagedVTable static_vtbl; static void markObjects(Managed *that); }; diff --git a/src/qml/qml/v4/qv4regexp_p.h b/src/qml/qml/v4/qv4regexp_p.h index 0ae46e7..48ccceb 100644 --- a/src/qml/qml/v4/qv4regexp_p.h +++ b/src/qml/qml/v4/qv4regexp_p.h @@ -93,6 +93,7 @@ public: class RegExp : public Managed { + Q_MANAGED public: static RegExp* create(ExecutionEngine* engine, const QString& pattern, bool ignoreCase = false, bool multiline = false); ~RegExp(); @@ -108,7 +109,6 @@ public: int captureCount() const { return m_subPatternCount + 1; } protected: - static const ManagedVTable static_vtbl; static void destroy(Managed *that); static void markObjects(Managed *that); static Value get(Managed *m, ExecutionContext *ctx, String *name, bool *hasProperty); diff --git a/src/qml/qml/v4/qv4regexpobject.cpp b/src/qml/qml/v4/qv4regexpobject.cpp index 32def6f..09ebe70 100644 --- a/src/qml/qml/v4/qv4regexpobject.cpp +++ b/src/qml/qml/v4/qv4regexpobject.cpp @@ -214,7 +214,7 @@ Value RegExpPrototype::ctor_method_construct(Managed *, ExecutionContext *ctx, V { Value r = argc > 0 ? argv[0] : Value::undefinedValue(); Value f = argc > 1 ? argv[1] : Value::undefinedValue(); - if (RegExpObject *re = r.asRegExpObject()) { + if (RegExpObject *re = r.as()) { if (!f.isUndefined()) ctx->throwTypeError(); @@ -255,7 +255,7 @@ Value RegExpPrototype::ctor_method_construct(Managed *, ExecutionContext *ctx, V Value RegExpPrototype::ctor_method_call(Managed *that, ExecutionContext *ctx, const Value &thisObject, Value *argv, int argc) { - if (argc > 0 && argv[0].asRegExpObject()) { + if (argc > 0 && argv[0].as()) { if (argc == 1 || argv[1].isUndefined()) return argv[0]; } @@ -265,7 +265,7 @@ Value RegExpPrototype::ctor_method_call(Managed *that, ExecutionContext *ctx, co Value RegExpPrototype::method_exec(SimpleCallContext *ctx) { - RegExpObject *r = ctx->thisObject.asRegExpObject(); + RegExpObject *r = ctx->thisObject.as(); if (!r) ctx->throwTypeError(); @@ -314,7 +314,7 @@ Value RegExpPrototype::method_test(SimpleCallContext *ctx) Value RegExpPrototype::method_toString(SimpleCallContext *ctx) { - RegExpObject *r = ctx->thisObject.asRegExpObject(); + RegExpObject *r = ctx->thisObject.as(); if (!r) ctx->throwTypeError(); @@ -323,11 +323,11 @@ Value RegExpPrototype::method_toString(SimpleCallContext *ctx) Value RegExpPrototype::method_compile(SimpleCallContext *ctx) { - RegExpObject *r = ctx->thisObject.asRegExpObject(); + RegExpObject *r = ctx->thisObject.as(); if (!r) ctx->throwTypeError(); - RegExpObject *re = ctx->engine->regExpCtor.asFunctionObject()->construct(ctx, ctx->arguments, ctx->argumentCount).asRegExpObject(); + RegExpObject *re = ctx->engine->regExpCtor.asFunctionObject()->construct(ctx, ctx->arguments, ctx->argumentCount).as(); r->value = re->value; r->global = re->global; diff --git a/src/qml/qml/v4/qv4regexpobject_p.h b/src/qml/qml/v4/qv4regexpobject_p.h index 00a4032..1628f87 100644 --- a/src/qml/qml/v4/qv4regexpobject_p.h +++ b/src/qml/qml/v4/qv4regexpobject_p.h @@ -66,6 +66,7 @@ namespace QV4 { struct RegExp; struct RegExpObject: Object { + Q_MANAGED // needs to be compatible with the flags in qv4jsir_p.h enum Flags { RegExp_Global = 0x01, @@ -88,7 +89,6 @@ struct RegExpObject: Object { uint flags() const; protected: - static const ManagedVTable static_vtbl; static void destroy(Managed *that); static void markObjects(Managed *that); }; diff --git a/src/qml/qml/v4/qv4runtime.cpp b/src/qml/qml/v4/qv4runtime.cpp index 26363df..e559d68 100644 --- a/src/qml/qml/v4/qv4runtime.cpp +++ b/src/qml/qml/v4/qv4runtime.cpp @@ -648,7 +648,7 @@ void __qmljs_foreach_next_property_name(Value *result, const Value &foreach_iter assert(foreach_iterator.isObject()); ForEachIteratorObject *it = static_cast(foreach_iterator.objectValue()); - assert(it->asForeachIteratorObject()); + assert(it->as()); *result = it->nextPropertyName(); } diff --git a/src/qml/qml/v4/qv4serialize.cpp b/src/qml/qml/v4/qv4serialize.cpp index f222e4d..e253218 100644 --- a/src/qml/qml/v4/qv4serialize.cpp +++ b/src/qml/qml/v4/qv4serialize.cpp @@ -202,7 +202,7 @@ void Serialize::serialize(QByteArray &data, const QV4::Value &v, QV8Engine *engi reserve(data, sizeof(quint32) + sizeof(double)); push(data, valueheader(WorkerDate)); push(data, d->value.asDouble()); - } else if (QV4::RegExpObject *re = v.asRegExpObject()) { + } else if (QV4::RegExpObject *re = v.as()) { quint32 flags = re->flags(); QString pattern = re->source(); int length = pattern.length() + 1; diff --git a/src/qml/qml/v4/qv4stringobject.cpp b/src/qml/qml/v4/qv4stringobject.cpp index 512e035..0b8598f 100644 --- a/src/qml/qml/v4/qv4stringobject.cpp +++ b/src/qml/qml/v4/qv4stringobject.cpp @@ -268,9 +268,9 @@ Value StringPrototype::method_match(SimpleCallContext *context) String *s = context->thisObject.toString(context); Value regexp = context->argumentCount ? context->arguments[0] : Value::undefinedValue(); - RegExpObject *rx = regexp.asRegExpObject(); + RegExpObject *rx = regexp.as(); if (!rx) - rx = context->engine->regExpCtor.asFunctionObject()->construct(context, ®exp, 1).asRegExpObject(); + rx = context->engine->regExpCtor.asFunctionObject()->construct(context, ®exp, 1).as(); if (!rx) // ### CHECK @@ -372,7 +372,7 @@ Value StringPrototype::method_replace(SimpleCallContext *ctx) int numStringMatches = 0; Value searchValue = ctx->argument(0); - RegExpObject *regExp = searchValue.asRegExpObject(); + RegExpObject *regExp = searchValue.as(); if (regExp) { uint offset = 0; while (true) { @@ -456,10 +456,10 @@ Value StringPrototype::method_search(SimpleCallContext *ctx) string = ctx->thisObject.toString(ctx)->toQString(); Value regExpValue = ctx->argument(0); - RegExpObject *regExp = regExpValue.asRegExpObject(); + RegExpObject *regExp = regExpValue.as(); if (!regExp) { regExpValue = ctx->engine->regExpCtor.asFunctionObject()->construct(ctx, ®ExpValue, 1); - regExp = regExpValue.asRegExpObject(); + regExp = regExpValue.as(); } uint* matchOffsets = (uint*)alloca(regExp->value->captureCount() * 2 * sizeof(uint)); uint result = regExp->value->match(string, /*offset*/0, matchOffsets); @@ -521,14 +521,14 @@ Value StringPrototype::method_split(SimpleCallContext *ctx) if (limit == 0) return result; - if (RegExpObject* re = separatorValue.asRegExpObject()) { + if (RegExpObject* re = separatorValue.as()) { if (re->value->pattern().isEmpty()) { re = 0; separatorValue = Value::fromString(ctx, QString()); } } - if (RegExpObject* re = separatorValue.asRegExpObject()) { + if (RegExpObject* re = separatorValue.as()) { uint offset = 0; uint* matchOffsets = (uint*)alloca(re->value->captureCount() * 2 * sizeof(uint)); while (true) { diff --git a/src/qml/qml/v4/qv4v8.cpp b/src/qml/qml/v4/qv4v8.cpp index 3db0b36..2956ce6 100644 --- a/src/qml/qml/v4/qv4v8.cpp +++ b/src/qml/qml/v4/qv4v8.cpp @@ -261,7 +261,7 @@ bool Value::IsStringObject() const bool Value::IsRegExp() const { - return ConstValuePtr(this)->asRegExpObject(); + return ConstValuePtr(this)->as(); } bool Value::IsError() const diff --git a/src/qml/qml/v4/qv4value_p.h b/src/qml/qml/v4/qv4value_p.h index ea97229..53e1c1d 100644 --- a/src/qml/qml/v4/qv4value_p.h +++ b/src/qml/qml/v4/qv4value_p.h @@ -266,7 +266,6 @@ struct Q_QML_EXPORT Value NumberObject *asNumberObject() const; StringObject *asStringObject() const; DateObject *asDateObject() const; - RegExpObject *asRegExpObject() const; ArrayObject *asArrayObject() const; ErrorObject *asErrorObject() const; QObjectWrapper *asQObjectWrapper() const; @@ -531,11 +530,6 @@ inline DateObject *Value::asDateObject() const return isObject() ? managed()->asDateObject() : 0; } -inline RegExpObject *Value::asRegExpObject() const -{ - return isObject() ? managed()->asRegExpObject() : 0; -} - inline ArrayObject *Value::asArrayObject() const { return isObject() ? managed()->asArrayObject() : 0; diff --git a/src/qml/qml/v4/qv4variantobject.cpp b/src/qml/qml/v4/qv4variantobject.cpp index badc49c..6b7deed 100644 --- a/src/qml/qml/v4/qv4variantobject.cpp +++ b/src/qml/qml/v4/qv4variantobject.cpp @@ -55,7 +55,6 @@ VariantObject::VariantObject(ExecutionEngine *engine, const QVariant &value) , ExecutionEngine::ScarceResourceData(value) , m_vmePropertyReferenceCount(0) { - type = Type_QVariant; vtbl = &static_vtbl; prototype = engine->variantPrototype; if (isScarce()) diff --git a/src/qml/qml/v8/qjsvalue.cpp b/src/qml/qml/v8/qjsvalue.cpp index c2e2f6e..7a1b794 100644 --- a/src/qml/qml/v8/qjsvalue.cpp +++ b/src/qml/qml/v8/qjsvalue.cpp @@ -52,6 +52,7 @@ #include "qv4runtime_p.h" #include "qv4v8_p.h" #include "qv4variantobject_p.h" +#include "qv4regexpobject_p.h" /*! \since 5.0 @@ -959,7 +960,7 @@ bool QJSValue::isDate() const */ bool QJSValue::isRegExp() const { - return d->value.asRegExpObject(); + return d->value.as(); } /*! diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 2b4f4ce..0f04ed9 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -418,7 +418,7 @@ QVariant QV8Engine::toBasicVariant(const QV4::Value &value) Q_ASSERT(value.isObject()); - if (QV4::RegExpObject *re = value.asRegExpObject()) + if (QV4::RegExpObject *re = value.as()) return re->toQRegExp(); if (QV4::ArrayObject *a = value.asArrayObject()) { QVariantList rv; @@ -921,7 +921,7 @@ bool QV8Engine::metaTypeFromJS(const QV4::Value &value, int type, void *data) { return true; } break; case QMetaType::QRegExp: - if (QV4::RegExpObject *r = value.asRegExpObject()) { + if (QV4::RegExpObject *r = value.as()) { *reinterpret_cast(data) = r->toQRegExp(); return true; } break; @@ -1066,7 +1066,7 @@ QVariant QV8Engine::variantFromJS(const QV4::Value &value, return variantListFromJS(a, visitedObjects); if (QV4::DateObject *d = value.asDateObject()) return d->toQDateTime(); - if (QV4::RegExpObject *re = value.asRegExpObject()) + if (QV4::RegExpObject *re = value.as()) return re->toQRegExp(); if (QV4::VariantObject *v = value.as()) return v->data; diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index 80bcbe1..cee492e 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -238,13 +238,14 @@ V8_DEFINE_EXTENSION(QQuickContext2DEngineData, engineData) class QV4_JS_CLASS(QQuickJSContext2D) : public QV4::Object { + Q_MANAGED QV4_ANNOTATE(staticInitClass true) public: QQuickJSContext2D(QV4::ExecutionEngine *engine) : QV4::Object(engine) { vtbl = &static_vtbl; - type = Type_QQuickJSContext2D; + type = Type_Object; } QQuickContext2D* context; @@ -255,8 +256,6 @@ protected: { static_cast(that)->~QQuickJSContext2D(); } - - static const QV4::ManagedVTable static_vtbl; }; DEFINE_MANAGED_VTABLE(QQuickJSContext2D); @@ -473,7 +472,7 @@ static QV4::Value qt_create_image_data(qreal w, qreal h, QV8Engine* engine, cons */ static v8::Handle ctx2d_canvas(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -490,7 +489,7 @@ static v8::Handle ctx2d_canvas(v8::Handle, const v8::Acce */ static QV4::Value ctx2d_restore(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->popState(); @@ -503,7 +502,7 @@ static QV4::Value ctx2d_restore(const v8::Arguments &args) */ static QV4::Value ctx2d_reset(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->reset(); @@ -543,7 +542,7 @@ static QV4::Value ctx2d_reset(const v8::Arguments &args) */ static QV4::Value ctx2d_save(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->pushState(); @@ -569,7 +568,7 @@ static QV4::Value ctx2d_save(const v8::Arguments &args) */ static QV4::Value ctx2d_rotate(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 1) @@ -593,7 +592,7 @@ static QV4::Value ctx2d_rotate(const v8::Arguments &args) */ static QV4::Value ctx2d_scale(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -637,7 +636,7 @@ static QV4::Value ctx2d_scale(const v8::Arguments &args) */ static QV4::Value ctx2d_setTransform(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -664,7 +663,7 @@ static QV4::Value ctx2d_setTransform(const v8::Arguments &args) */ static QV4::Value ctx2d_transform(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -690,7 +689,7 @@ static QV4::Value ctx2d_transform(const v8::Arguments &args) */ static QV4::Value ctx2d_translate(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -708,7 +707,7 @@ static QV4::Value ctx2d_translate(const v8::Arguments &args) */ static QV4::Value ctx2d_resetTransform(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->setTransform(1, 0, 0, 1, 0, 0); @@ -723,7 +722,7 @@ static QV4::Value ctx2d_resetTransform(const v8::Arguments &args) */ static QV4::Value ctx2d_shear(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 2) @@ -741,7 +740,7 @@ static QV4::Value ctx2d_shear(const v8::Arguments &args) */ static v8::Handle ctx2d_globalAlpha(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) return QV4::Value::fromDouble(r->context->state.globalAlpha); @@ -749,7 +748,7 @@ static v8::Handle ctx2d_globalAlpha(v8::Handle, const v8: static void ctx2d_globalAlpha_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal globalAlpha = value->NumberValue(); @@ -791,7 +790,7 @@ static void ctx2d_globalAlpha_set(v8::Handle, v8::Handle */ static v8::Handle ctx2d_globalCompositeOperation(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -802,7 +801,7 @@ static v8::Handle ctx2d_globalCompositeOperation(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString mode = value->v4Value().toQString(); @@ -841,7 +840,7 @@ static void ctx2d_globalCompositeOperation_set(v8::Handle, v8::Handl */ static v8::Handle ctx2d_fillStyle(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -862,7 +861,7 @@ static v8::Handle ctx2d_fillStyle(v8::Handle, const v8::A static void ctx2d_fillStyle_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -906,7 +905,7 @@ static void ctx2d_fillStyle_set(v8::Handle, v8::Handle va */ static v8::Handle ctx2d_fillRule(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -915,7 +914,7 @@ static v8::Handle ctx2d_fillRule(v8::Handle, const v8::Ac static void ctx2d_fillRule_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) if ((value->IsString() && value->v4Value().toQString() == QStringLiteral("WindingFill")) @@ -944,7 +943,7 @@ static void ctx2d_fillRule_set(v8::Handle, v8::Handle val */ v8::Handle ctx2d_strokeStyle(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -965,7 +964,7 @@ v8::Handle ctx2d_strokeStyle(v8::Handle, const v8::Access static void ctx2d_strokeStyle_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -1016,7 +1015,7 @@ static void ctx2d_strokeStyle_set(v8::Handle, v8::Handle static QV4::Value ctx2d_createLinearGradient(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1062,7 +1061,7 @@ static QV4::Value ctx2d_createLinearGradient(const v8::Arguments &args) static QV4::Value ctx2d_createRadialGradient(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1117,7 +1116,7 @@ static QV4::Value ctx2d_createRadialGradient(const v8::Arguments &args) static QV4::Value ctx2d_createConicalGradient(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1193,7 +1192,7 @@ static QV4::Value ctx2d_createConicalGradient(const v8::Arguments &args) */ static QV4::Value ctx2d_createPattern(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1266,7 +1265,7 @@ static QV4::Value ctx2d_createPattern(const v8::Arguments &args) */ v8::Handle ctx2d_lineCap(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1286,7 +1285,7 @@ v8::Handle ctx2d_lineCap(v8::Handle, const v8::AccessorIn static void ctx2d_lineCap_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString lineCap = value->v4Value().toQString(); @@ -1322,7 +1321,7 @@ static void ctx2d_lineCap_set(v8::Handle, v8::Handle valu */ v8::Handle ctx2d_lineJoin(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1342,7 +1341,7 @@ v8::Handle ctx2d_lineJoin(v8::Handle, const v8::AccessorI static void ctx2d_lineJoin_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString lineJoin = value->v4Value().toQString(); @@ -1368,7 +1367,7 @@ static void ctx2d_lineJoin_set(v8::Handle, v8::Handle val */ v8::Handle ctx2d_lineWidth(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1377,7 +1376,7 @@ v8::Handle ctx2d_lineWidth(v8::Handle, const v8::Accessor static void ctx2d_lineWidth_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal w = value->NumberValue(); @@ -1395,7 +1394,7 @@ static void ctx2d_lineWidth_set(v8::Handle, v8::Handle va */ v8::Handle ctx2d_miterLimit(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1404,7 +1403,7 @@ v8::Handle ctx2d_miterLimit(v8::Handle, const v8::Accesso static void ctx2d_miterLimit_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal ml = value->NumberValue(); @@ -1422,7 +1421,7 @@ static void ctx2d_miterLimit_set(v8::Handle, v8::Handle v */ v8::Handle ctx2d_shadowBlur(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1431,7 +1430,7 @@ v8::Handle ctx2d_shadowBlur(v8::Handle, const v8::Accesso static void ctx2d_shadowBlur_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal blur = value->NumberValue(); @@ -1447,7 +1446,7 @@ static void ctx2d_shadowBlur_set(v8::Handle, v8::Handle v */ v8::Handle ctx2d_shadowColor(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1458,7 +1457,7 @@ v8::Handle ctx2d_shadowColor(v8::Handle, const v8::Access static void ctx2d_shadowColor_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QColor color = qt_color_from_string(value); @@ -1478,7 +1477,7 @@ static void ctx2d_shadowColor_set(v8::Handle, v8::Handle */ v8::Handle ctx2d_shadowOffsetX(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1487,7 +1486,7 @@ v8::Handle ctx2d_shadowOffsetX(v8::Handle, const v8::Acce static void ctx2d_shadowOffsetX_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal offsetX = value->NumberValue(); @@ -1504,7 +1503,7 @@ static void ctx2d_shadowOffsetX_set(v8::Handle, v8::Handle ctx2d_shadowOffsetY(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1513,7 +1512,7 @@ v8::Handle ctx2d_shadowOffsetY(v8::Handle, const v8::Acce static void ctx2d_shadowOffsetY_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) qreal offsetY = value->NumberValue(); @@ -1525,14 +1524,14 @@ static void ctx2d_shadowOffsetY_set(v8::Handle, v8::Handle ctx2d_path(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) return r->context->m_v8path; } static void ctx2d_path_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -1555,7 +1554,7 @@ static void ctx2d_path_set(v8::Handle, v8::Handle value, */ static QV4::Value ctx2d_clearRect(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1575,7 +1574,7 @@ static QV4::Value ctx2d_clearRect(const v8::Arguments &args) */ static QV4::Value ctx2d_fillRect(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 4) @@ -1595,7 +1594,7 @@ static QV4::Value ctx2d_fillRect(const v8::Arguments &args) */ static QV4::Value ctx2d_strokeRect(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 4) @@ -1614,7 +1613,7 @@ static QV4::Value ctx2d_strokeRect(const v8::Arguments &args) */ static QV4::Value ctx2d_arc(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() >= 5) { @@ -1661,7 +1660,7 @@ static QV4::Value ctx2d_arc(const v8::Arguments &args) */ static QV4::Value ctx2d_arcTo(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 5) { @@ -1687,7 +1686,7 @@ static QV4::Value ctx2d_arcTo(const v8::Arguments &args) */ static QV4::Value ctx2d_beginPath(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1717,7 +1716,7 @@ static QV4::Value ctx2d_beginPath(const v8::Arguments &args) */ static QV4::Value ctx2d_bezierCurveTo(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1764,7 +1763,7 @@ static QV4::Value ctx2d_bezierCurveTo(const v8::Arguments &args) */ static QV4::Value ctx2d_clip(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->clip(); @@ -1780,7 +1779,7 @@ static QV4::Value ctx2d_clip(const v8::Arguments &args) */ static QV4::Value ctx2d_closePath(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1800,7 +1799,7 @@ static QV4::Value ctx2d_closePath(const v8::Arguments &args) */ static QV4::Value ctx2d_fill(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r); r->context->fill(); return args.ThisV4(); @@ -1813,7 +1812,7 @@ static QV4::Value ctx2d_fill(const v8::Arguments &args) */ static QV4::Value ctx2d_lineTo(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1837,7 +1836,7 @@ static QV4::Value ctx2d_lineTo(const v8::Arguments &args) */ static QV4::Value ctx2d_moveTo(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 2) { @@ -1860,7 +1859,7 @@ static QV4::Value ctx2d_moveTo(const v8::Arguments &args) */ static QV4::Value ctx2d_quadraticCurveTo(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 4) { @@ -1885,7 +1884,7 @@ static QV4::Value ctx2d_quadraticCurveTo(const v8::Arguments &args) */ static QV4::Value ctx2d_rect(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 4) @@ -1901,7 +1900,7 @@ static QV4::Value ctx2d_rect(const v8::Arguments &args) */ static QV4::Value ctx2d_roundedRect(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 6) @@ -1924,7 +1923,7 @@ static QV4::Value ctx2d_roundedRect(const v8::Arguments &args) */ static QV4::Value ctx2d_ellipse(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) @@ -1942,7 +1941,7 @@ static QV4::Value ctx2d_ellipse(const v8::Arguments &args) */ static QV4::Value ctx2d_text(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 3) { @@ -1967,7 +1966,7 @@ static QV4::Value ctx2d_text(const v8::Arguments &args) */ static QV4::Value ctx2d_stroke(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) r->context->stroke(); @@ -1983,7 +1982,7 @@ static QV4::Value ctx2d_stroke(const v8::Arguments &args) */ static QV4::Value ctx2d_isPointInPath(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) bool pointInPath = false; @@ -2022,7 +2021,7 @@ static QV4::Value ctx2d_caretBlinkRate(const v8::Arguments &args) */ v8::Handle ctx2d_font(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -2032,7 +2031,7 @@ v8::Handle ctx2d_font(v8::Handle, const v8::AccessorInfo static void ctx2d_font_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString fs = value->v4Value().toQString(); @@ -2058,7 +2057,7 @@ static void ctx2d_font_set(v8::Handle, v8::Handle value, */ v8::Handle ctx2d_textAlign(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); switch (r->context->state.textAlign) { @@ -2080,7 +2079,7 @@ v8::Handle ctx2d_textAlign(v8::Handle, const v8::Accessor static void ctx2d_textAlign_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString textAlign = value->v4Value().toQString(); @@ -2121,7 +2120,7 @@ static void ctx2d_textAlign_set(v8::Handle, v8::Handle va */ v8::Handle ctx2d_textBaseline(v8::Handle, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE_ACCESSOR(); @@ -2144,7 +2143,7 @@ v8::Handle ctx2d_textBaseline(v8::Handle, const v8::Acces static void ctx2d_textBaseline_set(v8::Handle, v8::Handle value, const v8::AccessorInfo &info) { - QQuickJSContext2D *r = info.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = info.This()->v4Value().as(); CHECK_CONTEXT_SETTER(r) QString textBaseline = value->v4Value().toQString(); @@ -2177,7 +2176,7 @@ static void ctx2d_textBaseline_set(v8::Handle, v8::Handle */ static QV4::Value ctx2d_fillText(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 3) { @@ -2200,7 +2199,7 @@ static QV4::Value ctx2d_fillText(const v8::Arguments &args) */ static QV4::Value ctx2d_strokeText(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 3) @@ -2234,7 +2233,7 @@ static QV4::Value ctx2d_strokeText(const v8::Arguments &args) */ static QV4::Value ctx2d_measureText(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() == 1) { @@ -2308,7 +2307,7 @@ static QV4::Value ctx2d_measureText(const v8::Arguments &args) */ static QV4::Value ctx2d_drawImage(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE(); @@ -2559,7 +2558,7 @@ v8::Handle ctx2d_pixelArray_indexed_set(uint32_t index, v8::Handlev4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE(); @@ -2598,7 +2597,7 @@ static QV4::Value ctx2d_createImageData(const v8::Arguments &args) */ static QV4::Value ctx2d_getImageData(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) QV8Engine *engine = V8ENGINE(); @@ -2627,7 +2626,7 @@ static QV4::Value ctx2d_getImageData(const v8::Arguments &args) */ static QV4::Value ctx2d_putImageData(const v8::Arguments &args) { - QQuickJSContext2D *r = args.This()->v4Value().asObject()->asQQuickJSContext2D(); + QQuickJSContext2D *r = args.This()->v4Value().as(); CHECK_CONTEXT(r) if (args.Length() != 3 && args.Length() != 7) return QV4::Value::undefinedValue(); -- 2.7.4