Explorar o código

pastojs: fixed initial pcu flags

git-svn-id: trunk@40494 -
Mattias Gaertner %!s(int64=6) %!d(string=hai) anos
pai
achega
ca95175b1a

+ 17 - 0
packages/pastojs/src/fppas2js.pp

@@ -1869,6 +1869,8 @@ function PosLast(c: char; const s: string): integer;
 
 
 function JSEquals(A, B: TJSElement): boolean;
 function JSEquals(A, B: TJSElement): boolean;
 
 
+function dbgs(opts: TPasToJsConverterOptions): string; overload;
+
 implementation
 implementation
 
 
 const
 const
@@ -1913,6 +1915,21 @@ begin
     exit(false);
     exit(false);
 end;
 end;
 
 
+function dbgs(opts: TPasToJsConverterOptions): string;
+var
+  o: TPasToJsConverterOption;
+  h: string;
+begin
+  Result:='';
+  for o in opts do
+    begin
+    if Result<>'' then Result:=Result+',';
+    str(o,h);
+    Result:=Result+h;
+    end;
+  Result:='['+Result+']';
+end;
+
 { TPas2JSSectionScope }
 { TPas2JSSectionScope }
 
 
 procedure TPas2JSSectionScope.InternalAddElevatedLocal(Item: TPasIdentifier);
 procedure TPas2JSSectionScope.InternalAddElevatedLocal(Item: TPasIdentifier);

+ 0 - 2
packages/pastojs/src/pas2jscompiler.pp

@@ -1734,8 +1734,6 @@ begin
     LoadModuleFile(MainSrcFile,'',FMainFile,False);
     LoadModuleFile(MainSrcFile,'',FMainFile,False);
     if MainFile=nil then exit;
     if MainFile=nil then exit;
     // parse and load Pascal files recursively
     // parse and load Pascal files recursively
-    if Assigned(FMainFile.PCUSupport) then
-      FMainFile.PCUSupport.SetInitialCompileFlags;
     FMainFile.ReadUnit;
     FMainFile.ReadUnit;
     ProcessQueue;
     ProcessQueue;
 
 

+ 1 - 1
packages/pastojs/src/pas2jsfiler.pp

@@ -2130,7 +2130,7 @@ begin
   WriteModeSwitches(Obj,'FinalModeSwitches',Scanner.CurrentModeSwitches,InitialFlags.Modeswitches);
   WriteModeSwitches(Obj,'FinalModeSwitches',Scanner.CurrentModeSwitches,InitialFlags.Modeswitches);
   WriteBoolSwitches(Obj,'FinalBoolSwitches',Scanner.CurrentBoolSwitches,InitialFlags.BoolSwitches);
   WriteBoolSwitches(Obj,'FinalBoolSwitches',Scanner.CurrentBoolSwitches,InitialFlags.BoolSwitches);
   if InitialFlags.ConverterOptions<>Converter.Options then
   if InitialFlags.ConverterOptions<>Converter.Options then
-    RaiseMsg(20180314185555);
+    RaiseMsg(20180314185555,'InitialFlags='+dbgs(InitialFlags.ConverterOptions)+' Converter='+dbgs(Converter.Options));
   // ToDo: write final flags: used defines, used macros
   // ToDo: write final flags: used defines, used macros
 end;
 end;
 
 

+ 3 - 1
packages/pastojs/src/pas2jspcucompiler.pp

@@ -318,10 +318,12 @@ begin
     MyFile.Converter.OnIsTypeInfoUsed:=@OnPCUConverterIsTypeInfoUsed;
     MyFile.Converter.OnIsTypeInfoUsed:=@OnPCUConverterIsTypeInfoUsed;
     JS:=MyFile.Converter.ConvertPasElement(MyFile.PasModule,MyFile.PascalResolver);
     JS:=MyFile.Converter.ConvertPasElement(MyFile.PasModule,MyFile.PascalResolver);
     MyFile.Converter.Options:=MyFile.Converter.Options-[coStoreImplJS];
     MyFile.Converter.Options:=MyFile.Converter.Options-[coStoreImplJS];
+    MyFile.PCUSupport.SetInitialCompileFlags;
     {$IFDEF REALLYVERBOSE}
     {$IFDEF REALLYVERBOSE}
     writeln('TPas2jsCompilerFile.WritePCU create pcu ... ',MyFile.PCUFilename);
     writeln('TPas2jsCompilerFile.WritePCU create pcu ... ',MyFile.PCUFilename);
     {$ENDIF}
     {$ENDIF}
-    Writer.WritePCU(MyFile.PascalResolver,MyFile.Converter,PrecompileInitialFlags,ms,AllowCompressed);
+    Writer.WritePCU(MyFile.PascalResolver,MyFile.Converter,
+                    PrecompileInitialFlags,ms,AllowCompressed);
     {$IFDEF REALLYVERBOSE}
     {$IFDEF REALLYVERBOSE}
     writeln('TPas2jsCompilerFile.WritePCU precompiled ',MyFile.PCUFilename);
     writeln('TPas2jsCompilerFile.WritePCU precompiled ',MyFile.PCUFilename);
     {$ENDIF}
     {$ENDIF}