From d4ca7f779d85b01a7e650abefeb8cd6502eff8e2 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 15 Aug 2018 14:53:28 +0200 Subject: 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 --- src/qml/compiler/qv4codegen.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/qml/compiler/qv4codegen.cpp') 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; -- cgit v1.2.3