aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4compilercontext.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2018-08-15 14:53:28 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-08-15 18:56:05 +0000
commitd4ca7f779d85b01a7e650abefeb8cd6502eff8e2 (patch)
treecb9e961e795cbafb6bbfeb1d17e4be604cd7411d /src/qml/compiler/qv4compilercontext.cpp
parent263b1f5f2acdc7e652e7c3aa332e2a53bd136295 (diff)
Fix initialization of default exported functions and generators
When registering a default export, make sure that the local name points either to an entry that we've entered into the environment or the synthetic entry we create. Change-Id: I37e160dc1e3231214bb68f72d6bb0746d7aee3b3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compilercontext.cpp')
-rw-r--r--src/qml/compiler/qv4compilercontext.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4compilercontext.cpp b/src/qml/compiler/qv4compilercontext.cpp
index c0fbb72c59..09be19e427 100644
--- a/src/qml/compiler/qv4compilercontext.cpp
+++ b/src/qml/compiler/qv4compilercontext.cpp
@@ -295,9 +295,12 @@ void Context::setupFunctionIndices(Moth::BytecodeGenerator *bytecodeGenerator)
Q_ASSERT(nRegisters == 0);
registerOffset = bytecodeGenerator->currentRegister();
- if (contextType == ContextType::ESModule && hasDefaultExport) {
- // allocate a local slot for the default export
- locals.append(QStringLiteral("*default*"));
+ if (contextType == ContextType::ESModule && !localNameForDefaultExport.isEmpty()) {
+ if (!members.contains(localNameForDefaultExport)) {
+ // allocate a local slot for the default export, to be used in
+ // CodeGen::visit(ExportDeclaration*).
+ locals.append(localNameForDefaultExport);
+ }
}
switch (contextType) {