mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 02:32:51 +02:00
pastojs: Unicode character constants outside of BMP
git-svn-id: trunk@39126 -
This commit is contained in:
parent
df71ab3ecf
commit
a452e2dd5f
@ -3944,13 +3944,21 @@ begin
|
||||
'A'..'F': u:=u*16+ord(c)-ord('A')+10;
|
||||
else break;
|
||||
end;
|
||||
if u>$ffff then
|
||||
if u>$10FFFF then
|
||||
RangeError(20170523115712);
|
||||
inc(p);
|
||||
until false;
|
||||
if p=StartP then
|
||||
RaiseInternalError(20170207164956);
|
||||
AddHash(u);
|
||||
if u>$ffff then
|
||||
begin
|
||||
// split into two
|
||||
dec(u,$10000);
|
||||
AddHash($D800+(u shr 10));
|
||||
AddHash($DC00+(u and $3ff));
|
||||
end
|
||||
else
|
||||
AddHash(u);
|
||||
end
|
||||
else
|
||||
begin
|
||||
|
@ -4083,25 +4083,27 @@ end;
|
||||
procedure TTestResolver.TestStringOperators;
|
||||
begin
|
||||
StartProgram(false);
|
||||
Add('var');
|
||||
Add(' i,j:string;');
|
||||
Add(' k:char;');
|
||||
Add(' w:widechar;');
|
||||
Add('begin');
|
||||
Add(' i:='''';');
|
||||
Add(' i:=''''+'''';');
|
||||
Add(' i:=k+'''';');
|
||||
Add(' i:=''''+k;');
|
||||
Add(' i:=''a''+j;');
|
||||
Add(' i:=''abc''+j;');
|
||||
Add(' k:=#65;');
|
||||
Add(' k:=#$42;');
|
||||
Add(' k:=''a'';');
|
||||
Add(' k:='''''''';');
|
||||
Add(' k:=j[1];');
|
||||
Add(' w:=k;');
|
||||
Add(' w:=#66;');
|
||||
Add(' w:=#6666;');
|
||||
Add([
|
||||
'var',
|
||||
' i,j:string;',
|
||||
' k:char;',
|
||||
' w:widechar;',
|
||||
'begin',
|
||||
' i:='''';',
|
||||
' i:=''''+'''';',
|
||||
' i:=k+'''';',
|
||||
' i:=''''+k;',
|
||||
' i:=''a''+j;',
|
||||
' i:=''abc''+j;',
|
||||
' k:=#65;',
|
||||
' k:=#$42;',
|
||||
' k:=''a'';',
|
||||
' k:='''''''';',
|
||||
' k:=j[1];',
|
||||
' w:=k;',
|
||||
' w:=#66;',
|
||||
' w:=#6666;',
|
||||
'']);
|
||||
ParseProgram;
|
||||
end;
|
||||
|
||||
|
@ -5597,6 +5597,8 @@ begin
|
||||
' s:=''foo''#13''bar'';',
|
||||
' s:=''"'';',
|
||||
' s:=''"''''"'';',
|
||||
' s:=#$20AC;', // euro
|
||||
' s:=#$10437;', //
|
||||
' s:=default(string);',
|
||||
'']);
|
||||
ConvertProgram;
|
||||
@ -5612,6 +5614,8 @@ begin
|
||||
'$mod.s="foo\rbar";',
|
||||
'$mod.s=''"'';',
|
||||
'$mod.s=''"\''"'';',
|
||||
'$mod.s="€";',
|
||||
'$mod.s="'#$F0#$90#$90#$B7'";',
|
||||
'$mod.s="";'
|
||||
]));
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user