diff --git a/packages/fcl-js/src/jssrcmap.pas b/packages/fcl-js/src/jssrcmap.pas index b2fc66817c..3d3076e956 100644 --- a/packages/fcl-js/src/jssrcmap.pas +++ b/packages/fcl-js/src/jssrcmap.pas @@ -68,6 +68,11 @@ uses ; {$ENDIF FPC_DOTTEDUNITS} +{$IFDEF PAS2JS} +Type + AnsiString = String; +{$ENDIF} + const Base64Chars = AnsiString('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'); diff --git a/packages/fcl-js/src/jswriter.pp b/packages/fcl-js/src/jswriter.pp index f846f238b1..66eb6fb9c4 100644 --- a/packages/fcl-js/src/jswriter.pp +++ b/packages/fcl-js/src/jswriter.pp @@ -39,6 +39,7 @@ uses Type {$ifdef pas2js} TJSWriterString = UnicodeString; + AnsiChar = char; {$else} TJSWriterString = AnsiString; {$endif} @@ -2283,11 +2284,15 @@ end; function TTextWriter.WriteLn(const S: TJSWriterString): Integer; begin Result:=Write(S); +{$IFDEF PAS2JS} + Result:=Result+Write(LineBreak); +{$ELSE} {$IF SIZEOF(Char)=1} Result:=Result+Write(LineBreak); {$else} Result:=Result+Write(UTF8Encode(LineBreak)); {$ENDIF} +{$ENDIF} end; function TTextWriter.Write(const Fmt: TJSWriterString; diff --git a/packages/fcl-passrc/src/pasresolveeval.pas b/packages/fcl-passrc/src/pasresolveeval.pas index 6f114ab34c..30c9276064 100644 --- a/packages/fcl-passrc/src/pasresolveeval.pas +++ b/packages/fcl-passrc/src/pasresolveeval.pas @@ -4295,7 +4295,7 @@ var end; {$ENDIF} - procedure AddSrc(h: AnsiString); + procedure AddSrc(h: {$IFDEF PAS2JS}String{$ELSE}AnsiString{$ENDIF}); {$ifdef FPC_HAS_CPSTRING} var ValueAnsi: TResEvalString; diff --git a/packages/fcl-passrc/src/pasresolver.pp b/packages/fcl-passrc/src/pasresolver.pp index ec29a1b8a9..3ffbad8a7d 100644 --- a/packages/fcl-passrc/src/pasresolver.pp +++ b/packages/fcl-passrc/src/pasresolver.pp @@ -15029,7 +15029,11 @@ begin else if (l=3) and (Value[3]='''') then if Ord(Value[2])<128 then + {$IFNDEF PAS2JS} Result:=btAnsiChar // e.g. 'a' + {$ELSE} + Result:=btWideChar + {$ENDIF} else Result:=btWideChar; // e.g. 'a' end; diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 1a6c82123d..c277a80871 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -4702,7 +4702,7 @@ end; function TPasVariable.GetDeclaration (full : boolean) : TPasTreeString; Const - Seps : Array[Boolean] of AnsiChar = ('=',':'); + Seps : Array[Boolean] of Char = ('=',':'); begin If Assigned(VarType) then diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp index c6f9937b7b..3c35a8cd9f 100644 --- a/packages/fcl-passrc/src/pparser.pp +++ b/packages/fcl-passrc/src/pparser.pp @@ -1539,6 +1539,8 @@ function TPasParser.TryErrorRecovery(const aContext: TRecoveryContext): boolean; var StopAt : TTokens; + Obj : TObject; + begin Inc(FErrorCount); Result:=FErrorCount