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/qv4codegen.cpp | |
parent | 263b1f5f2acdc7e652e7c3aa332e2a53bd136295 (diff) | |
download | qtdeclarative-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.cpp | 5 |
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; |