Commit 670fb6b
authored
compiler: implement pos-only mode for implicit spaces (#602)
Implement a "pos-only" mode for implicit space skipping. In pos-only
mode, we don't build a CST, do failure recording, etc. This results in a
significant performance improvement.
**Before**
```
$ bin/es5bench-wasm
Compile: 66ms
......
JS match: 3312.9ms ± 284.9ms (n=3)
Wasm match: 79.1ms ± 26.7ms (n=3)
Wasm vs JS match: 41.9x
Wasm memory: 174.0MB
```
**After**
```
$ bin/es5bench-wasm
Compile: 57ms
......
JS match: 3311.9ms ± 113.2ms (n=3)
Wasm match: 55.8ms ± 15.7ms (n=3)
Wasm vs JS match: 59.3x
Wasm memory: 87.0MB
```1 parent 35e4185 commit 670fb6b
4 files changed
Lines changed: 133 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
299 | 299 | | |
300 | 300 | | |
301 | 301 | | |
| 302 | + | |
| 303 | + | |
302 | 304 | | |
303 | 305 | | |
304 | 306 | | |
| |||
307 | 309 | | |
308 | 310 | | |
309 | 311 | | |
310 | | - | |
311 | | - | |
312 | | - | |
| 312 | + | |
313 | 313 | | |
314 | | - | |
315 | 314 | | |
316 | 315 | | |
317 | 316 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
254 | 254 | | |
255 | 255 | | |
256 | 256 | | |
| 257 | + | |
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
| |||
281 | 282 | | |
282 | 283 | | |
283 | 284 | | |
| 285 | + | |
284 | 286 | | |
285 | 287 | | |
286 | 288 | | |
| |||
627 | 629 | | |
628 | 630 | | |
629 | 631 | | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
630 | 635 | | |
631 | 636 | | |
632 | 637 | | |
| |||
707 | 712 | | |
708 | 713 | | |
709 | 714 | | |
| 715 | + | |
710 | 716 | | |
711 | 717 | | |
712 | 718 | | |
| |||
810 | 816 | | |
811 | 817 | | |
812 | 818 | | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
813 | 823 | | |
814 | 824 | | |
815 | 825 | | |
| |||
822 | 832 | | |
823 | 833 | | |
824 | 834 | | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
825 | 839 | | |
826 | 840 | | |
827 | 841 | | |
| |||
833 | 847 | | |
834 | 848 | | |
835 | 849 | | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
836 | 854 | | |
837 | 855 | | |
838 | 856 | | |
| |||
854 | 872 | | |
855 | 873 | | |
856 | 874 | | |
| 875 | + | |
857 | 876 | | |
858 | 877 | | |
859 | 878 | | |
860 | 879 | | |
| 880 | + | |
861 | 881 | | |
862 | 882 | | |
863 | 883 | | |
864 | 884 | | |
865 | 885 | | |
866 | 886 | | |
867 | 887 | | |
| 888 | + | |
868 | 889 | | |
869 | 890 | | |
870 | 891 | | |
| |||
875 | 896 | | |
876 | 897 | | |
877 | 898 | | |
| 899 | + | |
878 | 900 | | |
879 | 901 | | |
880 | 902 | | |
| |||
1262 | 1284 | | |
1263 | 1285 | | |
1264 | 1286 | | |
1265 | | - | |
| 1287 | + | |
1266 | 1288 | | |
| 1289 | + | |
1267 | 1290 | | |
1268 | | - | |
| 1291 | + | |
1269 | 1292 | | |
1270 | 1293 | | |
1271 | 1294 | | |
| |||
1605 | 1628 | | |
1606 | 1629 | | |
1607 | 1630 | | |
1608 | | - | |
1609 | | - | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
1610 | 1634 | | |
1611 | | - | |
| 1635 | + | |
1612 | 1636 | | |
1613 | 1637 | | |
1614 | 1638 | | |
| |||
1617 | 1641 | | |
1618 | 1642 | | |
1619 | 1643 | | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
1620 | 1648 | | |
1621 | 1649 | | |
1622 | 1650 | | |
| |||
1772 | 1800 | | |
1773 | 1801 | | |
1774 | 1802 | | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
1775 | 1809 | | |
1776 | 1810 | | |
1777 | 1811 | | |
| |||
2009 | 2043 | | |
2010 | 2044 | | |
2011 | 2045 | | |
2012 | | - | |
| 2046 | + | |
2013 | 2047 | | |
2014 | 2048 | | |
2015 | 2049 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
215 | 257 | | |
216 | 258 | | |
217 | 259 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
57 | 71 | | |
58 | 72 | | |
59 | 73 | | |
| |||
199 | 213 | | |
200 | 214 | | |
201 | 215 | | |
| 216 | + | |
| 217 | + | |
202 | 218 | | |
203 | 219 | | |
204 | 220 | | |
| |||
319 | 335 | | |
320 | 336 | | |
321 | 337 | | |
| 338 | + | |
322 | 339 | | |
323 | 340 | | |
324 | 341 | | |
| 342 | + | |
325 | 343 | | |
326 | 344 | | |
327 | 345 | | |
| |||
363 | 381 | | |
364 | 382 | | |
365 | 383 | | |
| 384 | + | |
366 | 385 | | |
367 | 386 | | |
368 | 387 | | |
| |||
417 | 436 | | |
418 | 437 | | |
419 | 438 | | |
| 439 | + | |
420 | 440 | | |
421 | 441 | | |
422 | 442 | | |
| |||
425 | 445 | | |
426 | 446 | | |
427 | 447 | | |
428 | | - | |
| 448 | + | |
429 | 449 | | |
430 | 450 | | |
431 | 451 | | |
| |||
449 | 469 | | |
450 | 470 | | |
451 | 471 | | |
| 472 | + | |
452 | 473 | | |
453 | 474 | | |
454 | 475 | | |
| |||
532 | 553 | | |
533 | 554 | | |
534 | 555 | | |
535 | | - | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
536 | 562 | | |
537 | 563 | | |
538 | 564 | | |
539 | 565 | | |
| 566 | + | |
540 | 567 | | |
541 | 568 | | |
542 | 569 | | |
| |||
663 | 690 | | |
664 | 691 | | |
665 | 692 | | |
| 693 | + | |
| 694 | + | |
666 | 695 | | |
667 | 696 | | |
668 | 697 | | |
669 | 698 | | |
670 | 699 | | |
671 | 700 | | |
672 | 701 | | |
673 | | - | |
674 | | - | |
| 702 | + | |
| 703 | + | |
675 | 704 | | |
676 | 705 | | |
677 | 706 | | |
| |||
686 | 715 | | |
687 | 716 | | |
688 | 717 | | |
689 | | - | |
690 | | - | |
| 718 | + | |
| 719 | + | |
691 | 720 | | |
692 | 721 | | |
693 | | - | |
| 722 | + | |
694 | 723 | | |
695 | 724 | | |
696 | | - | |
| 725 | + | |
697 | 726 | | |
698 | 727 | | |
699 | 728 | | |
700 | | - | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
701 | 736 | | |
702 | 737 | | |
703 | 738 | | |
| |||
713 | 748 | | |
714 | 749 | | |
715 | 750 | | |
716 | | - | |
717 | | - | |
| 751 | + | |
718 | 752 | | |
719 | 753 | | |
720 | 754 | | |
721 | 755 | | |
722 | | - | |
| 756 | + | |
723 | 757 | | |
724 | 758 | | |
725 | 759 | | |
| |||
824 | 858 | | |
825 | 859 | | |
826 | 860 | | |
827 | | - | |
| 861 | + | |
| 862 | + | |
828 | 863 | | |
829 | 864 | | |
830 | 865 | | |
| |||
0 commit comments