@@ -464,24 +464,23 @@ let scanEscape scanner =
464
464
next scanner
465
465
done ;
466
466
let c = ! x in
467
- if Res_utf8. isValidCodePoint c then Char. unsafe_chr c
468
- else Char. unsafe_chr Res_utf8. repl
467
+ if Res_utf8. isValidCodePoint c then c else Res_utf8. repl
469
468
in
470
469
let codepoint =
471
470
match scanner.ch with
472
471
| '0' .. '9' -> convertNumber scanner ~n: 3 ~base: 10
473
472
| 'b' ->
474
473
next scanner;
475
- '\008'
474
+ 8
476
475
| 'n' ->
477
476
next scanner;
478
- '\010'
477
+ 10
479
478
| 'r' ->
480
479
next scanner;
481
- '\013'
480
+ 13
482
481
| 't' ->
483
482
next scanner;
484
- '\ 009'
483
+ 009
485
484
| 'x' ->
486
485
next scanner;
487
486
convertNumber scanner ~n: 2 ~base: 16
@@ -508,14 +507,13 @@ let scanEscape scanner =
508
507
| '}' -> next scanner
509
508
| _ -> () );
510
509
let c = ! x in
511
- if Res_utf8. isValidCodePoint c then Char. unsafe_chr c
512
- else Char. unsafe_chr Res_utf8. repl
510
+ if Res_utf8. isValidCodePoint c then c else Res_utf8. repl
513
511
| _ ->
514
512
(* unicode escape sequence: '\u007A', exactly 4 hex digits *)
515
513
convertNumber scanner ~n: 4 ~base: 16 )
516
514
| ch ->
517
515
next scanner;
518
- ch
516
+ Char. code ch
519
517
in
520
518
let contents =
521
519
(String. sub [@ doesNotRaise]) scanner.src offset (scanner.offset - offset)
@@ -849,7 +847,10 @@ let rec scan scanner =
849
847
let offset = scanner.offset + 1 in
850
848
next3 scanner;
851
849
Token. Codepoint
852
- {c = ch; original = (String. sub [@ doesNotRaise]) scanner.src offset 1 }
850
+ {
851
+ c = Char. code ch;
852
+ original = (String. sub [@ doesNotRaise]) scanner.src offset 1 ;
853
+ }
853
854
| ch , _ ->
854
855
next scanner;
855
856
let offset = scanner.offset in
@@ -865,7 +866,7 @@ let rec scan scanner =
865
866
(String. sub [@ doesNotRaise]) scanner.src offset length
866
867
in
867
868
next scanner;
868
- Token. Codepoint {c = Obj. magic codepoint; original = contents})
869
+ Token. Codepoint {c = codepoint; original = contents})
869
870
else (
870
871
scanner.ch < - ch;
871
872
scanner.offset < - offset;
0 commit comments