Commit 8d11968
fix: preserve multi-byte UTF-8 characters in CSS encapsulation (#192)
The CSS encapsulation code used `bytes[i] as char` to copy characters,
which treats each byte of a multi-byte UTF-8 sequence as a separate
Latin-1 codepoint. This corrupted non-ASCII characters (e.g. bullet •)
that appear after Sass compiles CSS escape sequences like `\2022`.
Replace all 13 instances with `push_utf8_char()` which reads the UTF-8
character width from the leading byte and copies the full character.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 290ef12 commit 8d11968
File tree
2 files changed
+85
-26
lines changed- crates/oxc_angular_compiler
- src/styles
- tests
2 files changed
+85
-26
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
36 | 58 | | |
37 | 59 | | |
38 | 60 | | |
| |||
101 | 123 | | |
102 | 124 | | |
103 | 125 | | |
104 | | - | |
105 | | - | |
| 126 | + | |
106 | 127 | | |
107 | 128 | | |
108 | 129 | | |
| |||
125 | 146 | | |
126 | 147 | | |
127 | 148 | | |
128 | | - | |
129 | | - | |
| 149 | + | |
130 | 150 | | |
131 | 151 | | |
132 | 152 | | |
| |||
349 | 369 | | |
350 | 370 | | |
351 | 371 | | |
352 | | - | |
353 | | - | |
| 372 | + | |
354 | 373 | | |
355 | 374 | | |
356 | 375 | | |
| |||
505 | 524 | | |
506 | 525 | | |
507 | 526 | | |
508 | | - | |
509 | | - | |
| 527 | + | |
510 | 528 | | |
511 | 529 | | |
512 | 530 | | |
| |||
571 | 589 | | |
572 | 590 | | |
573 | 591 | | |
574 | | - | |
575 | | - | |
| 592 | + | |
576 | 593 | | |
577 | 594 | | |
578 | 595 | | |
| |||
627 | 644 | | |
628 | 645 | | |
629 | 646 | | |
630 | | - | |
631 | | - | |
| 647 | + | |
632 | 648 | | |
633 | 649 | | |
634 | 650 | | |
| |||
655 | 671 | | |
656 | 672 | | |
657 | 673 | | |
658 | | - | |
659 | | - | |
| 674 | + | |
660 | 675 | | |
661 | 676 | | |
662 | 677 | | |
| |||
2581 | 2596 | | |
2582 | 2597 | | |
2583 | 2598 | | |
2584 | | - | |
2585 | | - | |
| 2599 | + | |
2586 | 2600 | | |
2587 | 2601 | | |
2588 | 2602 | | |
| |||
2640 | 2654 | | |
2641 | 2655 | | |
2642 | 2656 | | |
2643 | | - | |
2644 | | - | |
| 2657 | + | |
2645 | 2658 | | |
2646 | 2659 | | |
2647 | 2660 | | |
| |||
2762 | 2775 | | |
2763 | 2776 | | |
2764 | 2777 | | |
2765 | | - | |
2766 | | - | |
| 2778 | + | |
2767 | 2779 | | |
2768 | 2780 | | |
2769 | 2781 | | |
| |||
3048 | 3060 | | |
3049 | 3061 | | |
3050 | 3062 | | |
3051 | | - | |
3052 | | - | |
| 3063 | + | |
3053 | 3064 | | |
3054 | 3065 | | |
3055 | 3066 | | |
| |||
3097 | 3108 | | |
3098 | 3109 | | |
3099 | 3110 | | |
3100 | | - | |
3101 | | - | |
| 3111 | + | |
3102 | 3112 | | |
3103 | 3113 | | |
3104 | 3114 | | |
| |||
3147 | 3157 | | |
3148 | 3158 | | |
3149 | 3159 | | |
3150 | | - | |
3151 | | - | |
| 3160 | + | |
3152 | 3161 | | |
3153 | 3162 | | |
3154 | 3163 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
290 | 290 | | |
291 | 291 | | |
292 | 292 | | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
293 | 343 | | |
294 | 344 | | |
295 | 345 | | |
| |||
0 commit comments