diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-19 13:28:26 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-06-25 07:36:48 +0000 |
commit | 1596112e146b28541bcee412ed159cdea7e692d0 (patch) | |
tree | 29e858041496256c9c9c700fca4fb7220d78d46e /src/imports | |
parent | 3823e9b94f849f8344b81250fac708ac2eaccd16 (diff) |
Add Proxy support for prototype handling
Cleanup get/setPrototypeOf and fix some smaller incompatibilities
in the default implementation for Object.
Add the methods to the vtable and reimplement them according to
spec for ProxyObjects.
Clean up the Object.prototype.get/setPrototypeOf/__proto__ methods
and fix a smaller bug in the Reflect API for those methods.
Change-Id: I6e438753332ec4db963d6cdcf86f340ff212777a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/localstorage/plugin.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp index fb20a1c457..60c1f89c9b 100644 --- a/src/imports/localstorage/plugin.cpp +++ b/src/imports/localstorage/plugin.cpp @@ -323,7 +323,7 @@ static ReturnedValue qmlsqldatabase_executeSql(const FunctionObject *b, const Va if (query.exec()) { QV4::Scoped<QQmlSqlDatabaseWrapper> rows(scope, QQmlSqlDatabaseWrapper::create(scope.engine)); QV4::ScopedObject p(scope, databaseData(scope.engine)->rowsProto.value()); - rows->setPrototype(p.getPointer()); + rows->setPrototypeUnchecked(p.getPointer()); rows->d()->type = Heap::QQmlSqlDatabaseWrapper::Rows; *rows->d()->database = db; *rows->d()->sqlQuery = query; @@ -397,7 +397,7 @@ static ReturnedValue qmlsqldatabase_changeVersion(const FunctionObject *b, const Scoped<QQmlSqlDatabaseWrapper> w(scope, QQmlSqlDatabaseWrapper::create(scope.engine)); ScopedObject p(scope, databaseData(scope.engine)->queryProto.value()); - w->setPrototype(p.getPointer()); + w->setPrototypeUnchecked(p.getPointer()); w->d()->type = Heap::QQmlSqlDatabaseWrapper::Query; *w->d()->database = db; *w->d()->version = *r->d()->version; @@ -449,7 +449,7 @@ static ReturnedValue qmlsqldatabase_transaction_shared(const FunctionObject *b, Scoped<QQmlSqlDatabaseWrapper> w(scope, QQmlSqlDatabaseWrapper::create(scope.engine)); QV4::ScopedObject p(scope, databaseData(scope.engine)->queryProto.value()); - w->setPrototype(p.getPointer()); + w->setPrototypeUnchecked(p.getPointer()); w->d()->type = Heap::QQmlSqlDatabaseWrapper::Query; *w->d()->database = db; *w->d()->version = *r->d()->version; @@ -773,7 +773,7 @@ void QQuickLocalStorage::openDatabaseSync(QQmlV4Function *args) QV4::Scoped<QQmlSqlDatabaseWrapper> db(scope, QQmlSqlDatabaseWrapper::create(scope.engine)); QV4::ScopedObject p(scope, databaseData(scope.engine)->databaseProto.value()); - db->setPrototype(p.getPointer()); + db->setPrototypeUnchecked(p.getPointer()); *db->d()->database = database; *db->d()->version = version; |