From fd183d3db9d1eba4f7dd3e978192a247bf7dba85 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 10 May 2018 22:55:55 +0200 Subject: Give for loops a proper block scope for it's lexically declared vars Change-Id: I71c40d1d061ac3c1c623dbbf8f7967c9ec35c082 Reviewed-by: Simon Hausmann --- src/qml/compiler/qv4compilerscanfunctions.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/qml/compiler/qv4compilerscanfunctions.cpp') diff --git a/src/qml/compiler/qv4compilerscanfunctions.cpp b/src/qml/compiler/qv4compilerscanfunctions.cpp index 31663e2162..c2256537c4 100644 --- a/src/qml/compiler/qv4compilerscanfunctions.cpp +++ b/src/qml/compiler/qv4compilerscanfunctions.cpp @@ -320,6 +320,8 @@ bool ScanFunctions::visit(DoWhileStatement *ast) { } bool ScanFunctions::visit(ForStatement *ast) { + enterEnvironment(ast, ContextType::Block); + _context->name = QLatin1String("For"); Node::accept(ast->initialiser, this); Node::accept(ast->declarations, this); Node::accept(ast->condition, this); @@ -331,6 +333,11 @@ bool ScanFunctions::visit(ForStatement *ast) { return false; } +void ScanFunctions::endVisit(ForStatement *) +{ + leaveEnvironment(); +} + bool ScanFunctions::visit(ForEachStatement *ast) { enterEnvironment(ast, ContextType::Block); _context->name = QLatin1String("Foreach"); -- cgit v1.2.1