summaryrefslogtreecommitdiff
path: root/src/qml/compiler/qv4codegen.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/qv4codegen.cpp
parent263b1f5f2acdc7e652e7c3aa332e2a53bd136295 (diff)
downloadqtdeclarative-d4ca7f779d85b01a7e650abefeb8cd6502eff8e2.tar.gz
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/qv4codegen.cpp')
-rw-r--r--src/qml/compiler/qv4codegen.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index 185f1812f7..0d004bfe80 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -816,7 +816,10 @@ bool Codegen::visit(ExportDeclaration *ast)
}
exportedValue.loadInAccumulator();
- Reference defaultExportSlot = Reference::fromScopedLocal(this, 0, /*scope*/0);
+
+ const int defaultExportIndex = _context->locals.indexOf(_context->localNameForDefaultExport);
+ Q_ASSERT(defaultExportIndex != -1);
+ Reference defaultExportSlot = Reference::fromScopedLocal(this, defaultExportIndex, /*scope*/0);
defaultExportSlot.storeConsumeAccumulator();
return false;