Browse Source

pastojs: fixed exit in program begin-end

git-svn-id: trunk@35905 -
Mattias Gaertner 8 years ago
parent
commit
b4a4ad725c
2 changed files with 6 additions and 2 deletions
  1. 2 1
      packages/pastojs/src/fppas2js.pp
  2. 4 1
      packages/pastojs/tests/tcmodules.pas

+ 2 - 1
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)

+ 4 - 1
packages/pastojs/tests/tcmodules.pas

@@ -2119,7 +2119,10 @@ begin
     '  return Result;',
     '};'
     ]),
-    '');
+    LinesToStr([
+    'return;',
+    'return 1;',
+    '']));
 end;
 
 procedure TTestModule.TestBreak;