From b4a4ad725cd6ca56fe1741d8bc98ac5d73ca1b75 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Sat, 22 Apr 2017 15:53:07 +0000 Subject: [PATCH] pastojs: fixed exit in program begin-end git-svn-id: trunk@35905 - --- packages/pastojs/src/fppas2js.pp | 3 ++- packages/pastojs/tests/tcmodules.pas | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index 3166aa47a3..0ebc0490c8 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -6005,7 +6005,8 @@ begin begin // without parameter. ProcEl:=El.Parent; - while not (ProcEl is TPasProcedure) do ProcEl:=ProcEl.Parent; + while (ProcEl<>nil) and not (ProcEl is TPasProcedure) do + ProcEl:=ProcEl.Parent; if ProcEl is TPasFunction then // in a function, "return result;" TJSReturnStatement(Result).Expr:=CreateBuiltInIdentifierExpr(ResolverResultVar) diff --git a/packages/pastojs/tests/tcmodules.pas b/packages/pastojs/tests/tcmodules.pas index 8ca3f92370..4a87ab73bf 100644 --- a/packages/pastojs/tests/tcmodules.pas +++ b/packages/pastojs/tests/tcmodules.pas @@ -2119,7 +2119,10 @@ begin ' return Result;', '};' ]), - ''); + LinesToStr([ + 'return;', + 'return 1;', + ''])); end; procedure TTestModule.TestBreak;