diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-08-15 14:53:28 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-08-15 18:56:05 +0000 |
commit | d4ca7f779d85b01a7e650abefeb8cd6502eff8e2 (patch) | |
tree | cb9e961e795cbafb6bbfeb1d17e4be604cd7411d /src/qml/compiler/qv4compilercontext.cpp | |
parent | 263b1f5f2acdc7e652e7c3aa332e2a53bd136295 (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.cpp | 9 |
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) { |