diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-14 01:00:08 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-14 01:00:09 +0100 |
commit | e6199a8357cb9a97a3de0e86af387ddbe15a18ea (patch) | |
tree | c33fdae61742736ad47a33ddc2458aed07d53b1b /src/qml/compiler | |
parent | 57604562db870f7b05d4349761d73e054dbe04c6 (diff) | |
parent | 68d0377736a541fa29d1aaba6b7aa4a4cf8781ef (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I2842f4a8096c4555e29f08e65b88b77b841441cb
Diffstat (limited to 'src/qml/compiler')
-rw-r--r-- | src/qml/compiler/qqmlirbuilder_p.h | 1 | ||||
-rw-r--r-- | src/qml/compiler/qv4codegen.cpp | 2 | ||||
-rw-r--r-- | src/qml/compiler/qv4codegen_p.h | 4 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index 5dd4d1800f..fd607aee8d 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -559,6 +559,7 @@ struct Q_QML_PRIVATE_EXPORT JSCodeGen : public QV4::Compiler::Codegen protected: void beginFunctionBodyHook() override; + bool canAccelerateGlobalLookups() const override { return !_disableAcceleratedLookups; } Reference fallbackNameLookup(const QString &name) override; private: diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index a0a2a17b0f..17869bcc84 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -2404,7 +2404,7 @@ Codegen::Reference Codegen::referenceForName(const QString &name, bool isLhs, co Reference r = Reference::fromName(this, name); r.global = useFastLookups && (resolved.type == Context::ResolvedName::Global); - if (!r.global && m_globalNames.contains(name)) + if (!r.global && canAccelerateGlobalLookups() && m_globalNames.contains(name)) r.global = true; return r; } diff --git a/src/qml/compiler/qv4codegen_p.h b/src/qml/compiler/qv4codegen_p.h index 3f96afc7c2..4d7001fe64 100644 --- a/src/qml/compiler/qv4codegen_p.h +++ b/src/qml/compiler/qv4codegen_p.h @@ -561,8 +561,10 @@ protected: Reference referenceForPropertyName(const Codegen::Reference &object, AST::PropertyName *name); - // Hook provided to implement QML lookup semantics + // Hooks provided to implement QML lookup semantics + virtual bool canAccelerateGlobalLookups() const { return true; } virtual Reference fallbackNameLookup(const QString &name); + virtual void beginFunctionBodyHook() {} void emitReturn(const Reference &expr); |