summaryrefslogtreecommitdiff
path: root/localrepo/js2-mode-20231224.tar
blob: 274d4c8da982dc28811ebb9666e1866ee7c22270 (plain)
ofshex dumpascii
0000 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 js2-mode-20231224/..............
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 30 33 32 00 20 35 00 00 00 0000000.00000000000.012032..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 67 69 74 68 75 62 2f 00 00 00 00 00 00 js2-mode-20231224/.github/......
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0280 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 37 32 00 20 35 00 00 00 0000000.00000000000.013372..5...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 67 69 74 68 75 62 2f 46 55 4e 44 49 4e js2-mode-20231224/.github/FUNDIN
0420 47 2e 79 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G.yml...........................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0480 30 30 30 30 30 31 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 32 30 35 00 20 30 00 00 00 0000017.00000000000.015205..0...
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 67 69 74 68 75 62 3a 20 64 67 75 74 6f 76 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 github:.dgutov..................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c js2-mode-20231224/.github/workfl
0820 6f 77 73 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ows/............................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0880 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 32 37 00 20 35 00 00 00 0000000.00000000000.015427..5...
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c js2-mode-20231224/.github/workfl
0a20 6f 77 73 2f 74 65 73 74 2e 79 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ows/test.yml....................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0a80 30 30 30 31 32 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 31 32 35 00 20 30 00 00 00 0001221.00000000000.017125..0...
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 6e 61 6d 65 3a 20 43 49 0a 0a 6f 6e 3a 0a 20 20 70 75 6c 6c 5f 72 65 71 75 65 73 74 3a 0a 20 20 name:.CI..on:...pull_request:...
0c20 20 20 70 61 74 68 73 3a 0a 20 20 20 20 20 20 2d 20 27 2a 2a 2e 65 6c 27 0a 20 20 20 20 20 20 2d ..paths:.......-.'**.el'.......-
0c40 20 27 2a 2a 2e 79 6d 6c 27 0a 20 20 20 20 20 20 2d 20 27 4d 61 6b 65 66 69 6c 65 27 0a 20 20 70 .'**.yml'.......-.'Makefile'...p
0c60 75 73 68 3a 0a 20 20 20 20 70 61 74 68 73 3a 0a 20 20 20 20 20 20 2d 20 27 2a 2a 2e 65 6c 27 0a ush:.....paths:.......-.'**.el'.
0c80 20 20 20 20 20 20 2d 20 27 2a 2a 2e 79 6d 6c 27 0a 20 20 20 20 20 20 2d 20 27 4d 61 6b 65 66 69 ......-.'**.yml'.......-.'Makefi
0ca0 6c 65 27 0a 0a 6a 6f 62 73 3a 0a 20 20 74 65 73 74 3a 0a 20 20 20 20 69 66 3a 20 67 69 74 68 75 le'..jobs:...test:.....if:.githu
0cc0 62 2e 72 65 70 6f 73 69 74 6f 72 79 5f 6f 77 6e 65 72 20 3d 3d 20 27 6d 6f 6f 7a 27 0a 20 20 20 b.repository_owner.==.'mooz'....
0ce0 20 72 75 6e 73 2d 6f 6e 3a 20 75 62 75 6e 74 75 2d 6c 61 74 65 73 74 0a 20 20 20 20 73 74 72 61 .runs-on:.ubuntu-latest.....stra
0d00 74 65 67 79 3a 0a 20 20 20 20 20 20 6d 61 74 72 69 78 3a 0a 20 20 20 20 20 20 20 20 65 6d 61 63 tegy:.......matrix:.........emac
0d20 73 5f 76 65 72 73 69 6f 6e 3a 0a 20 20 20 20 20 20 20 20 20 20 2d 20 32 35 2e 31 0a 20 20 20 20 s_version:...........-.25.1.....
0d40 20 20 20 20 20 20 2d 20 32 36 2e 33 0a 20 20 20 20 20 20 20 20 20 20 2d 20 32 37 2e 32 0a 20 20 ......-.26.3...........-.27.2...
0d60 20 20 20 20 20 20 20 20 2d 20 73 6e 61 70 73 68 6f 74 0a 20 20 20 20 73 74 65 70 73 3a 0a 20 20 ........-.snapshot.....steps:...
0d80 20 20 2d 20 6e 61 6d 65 3a 20 53 65 74 20 75 70 20 45 6d 61 63 73 0a 20 20 20 20 20 20 75 73 65 ..-.name:.Set.up.Emacs.......use
0da0 73 3a 20 70 75 72 63 65 6c 6c 2f 73 65 74 75 70 2d 65 6d 61 63 73 40 6d 61 73 74 65 72 0a 20 20 s:.purcell/setup-emacs@master...
0dc0 20 20 20 20 77 69 74 68 3a 0a 20 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 3a 20 24 7b 7b 6d 61 ....with:.........version:.${{ma
0de0 74 72 69 78 2e 65 6d 61 63 73 5f 76 65 72 73 69 6f 6e 7d 7d 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 trix.emacs_version}}......-.name
0e00 3a 20 43 68 65 63 6b 20 6f 75 74 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 0a 20 20 20 20 :.Check.out.the.source.code.....
0e20 20 20 75 73 65 73 3a 20 61 63 74 69 6f 6e 73 2f 63 68 65 63 6b 6f 75 74 40 76 32 0a 0a 20 20 20 ..uses:.actions/checkout@v2.....
0e40 20 2d 20 6e 61 6d 65 3a 20 54 65 73 74 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 .-.name:.Test.the.project.......
0e60 72 75 6e 3a 20 7c 0a 20 20 20 20 20 20 20 20 65 6d 61 63 73 20 2d 2d 76 65 72 73 69 6f 6e 0a 20 run:.|.........emacs.--version..
0e80 20 20 20 20 20 20 20 6d 61 6b 65 20 74 65 73 74 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .......make.test................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 6a 73 32 2d 6d 6f 64 65 2e 65 6c 00 00 00 js2-mode-20231224/js2-mode.el...
1020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
1080 31 37 37 31 37 32 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 31 37 00 20 30 00 00 00 1771724.00000000000.014017..0...
10a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
1120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
1140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 3b 3b 3b 20 6a 73 32 2d 6d 6f 64 65 2e 65 6c 20 2d 2d 2d 20 49 6d 70 72 6f 76 65 64 20 4a 61 76 ;;;.js2-mode.el.---.Improved.Jav
1220 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 20 6d 6f 64 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c aScript.editing.mode.-*-.lexical
1240 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 -binding:.t.-*-..;;.Copyright.(C
1260 29 20 32 30 30 39 2c 20 32 30 31 31 2d 32 30 32 33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ).2009,.2011-2023..Free.Software
1280 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 53 74 .Foundation,.Inc...;;.Author:.St
12a0 65 76 65 20 59 65 67 67 65 20 3c 73 74 65 76 65 2e 79 65 67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d eve.Yegge.<steve.yegge@gmail.com
12c0 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 6d 6f 6f 7a 20 3c 73 74 69 6c 6c 70 65 64 61 6e 74 40 67 >.;;.........mooz.<stillpedant@g
12e0 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 44 6d 69 74 72 79 20 47 75 74 6f mail.com>.;;.........Dmitry.Guto
1300 76 20 3c 64 67 75 74 6f 76 40 79 61 6e 64 65 78 2e 72 75 3e 0a 3b 3b 20 55 52 4c 3a 20 20 68 74 v.<dgutov@yandex.ru>.;;.URL:..ht
1320 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 0a tps://github.com/mooz/js2-mode/.
1340 3b 3b 20 20 20 20 20 20 20 68 74 74 70 3a 2f 2f 63 6f 64 65 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f ;;.......http://code.google.com/
1360 70 2f 6a 73 32 2d 6d 6f 64 65 2f 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 32 30 32 33 31 32 32 34 p/js2-mode/.;;.Version:.20231224
1380 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 61 6e 67 75 61 67 65 73 2c 20 6a 61 76 61 73 63 72 .;;.Keywords:.languages,.javascr
13a0 69 70 74 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 ipt.;;.Package-Requires:.((emacs
13c0 20 22 32 34 2e 31 22 29 20 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 29 0a 0a 3b 3b 20 54 68 69 ."24.1").(cl-lib."0.5"))..;;.Thi
13e0 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b s.file.is.part.of.GNU.Emacs...;;
1400 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 .GNU.Emacs.is.free.software:.you
1420 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 .can.redistribute.it.and/or.modi
1440 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 fy.;;.it.under.the.terms.of.the.
1460 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 GNU.General.Public.License.as.pu
1480 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 blished.by.;;.the.Free.Software.
14a0 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 Foundation,.either.version.3.of.
14c0 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 the.License,.or.;;.(at.your.opti
14e0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45 on).any.later.version...;;.GNU.E
1500 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 macs.is.distributed.in.the.hope.
1520 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
1540 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
1560 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
1580 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
15a0 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
15c0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
15e0 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 e.details...;;.You.should.have.r
1600 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 eceived.a.copy.of.the.GNU.Genera
1620 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 l.Public.License.;;.along.with.G
1640 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 NU.Emacs...If.not,.see.<http://w
1660 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d ww.gnu.org/licenses/>...;;;.Comm
1680 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 4a 61 76 61 53 63 72 69 70 74 20 65 64 69 74 entary:..;;.This.JavaScript.edit
16a0 69 6e 67 20 6d 6f 64 65 20 73 75 70 70 6f 72 74 73 3a 0a 0a 3b 3b 20 20 2d 20 73 74 72 69 63 74 ing.mode.supports:..;;..-.strict
16c0 20 72 65 63 6f 67 6e 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 45 63 6d 61 2d 32 36 32 20 6c 61 6e .recognition.of.the.Ecma-262.lan
16e0 67 75 61 67 65 20 73 74 61 6e 64 61 72 64 0a 3b 3b 20 20 2d 20 73 75 70 70 6f 72 74 20 66 6f 72 guage.standard.;;..-.support.for
1700 20 6d 6f 73 74 20 52 68 69 6e 6f 20 61 6e 64 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 65 78 74 .most.Rhino.and.SpiderMonkey.ext
1720 65 6e 73 69 6f 6e 73 20 66 72 6f 6d 20 31 2e 35 20 61 6e 64 20 75 70 0a 3b 3b 20 20 2d 20 70 61 ensions.from.1.5.and.up.;;..-.pa
1740 72 73 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 43 4d 41 53 63 72 69 70 74 20 66 6f 72 rsing.support.for.ECMAScript.for
1760 20 58 4d 4c 20 28 45 34 58 2c 20 45 43 4d 41 2d 33 35 37 29 0a 3b 3b 20 20 2d 20 61 63 63 75 72 .XML.(E4X,.ECMA-357).;;..-.accur
1780 61 74 65 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 75 73 69 6e 67 20 61 20 ate.syntax.highlighting.using.a.
17a0 72 65 63 75 72 73 69 76 65 2d 64 65 73 63 65 6e 74 20 70 61 72 73 65 72 0a 3b 3b 20 20 2d 20 6f recursive-descent.parser.;;..-.o
17c0 6e 2d 74 68 65 2d 66 6c 79 20 72 65 70 6f 72 74 69 6e 67 20 6f 66 20 73 79 6e 74 61 78 20 65 72 n-the-fly.reporting.of.syntax.er
17e0 72 6f 72 73 20 61 6e 64 20 73 74 72 69 63 74 2d 6d 6f 64 65 20 77 61 72 6e 69 6e 67 73 0a 3b 3b rors.and.strict-mode.warnings.;;
1800 20 20 2d 20 75 6e 64 65 63 6c 61 72 65 64 2d 76 61 72 69 61 62 6c 65 20 77 61 72 6e 69 6e 67 73 ..-.undeclared-variable.warnings
1820 20 75 73 69 6e 67 20 61 20 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 65 78 74 65 72 6e 73 20 66 72 .using.a.configurable.externs.fr
1840 61 6d 65 77 6f 72 6b 0a 3b 3b 20 20 2d 20 22 62 6f 75 6e 63 69 6e 67 22 20 6c 69 6e 65 20 69 6e amework.;;..-."bouncing".line.in
1860 64 65 6e 74 61 74 69 6f 6e 20 74 6f 20 63 68 6f 6f 73 65 20 61 6d 6f 6e 67 20 61 6c 74 65 72 6e dentation.to.choose.among.altern
1880 61 74 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 73 0a 3b 3b 20 20 2d 20 73 6d 61 ate.indentation.points.;;..-.sma
18a0 72 74 20 6c 69 6e 65 2d 77 72 61 70 70 69 6e 67 20 77 69 74 68 69 6e 20 63 6f 6d 6d 65 6e 74 73 rt.line-wrapping.within.comments
18c0 20 61 6e 64 20 73 74 72 69 6e 67 73 0a 3b 3b 20 20 2d 20 63 6f 64 65 20 66 6f 6c 64 69 6e 67 3a .and.strings.;;..-.code.folding:
18e0 0a 3b 3b 20 20 20 20 2d 20 73 68 6f 77 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 66 75 6e 63 74 69 .;;....-.show.some.or.all.functi
1900 6f 6e 20 62 6f 64 69 65 73 20 61 73 20 7b 2e 2e 2e 7d 0a 3b 3b 20 20 20 20 2d 20 73 68 6f 77 20 on.bodies.as.{...}.;;....-.show.
1920 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 61 73 20 2f 2a some.or.all.block.comments.as./*
1940 2e 2e 2e 2a 2f 0a 3b 3b 20 20 2d 20 63 6f 6e 74 65 78 74 2d 73 65 6e 73 69 74 69 76 65 20 6d 65 ...*/.;;..-.context-sensitive.me
1960 6e 75 20 62 61 72 20 61 6e 64 20 70 6f 70 75 70 20 6d 65 6e 75 73 0a 3b 3b 20 20 2d 20 63 6f 64 nu.bar.and.popup.menus.;;..-.cod
1980 65 20 62 72 6f 77 73 69 6e 67 20 75 73 69 6e 67 20 74 68 65 20 60 69 6d 65 6e 75 27 20 70 61 63 e.browsing.using.the.`imenu'.pac
19a0 6b 61 67 65 0a 3b 3b 20 20 2d 20 6d 61 6e 79 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 kage.;;..-.many.customization.op
19c0 74 69 6f 6e 73 0a 0a 3b 3b 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 0a 3b 3b 0a 3b 3b 20 54 6f tions..;;.Installation:.;;.;;.To
19e0 20 69 6e 73 74 61 6c 6c 20 69 74 20 61 73 20 79 6f 75 72 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 .install.it.as.your.major.mode.f
1a00 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 3a 0a 0a 3b 3b 20 20 20 28 61 64 or.JavaScript.editing:..;;...(ad
1a20 64 2d 74 6f 2d 6c 69 73 74 20 27 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 5c 5c d-to-list.'auto-mode-alist.'("\\
1a40 2e 6a 73 5c 5c 27 22 20 2e 20 6a 73 32 2d 6d 6f 64 65 29 29 0a 0a 3b 3b 20 41 6c 74 65 72 6e 61 .js\\'"...js2-mode))..;;.Alterna
1a60 74 69 76 65 6c 79 2c 20 74 6f 20 69 6e 73 74 61 6c 6c 20 69 74 20 61 73 20 61 20 6d 69 6e 6f 72 tively,.to.install.it.as.a.minor
1a80 20 6d 6f 64 65 20 6a 75 73 74 20 66 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 6c 69 6e 74 69 6e .mode.just.for.JavaScript.lintin
1aa0 67 2c 0a 3b 3b 20 79 6f 75 20 6d 75 73 74 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 61 70 70 g,.;;.you.must.add.it.to.the.app
1ac0 72 6f 70 72 69 61 74 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 68 6f 6f 6b 2e 20 20 4e 6f 72 6d 61 ropriate.major-mode.hook...Norma
1ae0 6c 6c 79 20 74 68 69 73 20 77 6f 75 6c 64 20 62 65 3a 0a 0a 3b 3b 20 20 20 28 61 64 64 2d 68 6f lly.this.would.be:..;;...(add-ho
1b00 6f 6b 20 27 6a 73 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 ok.'js-mode-hook.'js2-minor-mode
1b20 29 0a 0a 3b 3b 20 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 77 61 6e 74 20 74 6f 20 68 6f 6f 6b 20 )..;;.You.may.also.want.to.hook.
1b40 69 74 20 69 6e 20 66 6f 72 20 73 68 65 6c 6c 20 73 63 72 69 70 74 73 20 72 75 6e 6e 69 6e 67 20 it.in.for.shell.scripts.running.
1b60 76 69 61 20 6e 6f 64 65 2e 6a 73 3a 0a 0a 3b 3b 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 via.node.js:..;;...(add-to-list.
1b80 27 69 6e 74 65 72 70 72 65 74 65 72 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 6e 6f 64 65 22 'interpreter-mode-alist.'("node"
1ba0 20 2e 20 6a 73 32 2d 6d 6f 64 65 29 29 0a 0a 3b 3b 20 55 73 65 20 45 6d 61 63 73 20 32 37 20 61 ...js2-mode))..;;.Use.Emacs.27.a
1bc0 6e 64 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65 20 4a 53 58 3f 20 20 54 68 65 6e 20 75 73 65 20 nd.want.to.write.JSX?..Then.use.
1be0 60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 61 73 20 64 65 73 63 72 69 62 65 64 0a 3b 3b `js2-minor-mode'.as.described.;;
1c00 20 61 62 6f 76 65 2e 20 20 55 73 65 20 45 6d 61 63 73 20 32 36 20 6f 72 20 65 61 72 6c 69 65 72 .above...Use.Emacs.26.or.earlier
1c20 3f 20 20 54 68 65 6e 20 75 73 65 20 60 6a 73 32 2d 6a 73 78 2d 6d 6f 64 65 27 3a 0a 0a 3b 3b 20 ?..Then.use.`js2-jsx-mode':..;;.
1c40 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 ..(add-to-list.'auto-mode-alist.
1c60 27 28 22 5c 5c 2e 6a 73 78 3f 5c 5c 27 22 20 2e 20 6a 73 32 2d 6a 73 78 2d 6d 6f 64 65 29 29 0a '("\\.jsx?\\'"...js2-jsx-mode)).
1c80 3b 3b 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 69 6e 74 65 72 70 72 65 74 65 72 2d 6d ;;...(add-to-list.'interpreter-m
1ca0 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 6e 6f 64 65 22 20 2e 20 6a 73 32 2d 6a 73 78 2d 6d 6f 64 ode-alist.'("node"...js2-jsx-mod
1cc0 65 29 29 0a 0a 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 6c 69 6e 74 69 6e 67 20 6f 66 20 4a 53 58 e))..;;.Note.that.linting.of.JSX
1ce0 20 63 6f 64 65 20 6d 61 79 20 66 61 69 6c 20 69 6e 20 62 6f 74 68 20 6d 6f 64 65 73 2e 0a 0a 3b .code.may.fail.in.both.modes...;
1d00 3b 20 54 6f 20 63 75 73 74 6f 6d 69 7a 65 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 3a 0a 3b 3b 20 ;.To.customize.how.it.works:.;;.
1d20 20 20 4d 2d 78 20 63 75 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45 54 20 6a 73 32 2d 6d 6f ..M-x.customize-group.RET.js2-mo
1d40 64 65 20 52 45 54 0a 0a 3b 3b 20 4e 6f 74 65 73 3a 0a 0a 3b 3b 20 54 68 69 73 20 6d 6f 64 65 20 de.RET..;;.Notes:..;;.This.mode.
1d60 69 6e 63 6c 75 64 65 73 20 61 20 70 6f 72 74 20 6f 66 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f includes.a.port.of.Mozilla.Rhino
1d80 27 73 20 73 63 61 6e 6e 65 72 2c 20 70 61 72 73 65 72 20 61 6e 64 0a 3b 3b 20 73 79 6d 62 6f 6c 's.scanner,.parser.and.;;.symbol
1da0 20 74 61 62 6c 65 2e 20 20 49 64 65 61 6c 6c 79 20 69 74 20 73 68 6f 75 6c 64 20 73 74 61 79 20 .table...Ideally.it.should.stay.
1dc0 69 6e 20 73 79 6e 63 20 77 69 74 68 20 52 68 69 6e 6f 2c 20 6b 65 65 70 69 6e 67 0a 3b 3b 20 60 in.sync.with.Rhino,.keeping.;;.`
1de0 6a 73 32 2d 6d 6f 64 65 27 20 63 75 72 72 65 6e 74 20 61 73 20 74 68 65 20 45 63 6d 61 53 63 72 js2-mode'.current.as.the.EcmaScr
1e00 69 70 74 20 6c 61 6e 67 75 61 67 65 20 73 74 61 6e 64 61 72 64 20 65 76 6f 6c 76 65 73 2e 0a 0a ipt.language.standard.evolves...
1e20 3b 3b 20 55 6e 6c 69 6b 65 20 63 63 2d 65 6e 67 69 6e 65 20 62 61 73 65 64 20 6c 61 6e 67 75 61 ;;.Unlike.cc-engine.based.langua
1e40 67 65 20 6d 6f 64 65 73 2c 20 6a 73 32 2d 6d 6f 64 65 27 73 20 6c 69 6e 65 2d 69 6e 64 65 6e 74 ge.modes,.js2-mode's.line-indent
1e60 61 74 69 6f 6e 20 69 73 20 6e 6f 74 0a 3b 3b 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 20 20 49 ation.is.not.;;.customizable...I
1e80 74 20 69 73 20 61 20 73 75 72 70 72 69 73 69 6e 67 20 61 6d 6f 75 6e 74 20 6f 66 20 77 6f 72 6b t.is.a.surprising.amount.of.work
1ea0 20 74 6f 20 73 75 70 70 6f 72 74 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 0a 3b 3b 20 69 6e 64 65 .to.support.customizable.;;.inde
1ec0 6e 74 61 74 69 6f 6e 2e 20 20 54 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6d 70 72 6f 6d 69 73 65 ntation...The.current.compromise
1ee0 20 69 73 20 74 68 61 74 20 74 68 65 20 74 61 62 20 6b 65 79 20 6c 65 74 73 20 79 6f 75 20 63 79 .is.that.the.tab.key.lets.you.cy
1f00 63 6c 65 20 61 6d 6f 6e 67 0a 3b 3b 20 76 61 72 69 6f 75 73 20 6c 69 6b 65 6c 79 20 69 6e 64 65 cle.among.;;.various.likely.inde
1f20 6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 73 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 62 ntation.points,.similar.to.the.b
1f40 65 68 61 76 69 6f 72 20 6f 66 20 70 79 74 68 6f 6e 2d 6d 6f 64 65 2e 0a 0a 3b 3b 20 54 68 69 73 ehavior.of.python-mode...;;.This
1f60 20 6d 6f 64 65 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20 77 6f 72 6b 20 77 69 74 68 20 22 6d 75 .mode.does.not.yet.work.with."mu
1f80 6c 74 69 2d 6d 6f 64 65 22 20 6d 6f 64 65 73 20 73 75 63 68 20 61 73 20 60 6d 6d 6d 2d 6d 6f 64 lti-mode".modes.such.as.`mmm-mod
1fa0 65 27 0a 3b 3b 20 61 6e 64 20 60 6d 75 6d 61 6d 6f 27 2c 20 61 6c 74 68 6f 75 67 68 20 69 74 20 e'.;;.and.`mumamo',.although.it.
1fc0 63 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 74 6f 20 64 6f 20 73 6f 20 77 69 74 68 20 73 6f 6d 65 could.be.made.to.do.so.with.some
1fe0 20 65 66 66 6f 72 74 2e 0a 3b 3b 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 60 6a 73 32 .effort..;;.This.means.that.`js2
2000 2d 6d 6f 64 65 27 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 66 75 6c 20 -mode'.is.currently.only.useful.
2020 66 6f 72 20 65 64 69 74 69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 0a 3b 3b 20 66 69 6c 65 73 2c for.editing.JavaScript.;;.files,
2040 20 61 6e 64 20 6e 6f 74 20 66 6f 72 20 65 64 69 74 69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20 .and.not.for.editing.JavaScript.
2060 77 69 74 68 69 6e 20 3c 73 63 72 69 70 74 3e 20 74 61 67 73 20 6f 72 20 74 65 6d 70 6c 61 74 65 within.<script>.tags.or.template
2080 73 2e 0a 0a 3b 3b 20 54 68 65 20 70 72 6f 6a 65 63 74 20 70 61 67 65 20 6f 6e 20 47 69 74 48 75 s...;;.The.project.page.on.GitHu
20a0 62 20 69 73 20 75 73 65 64 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 69 73 b.is.used.for.development.and.is
20c0 73 75 65 20 74 72 61 63 6b 69 6e 67 2e 0a 3b 3b 20 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 68 6f sue.tracking..;;.The.original.ho
20e0 6d 65 70 61 67 65 20 61 74 20 47 6f 6f 67 6c 65 20 43 6f 64 65 20 68 61 73 20 6f 75 74 64 61 74 mepage.at.Google.Code.has.outdat
2100 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 69 73 20 6d 6f 73 74 6c 79 0a 3b 3b 20 ed.information.and.is.mostly.;;.
2120 75 6e 6d 61 69 6e 74 61 69 6e 65 64 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 unmaintained...;;;.Code:..(requi
2140 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 69 6d 65 6e 75 29 0a 28 72 65 re.'cl-lib).(require.'imenu).(re
2160 71 75 69 72 65 20 27 6a 73 29 0a 28 72 65 71 75 69 72 65 20 27 65 74 61 67 73 29 0a 0a 28 65 76 quire.'js).(require.'etags)..(ev
2180 61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 69 66 20 28 76 65 72 73 69 6f 6e 3c 20 65 al-and-compile...(if.(version<.e
21a0 6d 61 63 73 2d 76 65 72 73 69 6f 6e 20 22 32 35 2e 30 22 29 0a 20 20 20 20 20 20 28 72 65 71 75 macs-version."25.0").......(requ
21c0 69 72 65 20 27 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74 29 0a 20 20 20 20 28 64 65 66 76 61 72 ire.'js2-old-indent).....(defvar
21e0 61 6c 69 61 73 20 27 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 20 27 6a 73 2d 69 6e 64 65 alias.'js2-basic-offset.'js-inde
2200 6e 74 2d 6c 65 76 65 6c 20 6e 69 6c 29 0a 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32 nt-level.nil).....(defalias.'js2
2220 2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 27 6a 73 2d 2d 70 72 6f 70 65 72 2d -proper-indentation.'js--proper-
2240 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32 2d indentation).....(defalias.'js2-
2260 6a 73 78 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 27 6a 73 2d 6a 73 78 2d 69 6e 64 65 6e 74 2d 6c jsx-indent-line.'js-jsx-indent-l
2280 69 6e 65 29 0a 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c ine).....(defalias.'js2-indent-l
22a0 69 6e 65 20 27 6a 73 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 61 6c 69 ine.'js-indent-line).....(defali
22c0 61 73 20 27 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 27 6a 73 2d 2d 72 as.'js2-re-search-forward.'js--r
22e0 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 29 29 29 0a 0a 3b 3b 3b 20 45 78 74 65 72 6e 73 e-search-forward)))..;;;.Externs
2300 20 28 76 61 72 69 61 62 6c 65 73 20 70 72 65 73 75 6d 65 64 20 74 6f 20 62 65 20 64 65 66 69 6e .(variables.presumed.to.be.defin
2320 65 64 20 62 79 20 74 68 65 20 68 6f 73 74 20 73 79 73 74 65 6d 29 0a 0a 28 64 65 66 76 61 72 20 ed.by.the.host.system)..(defvar.
2340 6a 73 32 2d 65 63 6d 61 2d 32 36 32 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d 61 70 63 61 72 20 27 js2-ecma-262-externs...(mapcar.'
2360 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 41 72 72 61 79 20 42 6f symbol-name...........'(Array.Bo
2380 6f 6c 65 61 6e 20 44 61 74 65 20 45 72 72 6f 72 20 45 76 61 6c 45 72 72 6f 72 20 46 75 6e 63 74 olean.Date.Error.EvalError.Funct
23a0 69 6f 6e 20 49 6e 66 69 6e 69 74 79 20 4a 53 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 4d 61 74 68 ion.Infinity.JSON...........Math
23c0 20 4e 61 4e 20 4e 75 6d 62 65 72 20 4f 62 6a 65 63 74 20 52 61 6e 67 65 45 72 72 6f 72 20 52 65 .NaN.Number.Object.RangeError.Re
23e0 66 65 72 65 6e 63 65 45 72 72 6f 72 20 52 65 67 45 78 70 0a 20 20 20 20 20 20 20 20 20 20 53 74 ferenceError.RegExp...........St
2400 72 69 6e 67 20 53 79 6e 74 61 78 45 72 72 6f 72 20 54 79 70 65 45 72 72 6f 72 20 55 52 49 45 72 ring.SyntaxError.TypeError.URIEr
2420 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 64 65 63 6f 64 65 55 52 49 20 64 65 63 6f 64 65 55 52 ror...........decodeURI.decodeUR
2440 49 43 6f 6d 70 6f 6e 65 6e 74 20 65 6e 63 6f 64 65 55 52 49 0a 20 20 20 20 20 20 20 20 20 20 65 IComponent.encodeURI...........e
2460 6e 63 6f 64 65 55 52 49 43 6f 6d 70 6f 6e 65 6e 74 20 65 73 63 61 70 65 20 65 76 61 6c 20 69 73 ncodeURIComponent.escape.eval.is
2480 46 69 6e 69 74 65 20 69 73 4e 61 4e 0a 20 20 20 20 20 20 20 20 20 20 70 61 72 73 65 46 6c 6f 61 Finite.isNaN...........parseFloa
24a0 74 20 70 61 72 73 65 49 6e 74 20 75 6e 64 65 66 69 6e 65 64 20 75 6e 65 73 63 61 70 65 29 29 0a t.parseInt.undefined.unescape)).
24c0 22 45 63 6d 61 2d 32 36 32 20 65 78 74 65 72 6e 73 2e 20 20 4e 65 76 65 72 20 68 69 67 68 6c 69 "Ecma-262.externs...Never.highli
24e0 67 68 74 65 64 20 61 73 20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 73 2e 22 29 ghted.as.undeclared.variables.")
2500 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 0a 20 20 ..(defvar.js2-browser-externs...
2520 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 (mapcar.'symbol-name...........'
2540 28 3b 3b 20 44 4f 4d 20 6c 65 76 65 6c 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 74 74 72 (;;.DOM.level.1.............Attr
2560 20 43 44 41 54 41 53 65 63 74 69 6f 6e 20 43 68 61 72 61 63 74 65 72 44 61 74 61 20 43 6f 6d 6d .CDATASection.CharacterData.Comm
2580 65 6e 74 20 44 4f 4d 45 78 63 65 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 4f 4d ent.DOMException.............DOM
25a0 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 44 6f 63 75 6d 65 6e 74 20 44 6f 63 75 6d 65 6e 74 Implementation.Document.Document
25c0 46 72 61 67 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 54 79 70 Fragment.............DocumentTyp
25e0 65 20 45 6c 65 6d 65 6e 74 20 45 6e 74 69 74 79 20 45 6e 74 69 74 79 52 65 66 65 72 65 6e 63 65 e.Element.Entity.EntityReference
2600 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 78 63 65 70 74 69 6f 6e 43 6f 64 65 20 4e 61 6d 65 64 .............ExceptionCode.Named
2620 4e 6f 64 65 4d 61 70 20 4e 6f 64 65 20 4e 6f 64 65 4c 69 73 74 20 4e 6f 74 61 74 69 6f 6e 0a 20 NodeMap.Node.NodeList.Notation..
2640 20 20 20 20 20 20 20 20 20 20 20 50 72 6f 63 65 73 73 69 6e 67 49 6e 73 74 72 75 63 74 69 6f 6e ...........ProcessingInstruction
2660 20 54 65 78 74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 4f 4d 20 6c 65 76 65 6c 20 .Text..............;;.DOM.level.
2680 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 41 6e 63 68 6f 72 45 6c 65 6d 65 6e 74 20 2.............HTMLAnchorElement.
26a0 48 54 4d 4c 41 70 70 6c 65 74 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 41 72 65 61 45 6c 65 6d 65 6e HTMLAppletElement.HTMLAreaElemen
26c0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 42 52 45 6c 65 6d 65 6e 74 20 48 54 4d 4c t.............HTMLBRElement.HTML
26e0 42 61 73 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 42 61 73 65 46 6f 6e 74 45 6c 65 6d 65 6e 74 0a BaseElement.HTMLBaseFontElement.
2700 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 42 6f 64 79 45 6c 65 6d 65 6e 74 20 48 54 4d 4c ............HTMLBodyElement.HTML
2720 42 75 74 74 6f 6e 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 43 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 ButtonElement.HTMLCollection....
2740 20 20 20 20 20 20 20 20 20 48 54 4d 4c 44 4c 69 73 74 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 44 69 .........HTMLDListElement.HTMLDi
2760 72 65 63 74 6f 72 79 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 44 69 76 45 6c 65 6d 65 6e 74 0a 20 20 rectoryElement.HTMLDivElement...
2780 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 44 6f 63 75 6d 65 6e 74 20 48 54 4d 4c 45 6c 65 6d 65 ..........HTMLDocument.HTMLEleme
27a0 6e 74 20 48 54 4d 4c 46 69 65 6c 64 53 65 74 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 nt.HTMLFieldSetElement..........
27c0 20 20 20 48 54 4d 4c 46 6f 6e 74 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 46 6f 72 6d 45 6c 65 6d 65 ...HTMLFontElement.HTMLFormEleme
27e0 6e 74 20 48 54 4d 4c 46 72 61 6d 65 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 nt.HTMLFrameElement.............
2800 48 54 4d 4c 46 72 61 6d 65 53 65 74 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 48 52 45 6c 65 6d 65 6e HTMLFrameSetElement.HTMLHRElemen
2820 74 20 48 54 4d 4c 48 65 61 64 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 t.HTMLHeadElement.............HT
2840 4d 4c 48 65 61 64 69 6e 67 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 48 74 6d 6c 45 6c 65 6d 65 6e 74 MLHeadingElement.HTMLHtmlElement
2860 20 48 54 4d 4c 49 46 72 61 6d 65 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 .HTMLIFrameElement.............H
2880 54 4d 4c 49 6d 61 67 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 49 6e 70 75 74 45 6c 65 6d 65 6e 74 TMLImageElement.HTMLInputElement
28a0 20 48 54 4d 4c 49 73 49 6e 64 65 78 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 .HTMLIsIndexElement.............
28c0 48 54 4d 4c 4c 49 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4c 61 62 65 6c 45 6c 65 6d 65 6e 74 20 48 HTMLLIElement.HTMLLabelElement.H
28e0 54 4d 4c 4c 65 67 65 6e 64 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d TMLLegendElement.............HTM
2900 4c 4c 69 6e 6b 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4d 61 70 45 6c 65 6d 65 6e 74 20 48 54 4d 4c LLinkElement.HTMLMapElement.HTML
2920 4d 65 6e 75 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 4d 65 74 61 MenuElement.............HTMLMeta
2940 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4d 6f 64 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4f 4c 69 73 74 Element.HTMLModElement.HTMLOList
2960 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 4f 62 6a 65 63 74 45 6c Element.............HTMLObjectEl
2980 65 6d 65 6e 74 20 48 54 4d 4c 4f 70 74 47 72 6f 75 70 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 ement.HTMLOptGroupElement.......
29a0 20 20 20 20 20 20 48 54 4d 4c 4f 70 74 69 6f 6e 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4f 70 74 69 ......HTMLOptionElement.HTMLOpti
29c0 6f 6e 73 43 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 50 61 onsCollection.............HTMLPa
29e0 72 61 67 72 61 70 68 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 50 61 72 61 6d 45 6c 65 6d 65 6e 74 20 ragraphElement.HTMLParamElement.
2a00 48 54 4d 4c 50 72 65 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 51 HTMLPreElement.............HTMLQ
2a20 75 6f 74 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 53 63 72 69 70 74 45 6c 65 6d 65 6e 74 20 48 54 uoteElement.HTMLScriptElement.HT
2a40 4d 4c 53 65 6c 65 63 74 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c MLSelectElement.............HTML
2a60 53 74 79 6c 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 54 61 62 6c 65 43 61 70 74 69 6f 6e 45 6c 65 StyleElement.HTMLTableCaptionEle
2a80 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 54 61 62 6c 65 43 65 6c 6c 45 6c ment.............HTMLTableCellEl
2aa0 65 6d 65 6e 74 20 48 54 4d 4c 54 61 62 6c 65 43 6f 6c 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 ement.HTMLTableColElement.......
2ac0 20 20 20 20 20 20 48 54 4d 4c 54 61 62 6c 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 54 61 62 6c 65 ......HTMLTableElement.HTMLTable
2ae0 52 6f 77 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 54 61 62 6c 65 RowElement.............HTMLTable
2b00 53 65 63 74 69 6f 6e 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 54 65 78 74 41 72 65 61 45 6c 65 6d 65 SectionElement.HTMLTextAreaEleme
2b20 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 54 69 74 6c 65 45 6c 65 6d 65 6e 74 20 nt.............HTMLTitleElement.
2b40 48 54 4d 4c 55 4c 69 73 74 45 6c 65 6d 65 6e 74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b HTMLUListElement..............;;
2b60 20 44 4f 4d 20 6c 65 76 65 6c 20 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 4f 4d 43 6f 6e 66 .DOM.level.3.............DOMConf
2b80 69 67 75 72 61 74 69 6f 6e 20 44 4f 4d 45 72 72 6f 72 20 44 4f 4d 45 78 63 65 70 74 69 6f 6e 0a iguration.DOMError.DOMException.
2ba0 20 20 20 20 20 20 20 20 20 20 20 20 44 4f 4d 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 4c 69 73 ............DOMImplementationLis
2bc0 74 20 44 4f 4d 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 53 6f 75 72 63 65 0a 20 20 20 20 20 20 t.DOMImplementationSource.......
2be0 20 20 20 20 20 20 44 4f 4d 4c 6f 63 61 74 6f 72 20 44 4f 4d 53 74 72 69 6e 67 4c 69 73 74 20 4e ......DOMLocator.DOMStringList.N
2c00 61 6d 65 4c 69 73 74 20 54 79 70 65 49 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 ameList.TypeInfo.............Use
2c20 72 44 61 74 61 48 61 6e 64 6c 65 72 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 69 6e rDataHandler..............;;.Win
2c40 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 64 6f 77 20 61 6c 65 72 74 20 63 6f 6e dow.............window.alert.con
2c60 66 69 72 6d 20 64 6f 63 75 6d 65 6e 74 20 6a 61 76 61 20 6e 61 76 69 67 61 74 6f 72 20 70 72 6f firm.document.java.navigator.pro
2c80 6d 70 74 20 73 63 72 65 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 20 74 6f 70 20 mpt.screen.............self.top.
2ca0 72 65 71 75 65 73 74 41 6e 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 63 61 6e 63 65 6c 41 6e 69 6d requestAnimationFrame.cancelAnim
2cc0 61 74 69 6f 6e 46 72 61 6d 65 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 69 6e 64 6f ationFrame..............;;.Windo
2ce0 77 20 6f 72 20 57 6f 72 6b 65 72 47 6c 6f 62 61 6c 53 63 6f 70 65 20 77 69 74 68 20 73 75 70 70 w.or.WorkerGlobalScope.with.supp
2d00 6f 72 74 20 69 6e 20 43 68 72 6f 6d 69 75 6d 20 61 6e 64 20 46 69 72 65 66 6f 78 3a 0a 20 20 20 ort.in.Chromium.and.Firefox:....
2d20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f .........;;.https://developer.mo
2d40 7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55 53 2f 64 6f 63 73 2f 57 65 62 2f 41 50 49 2f 57 69 6e zilla.org/en-US/docs/Web/API/Win
2d60 64 6f 77 4f 72 57 6f 72 6b 65 72 47 6c 6f 62 61 6c 53 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 dowOrWorkerGlobalScope..........
2d80 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 63 ...;;.properties.............cac
2da0 68 65 73 20 69 6e 64 65 78 65 64 44 42 20 69 73 53 65 63 75 72 65 43 6f 6e 74 65 78 74 20 6f 72 hes.indexedDB.isSecureContext.or
2dc0 69 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 74 68 6f 64 73 0a 20 20 20 20 igin.............;;.methods.....
2de0 20 20 20 20 20 20 20 20 61 74 6f 62 20 62 74 6f 61 20 63 6c 65 61 72 49 6e 74 65 72 76 61 6c 20 ........atob.btoa.clearInterval.
2e00 63 6c 65 61 72 54 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 72 65 61 74 65 49 clearTimeout.............createI
2e20 6d 61 67 65 42 69 74 6d 61 70 20 66 65 74 63 68 20 71 75 65 75 65 4d 69 63 72 6f 74 61 73 6b 20 mageBitmap.fetch.queueMicrotask.
2e40 73 65 74 49 6e 74 65 72 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 54 69 6d 65 6f setInterval.............setTimeo
2e60 75 74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 72 6f 6d 20 6a 73 6c 69 6e 74 20 22 ut..............;;.from.jslint."
2e80 62 72 6f 77 73 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 20 6c 6f 63 browser".............history.loc
2ea0 61 74 69 6f 6e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 54 4d 4c 20 65 6c 65 6d 65 ation..............;;.HTML.eleme
2ec0 6e 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 75 64 69 nt.constructors.............Audi
2ee0 6f 20 49 6d 61 67 65 20 4f 70 74 69 6f 6e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 o.Image.Option..............;;.W
2f00 33 43 20 43 53 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53 43 68 61 72 73 65 74 52 75 6c 3C.CSS.............CSSCharsetRul
2f20 65 20 43 53 53 46 6f 6e 74 46 61 63 65 20 43 53 53 46 6f 6e 74 46 61 63 65 52 75 6c 65 0a 20 20 e.CSSFontFace.CSSFontFaceRule...
2f40 20 20 20 20 20 20 20 20 20 20 43 53 53 49 6d 70 6f 72 74 52 75 6c 65 20 43 53 53 4d 65 64 69 61 ..........CSSImportRule.CSSMedia
2f60 52 75 6c 65 20 43 53 53 50 61 67 65 52 75 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53 Rule.CSSPageRule.............CSS
2f80 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 20 43 53 53 50 72 6f 70 65 72 74 69 65 73 20 43 53 53 PrimitiveValue.CSSProperties.CSS
2fa0 52 75 6c 65 20 43 53 53 52 75 6c 65 4c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53 Rule.CSSRuleList.............CSS
2fc0 53 74 79 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 20 43 53 53 53 74 79 6c 65 52 75 6c 65 20 43 53 StyleDeclaration.CSSStyleRule.CS
2fe0 53 53 74 79 6c 65 53 68 65 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53 56 61 6c 75 65 SStyleSheet.............CSSValue
3000 20 43 53 53 56 61 6c 75 65 4c 69 73 74 20 43 6f 75 6e 74 65 72 20 44 4f 4d 49 6d 70 6c 65 6d 65 .CSSValueList.Counter.DOMImpleme
3020 6e 74 61 74 69 6f 6e 43 53 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 43 ntationCSS.............DocumentC
3040 53 53 20 44 6f 63 75 6d 65 6e 74 53 74 79 6c 65 20 45 6c 65 6d 65 6e 74 43 53 53 49 6e 6c 69 6e SS.DocumentStyle.ElementCSSInlin
3060 65 53 74 79 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6e 6b 53 74 79 6c 65 20 4d 65 64 eStyle.............LinkStyle.Med
3080 69 61 4c 69 73 74 20 52 47 42 43 6f 6c 6f 72 20 52 65 63 74 20 53 74 79 6c 65 53 68 65 65 74 0a iaList.RGBColor.Rect.StyleSheet.
30a0 20 20 20 20 20 20 20 20 20 20 20 20 53 74 79 6c 65 53 68 65 65 74 4c 69 73 74 20 56 69 65 77 43 ............StyleSheetList.ViewC
30c0 53 53 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 33 43 20 45 76 65 6e 74 0a 20 20 20 SS..............;;.W3C.Event....
30e0 20 20 20 20 20 20 20 20 20 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 20 45 76 65 6e 74 54 61 72 67 .........EventListener.EventTarg
3100 65 74 20 45 76 65 6e 74 20 44 6f 63 75 6d 65 6e 74 45 76 65 6e 74 20 55 49 45 76 65 6e 74 0a 20 et.Event.DocumentEvent.UIEvent..
3120 20 20 20 20 20 20 20 20 20 20 20 4d 6f 75 73 65 45 76 65 6e 74 20 4d 75 74 61 74 69 6f 6e 45 76 ...........MouseEvent.MutationEv
3140 65 6e 74 20 4b 65 79 62 6f 61 72 64 45 76 65 6e 74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b ent.KeyboardEvent..............;
3160 3b 20 57 33 43 20 52 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 ;.W3C.Range.............Document
3180 52 61 6e 67 65 20 52 61 6e 67 65 20 52 61 6e 67 65 45 78 63 65 70 74 69 6f 6e 0a 0a 20 20 20 20 Range.Range.RangeException......
31a0 20 20 20 20 20 20 20 20 3b 3b 20 57 33 43 20 58 4d 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 58 ........;;.W3C.XML.............X
31c0 50 61 74 68 52 65 73 75 6c 74 20 58 4d 4c 48 74 74 70 52 65 71 75 65 73 74 0a 0a 20 20 20 20 20 PathResult.XMLHttpRequest.......
31e0 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 73 6f 6c 65 20 6f 62 6a 65 63 74 2e 20 20 50 72 6f 76 69 .......;;.console.object...Provi
3200 64 65 64 20 62 79 20 61 74 20 6c 65 61 73 74 20 43 68 72 6f 6d 65 20 61 6e 64 20 46 69 72 65 66 ded.by.at.least.Chrome.and.Firef
3220 6f 78 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 29 29 0a 20 20 22 42 72 6f ox..............console))..."Bro
3240 77 73 65 72 20 65 78 74 65 72 6e 73 2e 0a 59 6f 75 20 63 61 6e 20 63 61 75 73 65 20 74 68 65 73 wser.externs..You.can.cause.thes
3260 65 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 6f 72 20 65 78 63 6c 75 64 65 64 20 77 69 74 e.to.be.included.or.excluded.wit
3280 68 20 74 68 65 20 63 75 73 74 6f 6d 0a 76 61 72 69 61 62 6c 65 20 60 6a 73 32 2d 69 6e 63 6c 75 h.the.custom.variable.`js2-inclu
32a0 64 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 de-browser-externs'.")..(defvar.
32c0 6a 73 32 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d 61 70 63 61 72 20 27 73 79 6d js2-rhino-externs...(mapcar.'sym
32e0 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 50 61 63 6b 61 67 65 73 20 69 6d bol-name...........'(Packages.im
3300 70 6f 72 74 43 6c 61 73 73 20 69 6d 70 6f 72 74 50 61 63 6b 61 67 65 20 63 6f 6d 20 6f 72 67 20 portClass.importPackage.com.org.
3320 6a 61 76 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 6c 6f 62 61 6c 20 6f 62 6a 65 63 java.............;;.Global.objec
3340 74 20 28 73 68 65 6c 6c 29 20 65 78 74 65 72 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 t.(shell).externs..............d
3360 65 66 69 6e 65 43 6c 61 73 73 20 64 65 73 65 72 69 61 6c 69 7a 65 20 64 6f 63 74 65 73 74 20 67 efineClass.deserialize.doctest.g
3380 63 20 68 65 6c 70 20 6c 6f 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 61 64 43 6c 61 73 c.help.load.............loadClas
33a0 73 20 70 72 69 6e 74 20 71 75 69 74 20 72 65 61 64 46 69 6c 65 20 72 65 61 64 55 72 6c 20 72 75 s.print.quit.readFile.readUrl.ru
33c0 6e 43 6f 6d 6d 61 6e 64 20 73 65 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 69 61 6c nCommand.seal.............serial
33e0 69 7a 65 20 73 70 61 77 6e 20 73 79 6e 63 20 74 6f 69 6e 74 33 32 20 76 65 72 73 69 6f 6e 29 29 ize.spawn.sync.toint32.version))
3400 0a 20 20 22 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 20 65 78 74 65 72 6e 73 2e 0a 53 65 74 20 60 ..."Mozilla.Rhino.externs..Set.`
3420 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 27 20 74 6f 20 74 20 js2-include-rhino-externs'.to.t.
3440 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d to.include.them.")..(defvar.js2-
3460 6e 6f 64 65 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e node-externs...(mapcar.'symbol-n
3480 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 5f 5f 64 69 72 6e 61 6d 65 20 5f 5f 66 69 6c 65 ame...........'(__dirname.__file
34a0 6e 61 6d 65 20 42 75 66 66 65 72 20 63 6c 65 61 72 49 6e 74 65 72 76 61 6c 20 63 6c 65 61 72 54 name.Buffer.clearInterval.clearT
34c0 69 6d 65 6f 75 74 20 72 65 71 75 69 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f imeout.require.............conso
34e0 6c 65 20 65 78 70 6f 72 74 73 20 67 6c 6f 62 61 6c 20 6d 6f 64 75 6c 65 20 70 72 6f 63 65 73 73 le.exports.global.module.process
3500 20 73 65 74 49 6e 74 65 72 76 61 6c 20 73 65 74 54 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 20 20 .setInterval.setTimeout.........
3520 20 20 20 20 71 75 65 72 79 73 74 72 69 6e 67 20 73 65 74 49 6d 6d 65 64 69 61 74 65 20 63 6c 65 ....querystring.setImmediate.cle
3540 61 72 49 6d 6d 65 64 69 61 74 65 29 29 0a 20 20 22 4e 6f 64 65 2e 6a 73 20 65 78 74 65 72 6e 73 arImmediate))..."Node.js.externs
3560 2e 0a 53 65 74 20 60 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 27 ..Set.`js2-include-node-externs'
3580 20 74 6f 20 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 .to.t.to.include.them.")..(defva
35a0 72 20 6a 73 32 2d 74 79 70 65 64 2d 61 72 72 61 79 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d 61 70 r.js2-typed-array-externs...(map
35c0 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 41 72 72 car.'symbol-name...........'(Arr
35e0 61 79 42 75 66 66 65 72 20 55 69 6e 74 38 43 6c 61 6d 70 65 64 41 72 72 61 79 20 44 61 74 61 56 ayBuffer.Uint8ClampedArray.DataV
3600 69 65 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 38 41 72 72 61 79 20 55 69 6e 74 38 41 iew.............Int8Array.Uint8A
3620 72 72 61 79 20 49 6e 74 31 36 41 72 72 61 79 20 55 69 6e 74 31 36 41 72 72 61 79 20 49 6e 74 33 rray.Int16Array.Uint16Array.Int3
3640 32 41 72 72 61 79 20 55 69 6e 74 33 32 41 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 2Array.Uint32Array.............F
3660 6c 6f 61 74 33 32 41 72 72 61 79 20 46 6c 6f 61 74 36 34 41 72 72 61 79 29 29 0a 20 20 22 4b 68 loat32Array.Float64Array))..."Kh
3680 72 6f 6e 6f 73 20 74 79 70 65 64 20 61 72 72 61 79 20 65 78 74 65 72 6e 73 2e 20 41 76 61 69 6c ronos.typed.array.externs..Avail
36a0 61 62 6c 65 20 69 6e 20 6d 6f 73 74 20 6d 6f 64 65 72 6e 20 62 72 6f 77 73 65 72 73 20 61 6e 64 able.in.most.modern.browsers.and
36c0 0a 69 6e 20 6e 6f 64 65 2e 6a 73 20 3e 3d 20 30 2e 36 2e 20 49 66 20 60 6a 73 32 2d 69 6e 63 6c .in.node.js.>=.0.6..If.`js2-incl
36e0 75 64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 27 20 6f 72 20 60 6a 73 32 2d 69 6e 63 6c 75 64 ude-node-externs'.or.`js2-includ
3700 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 27 0a 61 72 65 20 65 6e 61 62 6c 65 64 2c 20 e-browser-externs'.are.enabled,.
3720 74 68 65 73 65 20 77 69 6c 6c 20 61 6c 73 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 2e 22 29 0a 0a these.will.also.be.included.")..
3740 28 64 65 66 76 61 72 20 6a 73 32 2d 68 61 72 6d 6f 6e 79 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d (defvar.js2-harmony-externs...(m
3760 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 4d apcar.'symbol-name...........'(M
3780 61 70 20 50 72 6f 6d 69 73 65 20 50 72 6f 78 79 20 52 65 66 6c 65 63 74 20 53 65 74 20 53 79 6d ap.Promise.Proxy.Reflect.Set.Sym
37a0 62 6f 6c 20 57 65 61 6b 4d 61 70 20 57 65 61 6b 53 65 74 29 29 0a 20 20 22 45 53 36 20 65 78 74 bol.WeakMap.WeakSet))..."ES6.ext
37c0 65 72 6e 73 2e 20 20 49 66 20 60 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65 erns...If.`js2-include-browser-e
37e0 78 74 65 72 6e 73 27 20 69 73 20 65 6e 61 62 6c 65 64 20 61 6e 64 0a 60 6a 73 32 2d 6c 61 6e 67 xterns'.is.enabled.and.`js2-lang
3800 75 61 67 65 2d 76 65 72 73 69 6f 6e 27 20 69 73 20 73 75 66 66 69 63 69 65 6e 74 6c 79 20 68 69 uage-version'.is.sufficiently.hi
3820 67 68 2c 20 74 68 65 73 65 20 77 69 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 2e 22 29 0a 0a 3b gh,.these.will.be.included.")..;
3840 3b 3b 20 56 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 67 6e ;;.Variables..(defcustom.js2-ign
3860 6f 72 65 64 2d 77 61 72 6e 69 6e 67 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 77 ored-warnings.nil..."A.list.of.w
3880 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 20 74 79 70 65 73 20 74 68 61 74 20 77 69 6c 6c 20 6e arning.message.types.that.will.n
38a0 6f 74 20 62 65 20 72 65 70 6f 72 74 65 64 2e 0a 0a 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 ot.be.reported...Possible.values
38c0 20 61 72 65 20 74 68 65 20 6b 65 79 73 20 6f 66 20 60 6a 73 32 2d 6d 65 73 73 61 67 65 2d 74 61 .are.the.keys.of.`js2-message-ta
38e0 62 6c 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 74 79 70 ble'."...:group.'js2-mode...:typ
3900 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 e.'(repeat.string))..(defcustom.
3920 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 20 32 0a 20 20 22 41 6d 6f 75 6e 74 20 js2-highlight-level.2..."Amount.
3940 6f 66 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 6f 20 70 65 72 66 6f 72 of.syntax.highlighting.to.perfor
3960 6d 2e 0a 30 20 6f 72 20 61 20 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 20 6d 65 61 6e 73 20 6e m..0.or.a.negative.value.means.n
3980 6f 6e 65 2e 0a 31 20 61 64 64 73 20 62 61 73 69 63 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 one..1.adds.basic.syntax.highlig
39a0 68 74 69 6e 67 2e 0a 32 20 61 64 64 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 66 20 73 6f hting..2.adds.highlighting.of.so
39c0 6d 65 20 45 63 6d 61 20 62 75 69 6c 74 2d 69 6e 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 33 20 61 me.Ecma.built-in.properties..3.a
39e0 64 64 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 66 20 6d 61 6e 79 20 45 63 6d 61 20 62 75 dds.highlighting.of.many.Ecma.bu
3a00 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 ilt-in.functions."...:group.'js2
3a20 2d 6d 6f 64 65 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 -mode...:type.'(choice.(const.:t
3a40 61 67 20 22 4e 6f 6e 65 22 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ag."None".0)..................(c
3a60 6f 6e 73 74 20 3a 74 61 67 20 22 42 61 73 69 63 22 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 onst.:tag."Basic".1)............
3a80 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 50 72 6f 70 65 ......(const.:tag."Include.Prope
3aa0 72 74 69 65 73 22 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 rties".2)..................(cons
3ac0 74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 46 75 6e 63 74 69 6f 6e 73 22 20 33 29 29 29 0a t.:tag."Include.Functions".3))).
3ae0 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 76 2d 6d 6f 64 65 2d 70 20 6e 69 6c .(defvar.js2-mode-dev-mode-p.nil
3b00 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 72 75 6e 6e 69 6e 67 20 69 6e 20 64 65 76 65 6c 6f ..."Non-nil.if.running.in.develo
3b20 70 6d 65 6e 74 20 6d 6f 64 65 2e 20 20 4e 6f 72 6d 61 6c 6c 79 20 6e 69 6c 2e 22 29 0a 0a 28 64 pment.mode...Normally.nil.")..(d
3b40 65 66 67 72 6f 75 70 20 6a 73 32 2d 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 41 6e 20 69 6d 70 72 6f efgroup.js2-mode.nil..."An.impro
3b60 76 65 64 20 4a 61 76 61 53 63 72 69 70 74 20 6d 6f 64 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 ved.JavaScript.mode."...:group.'
3b80 6c 61 6e 67 75 61 67 65 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 64 6c 65 2d languages)..(defcustom.js2-idle-
3ba0 74 69 6d 65 72 2d 64 65 6c 61 79 20 30 2e 32 0a 20 20 22 44 65 6c 61 79 20 69 6e 20 73 65 63 73 timer-delay.0.2..."Delay.in.secs
3bc0 20 62 65 66 6f 72 65 20 72 65 2d 70 61 72 73 69 6e 67 20 61 66 74 65 72 20 75 73 65 72 20 6d 61 .before.re-parsing.after.user.ma
3be0 6b 65 73 20 63 68 61 6e 67 65 73 2e 0a 4d 75 6c 74 69 70 6c 69 65 64 20 62 79 20 60 6a 73 32 2d kes.changes..Multiplied.by.`js2-
3c00 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a 75 73 74 27 2c 20 77 68 69 63 dynamic-idle-timer-adjust',.whic
3c20 68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 0a 20 20 3a 67 72 6f 75 70 h.see."...:type.'number...:group
3c40 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 .'js2-mode).(make-variable-buffe
3c60 72 2d 6c 6f 63 61 6c 20 27 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 29 0a 0a r-local.'js2-idle-timer-delay)..
3c80 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 (defcustom.js2-dynamic-idle-time
3ca0 72 2d 61 64 6a 75 73 74 20 30 0a 20 20 22 50 6f 73 69 74 69 76 65 20 74 6f 20 61 64 6a 75 73 74 r-adjust.0..."Positive.to.adjust
3cc0 20 60 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 27 20 62 61 73 65 64 20 6f 6e .`js2-idle-timer-delay'.based.on
3ce0 20 66 69 6c 65 20 73 69 7a 65 2e 0a 54 68 65 20 69 64 65 61 20 69 73 20 74 68 61 74 20 66 6f 72 .file.size..The.idea.is.that.for
3d00 20 73 68 6f 72 74 20 66 69 6c 65 73 2c 20 70 61 72 73 69 6e 67 20 69 73 20 66 61 73 74 65 72 20 .short.files,.parsing.is.faster.
3d20 73 6f 20 77 65 20 63 61 6e 20 62 65 0a 6d 6f 72 65 20 72 65 73 70 6f 6e 73 69 76 65 20 74 6f 20 so.we.can.be.more.responsive.to.
3d40 75 73 65 72 20 65 64 69 74 73 20 77 69 74 68 6f 75 74 20 69 6e 74 65 72 66 65 72 69 6e 67 20 77 user.edits.without.interfering.w
3d60 69 74 68 20 65 64 69 74 69 6e 67 2e 0a 54 68 65 20 62 75 66 66 65 72 20 6c 65 6e 67 74 68 20 69 ith.editing..The.buffer.length.i
3d80 6e 20 63 68 61 72 61 63 74 65 72 73 20 28 74 79 70 69 63 61 6c 6c 79 20 62 79 74 65 73 29 20 69 n.characters.(typically.bytes).i
3da0 73 20 64 69 76 69 64 65 64 20 62 79 0a 74 68 69 73 20 76 61 6c 75 65 20 61 6e 64 20 75 73 65 64 s.divided.by.this.value.and.used
3dc0 20 74 6f 20 6d 75 6c 74 69 70 6c 79 20 60 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c .to.multiply.`js2-idle-timer-del
3de0 61 79 27 20 66 6f 72 20 74 68 65 0a 62 75 66 66 65 72 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 ay'.for.the.buffer...For.example
3e00 2c 20 61 20 32 31 6b 20 66 69 6c 65 20 61 6e 64 20 31 30 6b 20 61 64 6a 75 73 74 20 79 69 65 6c ,.a.21k.file.and.10k.adjust.yiel
3e20 64 73 20 32 31 6b 2f 31 30 6b 0a 3d 3d 20 32 2c 20 73 6f 20 6a 73 32 2d 69 64 6c 65 2d 74 69 6d ds.21k/10k.==.2,.so.js2-idle-tim
3e40 65 72 2d 64 65 6c 61 79 20 69 73 20 6d 75 6c 74 69 70 6c 69 65 64 20 62 79 20 32 2e 0a 49 66 20 er-delay.is.multiplied.by.2..If.
3e60 60 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a 75 73 74 27 20 `js2-dynamic-idle-timer-adjust'.
3e80 69 73 20 30 20 6f 72 20 6e 65 67 61 74 69 76 65 2c 0a 60 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 is.0.or.negative,.`js2-idle-time
3ea0 72 2d 64 65 6c 61 79 27 20 69 73 20 6e 6f 74 20 64 65 70 65 6e 64 65 6e 74 20 6f 6e 20 74 68 65 r-delay'.is.not.dependent.on.the
3ec0 20 66 69 6c 65 20 73 69 7a 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 0a 20 20 3a .file.size."...:type.'number...:
3ee0 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 group.'js2-mode)..(defcustom.js2
3f00 2d 63 6f 6e 63 61 74 2d 6d 75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 73 20 74 0a 20 20 22 57 -concat-multiline-strings.t..."W
3f20 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 27 20 69 6e hen.non-nil,.`js2-line-break'.in
3f40 20 6d 69 64 2d 73 74 72 69 6e 67 20 77 69 6c 6c 20 6d 61 6b 65 20 69 74 20 61 0a 73 74 72 69 6e .mid-string.will.make.it.a.strin
3f60 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 2e 20 57 68 65 6e 20 60 65 6f 6c 27 2c 20 74 68 65 g.concatenation..When.`eol',.the
3f80 20 60 2b 27 20 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 0a 65 6e 64 .`+'.will.be.inserted.at.the.end
3fa0 20 6f 66 20 74 68 65 20 6c 69 6e 65 2c 20 6f 74 68 65 72 77 69 73 65 2c 20 61 74 20 74 68 65 20 .of.the.line,.otherwise,.at.the.
3fc0 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6e 65 78 74 20 6c 69 6e 65 2e 22 0a 20 20 3a beginning.of.the.next.line."...:
3fe0 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 74 29 20 28 63 6f 6e 73 74 20 65 type.'(choice.(const.t).(const.e
4000 6f 6c 29 20 28 63 6f 6e 73 74 20 6e 69 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d ol).(const.nil))...:group.'js2-m
4020 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 70 ode)..(defcustom.js2-mode-show-p
4040 61 72 73 65 2d 65 72 72 6f 72 73 20 74 0a 20 20 22 54 72 75 65 20 74 6f 20 68 69 67 68 6c 69 67 arse-errors.t..."True.to.highlig
4060 68 74 20 70 61 72 73 65 20 65 72 72 6f 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 ht.parse.errors."...:type.'boole
4080 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 an...:group.'js2-mode)..(defcust
40a0 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 73 75 6d 65 2d 73 74 72 69 63 74 20 6e 69 6c 0a 20 20 om.js2-mode-assume-strict.nil...
40c0 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 74 61 72 74 20 66 69 6c 65 73 20 69 6e 20 73 74 72 69 63 "Non-nil.to.start.files.in.stric
40e0 74 20 6d 6f 64 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 t.mode.automatically."...:type.'
4100 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 boolean...:group.'js2-mode)..(de
4120 66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 fcustom.js2-mode-show-strict-war
4140 6e 69 6e 67 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 65 6d 69 74 20 45 63 6d 61 20 nings.t..."Non-nil.to.emit.Ecma.
4160 73 74 72 69 63 74 2d 6d 6f 64 65 20 77 61 72 6e 69 6e 67 73 2e 0a 53 6f 6d 65 20 6f 66 20 74 68 strict-mode.warnings..Some.of.th
4180 65 20 77 61 72 6e 69 6e 67 73 20 63 61 6e 20 62 65 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 20 64 e.warnings.can.be.individually.d
41a0 69 73 61 62 6c 65 64 20 62 79 20 6f 74 68 65 72 20 66 6c 61 67 73 2c 0a 65 76 65 6e 20 69 66 20 isabled.by.other.flags,.even.if.
41c0 74 68 69 73 20 66 6c 61 67 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 this.flag.is.non-nil."...:type.'
41e0 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 boolean...:group.'js2-mode)..(de
4200 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69 63 74 2d 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d fcustom.js2-strict-trailing-comm
4220 61 2d 77 61 72 6e 69 6e 67 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e a-warning.nil..."Non-nil.to.warn
4240 20 61 62 6f 75 74 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 73 20 69 6e 20 61 72 72 61 79 20 .about.trailing.commas.in.array.
4260 6c 69 74 65 72 61 6c 73 2e 0a 45 63 6d 61 2d 32 36 32 2d 35 2e 31 20 61 6c 6c 6f 77 73 20 74 68 literals..Ecma-262-5.1.allows.th
4280 65 6d 2c 20 62 75 74 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 49 45 20 72 61 69 em,.but.older.versions.of.IE.rai
42a0 73 65 20 61 6e 20 65 72 72 6f 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 se.an.error."...:type.'boolean..
42c0 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a .:group.'js2-mode)..(defcustom.j
42e0 73 32 2d 73 74 72 69 63 74 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 2d 77 61 72 6e 69 6e 67 20 74 s2-strict-missing-semi-warning.t
4300 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 61 62 6f 75 74 20 73 65 6d 69 63 6f ..."Non-nil.to.warn.about.semico
4320 6c 6f 6e 20 61 75 74 6f 2d 69 6e 73 65 72 74 69 6f 6e 20 61 66 74 65 72 20 73 74 61 74 65 6d 65 lon.auto-insertion.after.stateme
4340 6e 74 2e 0a 54 65 63 68 6e 69 63 61 6c 6c 79 20 74 68 69 73 20 69 73 20 6c 65 67 61 6c 20 70 65 nt..Technically.this.is.legal.pe
4360 72 20 45 63 6d 61 2d 32 36 32 2c 20 62 75 74 20 73 6f 6d 65 20 73 74 79 6c 65 20 67 75 69 64 65 r.Ecma-262,.but.some.style.guide
4380 73 20 64 69 73 61 6c 6c 6f 77 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 69 74 2e 22 0a 20 20 3a s.disallow.depending.on.it."...:
43a0 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 type.'boolean...:group.'js2-mode
43c0 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 2d 6f )..(defcustom.js2-missing-semi-o
43e0 6e 65 2d 6c 69 6e 65 2d 6f 76 65 72 72 69 64 65 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 ne-line-override.nil..."Non-nil.
4400 74 6f 20 70 65 72 6d 69 74 20 6d 69 73 73 69 6e 67 20 73 65 6d 69 63 6f 6c 6f 6e 73 20 69 6e 20 to.permit.missing.semicolons.in.
4420 6f 6e 65 2d 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 49 6e 20 6f 6e 65 2d 6c 69 6e 65 72 one-line.functions..In.one-liner
4440 20 66 75 6e 63 74 69 6f 6e 73 20 73 75 63 68 20 61 73 20 60 66 75 6e 63 74 69 6f 6e 20 69 64 65 .functions.such.as.`function.ide
4460 6e 74 69 74 79 28 78 29 20 7b 72 65 74 75 72 6e 20 78 7d 27 0a 70 65 6f 70 6c 65 20 6f 66 74 65 ntity(x).{return.x}'.people.ofte
4480 6e 20 6f 6d 69 74 20 74 68 65 20 73 65 6d 69 63 6f 6c 6f 6e 20 66 6f 72 20 61 20 63 6c 65 61 6e n.omit.the.semicolon.for.a.clean
44a0 65 72 20 6c 6f 6f 6b 2e 20 20 49 66 20 79 6f 75 20 61 72 65 0a 73 75 63 68 20 61 20 70 65 72 73 er.look...If.you.are.such.a.pers
44c0 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 75 70 70 72 65 73 73 20 74 68 65 20 6d 69 73 73 69 6e 67 on,.you.can.suppress.the.missing
44e0 2d 73 65 6d 69 63 6f 6c 6f 6e 20 77 61 72 6e 69 6e 67 0a 62 79 20 73 65 74 74 69 6e 67 20 74 68 -semicolon.warning.by.setting.th
4500 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c is.variable.to.t."...:type.'bool
4520 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 ean...:group.'js2-mode)..(defcus
4540 74 6f 6d 20 6a 73 32 2d 73 74 72 69 63 74 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 tom.js2-strict-inconsistent-retu
4560 72 6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 rn-warning.t..."Non-nil.to.warn.
4580 61 62 6f 75 74 20 6d 69 78 69 6e 67 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 76 61 6c 75 65 2d about.mixing.returns.with.value-
45a0 72 65 74 75 72 6e 73 2e 0a 49 74 27 73 20 70 65 72 66 65 63 74 6c 79 20 6c 65 67 61 6c 20 74 6f returns..It's.perfectly.legal.to
45c0 20 68 61 76 65 20 61 20 60 72 65 74 75 72 6e 27 20 61 6e 64 20 61 20 60 72 65 74 75 72 6e 20 66 .have.a.`return'.and.a.`return.f
45e0 6f 6f 27 20 69 6e 20 74 68 65 0a 73 61 6d 65 20 66 75 6e 63 74 69 6f 6e 2c 20 62 75 74 20 69 74 oo'.in.the.same.function,.but.it
4600 27 73 20 6f 66 74 65 6e 20 61 6e 20 69 6e 64 69 63 61 74 6f 72 20 6f 66 20 61 20 62 75 67 2c 20 's.often.an.indicator.of.a.bug,.
4620 61 6e 64 20 69 74 20 61 6c 73 6f 0a 69 6e 74 65 72 66 65 72 65 73 20 77 69 74 68 20 74 79 70 65 and.it.also.interferes.with.type
4640 20 69 6e 66 65 72 65 6e 63 65 20 28 69 6e 20 73 79 73 74 65 6d 73 20 74 68 61 74 20 73 75 70 70 .inference.(in.systems.that.supp
4660 6f 72 74 20 69 74 2e 29 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 ort.it.)"...:type.'boolean...:gr
4680 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 oup.'js2-mode)..(defcustom.js2-s
46a0 74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69 67 6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20 22 4e trict-cond-assign-warning.t..."N
46c0 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 61 62 6f 75 74 20 75 73 61 67 65 20 6c 69 6b 65 20 on-nil.to.warn.about.usage.like.
46e0 60 69 66 20 28 61 20 3d 20 62 29 27 2e 0a 54 68 69 73 20 6f 66 74 65 6e 20 73 68 6f 75 6c 64 20 `if.(a.=.b)'..This.often.should.
4700 68 61 76 65 20 62 65 65 6e 20 60 3d 3d 27 20 69 6e 73 74 65 61 64 20 6f 66 20 60 3d 27 2e 20 20 have.been.`=='.instead.of.`='...
4720 49 66 20 74 68 65 20 77 61 72 6e 69 6e 67 0a 69 73 20 65 6e 61 62 6c 65 64 2c 20 79 6f 75 20 63 If.the.warning.is.enabled,.you.c
4740 61 6e 20 73 75 70 70 72 65 73 73 20 69 74 20 6f 6e 20 61 20 70 65 72 2d 65 78 70 72 65 73 73 69 an.suppress.it.on.a.per-expressi
4760 6f 6e 20 62 61 73 69 73 20 62 79 0a 70 61 72 65 6e 74 68 65 73 69 7a 69 6e 67 20 74 68 65 20 65 on.basis.by.parenthesizing.the.e
4780 78 70 72 65 73 73 69 6f 6e 2c 20 65 2e 67 2e 2c 20 60 69 66 20 28 28 61 20 3d 20 62 29 29 20 2e xpression,.e.g.,.`if.((a.=.b))..
47a0 2e 2e 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 ..'."...:type.'boolean...:group.
47c0 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69 63 'js2-mode)..(defcustom.js2-stric
47e0 74 2d 76 61 72 2d 72 65 64 65 63 6c 61 72 61 74 69 6f 6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20 t-var-redeclaration-warning.t...
4800 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 61 62 6f 75 74 20 72 65 64 65 63 6c 61 72 69 "Non-nil.to.warn.about.redeclari
4820 6e 67 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 61 20 73 63 72 69 70 74 20 6f 72 20 66 75 6e 63 ng.variables.in.a.script.or.func
4840 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 tion."...:type.'boolean...:group
4860 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69 .'js2-mode)..(defcustom.js2-stri
4880 63 74 2d 76 61 72 2d 68 69 64 65 73 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 2d 77 61 72 6e 69 6e ct-var-hides-function-arg-warnin
48a0 67 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 61 62 6f 75 74 20 61 20 76 g.t..."Non-nil.to.warn.about.a.v
48c0 61 72 20 64 65 63 6c 20 68 69 64 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 ar.decl.hiding.a.function.argume
48e0 6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 nt."...:type.'boolean...:group.'
4900 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 6b 69 70 2d 70 js2-mode)..(defcustom.js2-skip-p
4920 72 65 70 72 6f 63 65 73 73 6f 72 2d 64 69 72 65 63 74 69 76 65 73 20 6e 69 6c 0a 20 20 22 4e 6f reprocessor-directives.nil..."No
4940 6e 2d 6e 69 6c 20 74 6f 20 74 72 65 61 74 20 6c 69 6e 65 73 20 62 65 67 69 6e 6e 69 6e 67 20 77 n-nil.to.treat.lines.beginning.w
4960 69 74 68 20 23 20 61 73 20 63 6f 6d 6d 65 6e 74 73 2e 0a 55 73 65 66 75 6c 20 66 6f 72 20 76 69 ith.#.as.comments..Useful.for.vi
4980 65 77 69 6e 67 20 4d 6f 7a 69 6c 6c 61 20 4a 61 76 61 53 63 72 69 70 74 20 73 6f 75 72 63 65 20 ewing.Mozilla.JavaScript.source.
49a0 63 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 code."...:type.'boolean...:group
49c0 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 6c 61 6e 67 .'js2-mode)..(defcustom.js2-lang
49e0 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 0a 20 20 22 43 6f 6e 66 69 67 75 72 65 73 20 77 uage-version.200..."Configures.w
4a00 68 61 74 20 4a 61 76 61 53 63 72 69 70 74 20 6c 61 6e 67 75 61 67 65 20 76 65 72 73 69 6f 6e 20 hat.JavaScript.language.version.
4a20 74 6f 20 72 65 63 6f 67 6e 69 7a 65 2e 0a 43 75 72 72 65 6e 74 6c 79 20 76 65 72 73 69 6f 6e 73 to.recognize..Currently.versions
4a40 20 31 35 30 2c 20 31 36 30 2c 20 31 37 30 2c 20 31 38 30 20 61 6e 64 20 32 30 30 20 61 72 65 20 .150,.160,.170,.180.and.200.are.
4a60 73 75 70 70 6f 72 74 65 64 2c 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 4a 61 76 61 supported,.corresponding.to.Java
4a80 53 63 72 69 70 74 20 31 2e 35 2c 20 31 2e 36 2c 20 31 2e 37 2c 20 31 2e 38 20 61 6e 64 20 32 2e Script.1.5,.1.6,.1.7,.1.8.and.2.
4aa0 30 20 28 48 61 72 6d 6f 6e 79 29 2c 0a 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 20 49 6e 20 61 0.(Harmony),.respectively...In.a
4ac0 20 6e 75 74 73 68 65 6c 6c 2c 20 31 2e 36 20 61 64 64 73 20 45 34 58 20 73 75 70 70 6f 72 74 2c .nutshell,.1.6.adds.E4X.support,
4ae0 20 31 2e 37 20 61 64 64 73 20 6c 65 74 2c 0a 79 69 65 6c 64 2c 20 61 6e 64 20 41 72 72 61 79 20 .1.7.adds.let,.yield,.and.Array.
4b00 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 2c 20 61 6e 64 20 31 2e 38 20 61 64 64 73 20 66 75 6e comprehensions,.and.1.8.adds.fun
4b20 63 74 69 6f 6e 20 63 6c 6f 73 75 72 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 ction.closures."...:type.'intege
4b40 72 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f r...:group.'js2-mode)..(defcusto
4b60 6d 20 6a 73 32 2d 69 6e 73 74 61 6e 63 65 6f 66 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 m.js2-instanceof-has-side-effect
4b80 73 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 72 65 61 74 73 20 74 68 65 20 s.nil..."If.non-nil,.treats.the.
4ba0 69 6e 73 74 61 6e 63 65 6f 66 20 6f 70 65 72 61 74 6f 72 20 61 73 20 68 61 76 69 6e 67 20 73 69 instanceof.operator.as.having.si
4bc0 64 65 20 65 66 66 65 63 74 73 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 78 de.effects..This.is.useful.for.x
4be0 75 6c 72 75 6e 6e 65 72 20 61 70 70 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e ulrunner.apps."...:type.'boolean
4c00 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ...:group.'js2-mode)..(defcustom
4c20 20 6a 73 32 2d 67 65 74 70 72 6f 70 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 6e 69 .js2-getprop-has-side-effects.ni
4c40 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 72 65 61 74 73 20 74 68 65 20 67 65 74 70 l..."If.non-nil,.treats.the.getp
4c60 72 6f 70 20 6f 70 65 72 61 74 6f 72 20 61 73 20 68 61 76 69 6e 67 20 73 69 64 65 20 65 66 66 65 rop.operator.as.having.side.effe
4c80 63 74 73 2e 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 74 65 73 74 69 6e 67 20 cts..This.is.useful.for.testing.
4ca0 6c 69 62 72 61 72 69 65 73 20 77 69 74 68 20 6e 6f 6e 74 72 69 76 69 61 6c 20 67 65 74 74 65 72 libraries.with.nontrivial.getter
4cc0 73 20 61 6e 64 20 66 6f 72 0a 63 6f 6d 70 69 6c 65 72 73 20 74 68 61 74 20 75 73 65 20 65 6d 70 s.and.for.compilers.that.use.emp
4ce0 74 79 20 67 65 74 70 72 6f 70 73 20 74 6f 20 64 65 63 6c 61 72 65 20 69 6e 74 65 72 66 61 63 65 ty.getprops.to.declare.interface
4d00 20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 .properties."...:type.'boolean..
4d20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a .:group.'js2-mode)..(defcustom.j
4d40 73 32 2d 6d 6f 76 65 2d 70 6f 69 6e 74 2d 6f 6e 2d 72 69 67 68 74 2d 63 6c 69 63 6b 20 74 0a 20 s2-move-point-on-right-click.t..
4d60 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 6d 6f 76 65 20 69 6e 73 65 72 74 69 6f 6e 20 70 6f 69 6e ."Non-nil.to.move.insertion.poin
4d80 74 20 77 68 65 6e 20 79 6f 75 20 72 69 67 68 74 2d 63 6c 69 63 6b 2e 0a 54 68 69 73 20 6d 61 6b t.when.you.right-click..This.mak
4da0 65 73 20 72 69 67 68 74 2d 63 6c 69 63 6b 20 63 6f 6e 74 65 78 74 20 6d 65 6e 75 20 62 65 68 61 es.right-click.context.menu.beha
4dc0 76 69 6f 72 20 61 20 62 69 74 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65 2c 0a 73 69 6e 63 65 vior.a.bit.more.intuitive,.since
4de0 20 6d 65 6e 75 20 6f 70 65 72 61 74 69 6f 6e 73 20 67 65 6e 65 72 61 6c 6c 79 20 61 70 70 6c 79 .menu.operations.generally.apply
4e00 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 2e 20 20 54 68 65 20 65 78 63 65 70 74 69 6f 6e 0a 69 73 .to.the.point...The.exception.is
4e20 20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 72 65 67 69 6f 6e 20 73 65 6c 65 63 74 69 6f 6e 2c .if.there.is.a.region.selection,
4e40 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 70 6f 69 6e 74 20 64 6f 65 73 20 2d 6e .in.which.case.the.point.does.-n
4e60 6f 74 2d 0a 6d 6f 76 65 2c 20 73 6f 20 63 75 74 2f 63 6f 70 79 2f 70 61 73 74 65 20 63 61 6e 20 ot-.move,.so.cut/copy/paste.can.
4e80 77 6f 72 6b 20 70 72 6f 70 65 72 6c 79 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 49 6e 74 65 6c 6c work.properly...Note.that.Intell
4ea0 69 4a 20 6d 6f 76 65 73 20 74 68 65 20 70 6f 69 6e 74 2c 20 61 6e 64 20 45 63 6c 69 70 73 65 20 iJ.moves.the.point,.and.Eclipse.
4ec0 6c 65 61 76 65 73 20 69 74 20 61 6c 6f 6e 65 2c 0a 73 6f 20 74 68 69 73 20 62 65 68 61 76 69 6f leaves.it.alone,.so.this.behavio
4ee0 72 20 69 73 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 r.is.customizable."...:group.'js
4f00 32 2d 6d 6f 64 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 2-mode...:type.'boolean)..(defcu
4f20 73 74 6f 6d 20 6a 73 32 2d 61 6c 6c 6f 77 2d 72 68 69 6e 6f 2d 6e 65 77 2d 65 78 70 72 2d 69 6e stom.js2-allow-rhino-new-expr-in
4f40 69 74 69 61 6c 69 7a 65 72 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 75 70 70 6f 72 itializer.t..."Non-nil.to.suppor
4f60 74 20 61 20 52 68 69 6e 6f 27 73 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 79 6e 74 61 63 74 t.a.Rhino's.experimental.syntact
4f80 69 63 20 63 6f 6e 73 74 72 75 63 74 2e 0a 0a 52 68 69 6e 6f 20 73 75 70 70 6f 72 74 73 20 74 68 ic.construct...Rhino.supports.th
4fa0 65 20 61 62 69 6c 69 74 79 20 74 6f 20 66 6f 6c 6c 6f 77 20 61 20 60 6e 65 77 27 20 65 78 70 72 e.ability.to.follow.a.`new'.expr
4fc0 65 73 73 69 6f 6e 20 77 69 74 68 20 61 6e 20 6f 62 6a 65 63 74 0a 6c 69 74 65 72 61 6c 2c 20 77 ession.with.an.object.literal,.w
4fe0 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 hich.is.used.to.set.additional.p
5000 72 6f 70 65 72 74 69 65 73 20 6f 6e 20 74 68 65 20 6e 65 77 20 6f 62 6a 65 63 74 0a 61 66 74 65 roperties.on.the.new.object.afte
5020 72 20 63 61 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 20 20 53 79 6e 74 r.calling.its.constructor...Synt
5040 61 78 3a 0a 0a 20 20 6e 65 77 20 3c 65 78 70 72 3e 20 5b 20 28 20 61 72 67 6c 69 73 74 20 29 20 ax:....new.<expr>.[.(.arglist.).
5060 5d 20 5b 69 6e 69 74 69 61 6c 69 7a 65 72 5d 0a 0a 48 65 6e 63 65 2c 20 74 68 69 73 20 65 78 70 ].[initializer]..Hence,.this.exp
5080 72 65 73 73 69 6f 6e 3a 0a 0a 20 20 6e 65 77 20 4f 62 6a 65 63 74 20 7b 61 3a 20 31 2c 20 62 3a ression:....new.Object.{a:.1,.b:
50a0 20 32 7d 0a 0a 72 65 73 75 6c 74 73 20 69 6e 20 61 6e 20 4f 62 6a 65 63 74 20 77 69 74 68 20 70 .2}..results.in.an.Object.with.p
50c0 72 6f 70 65 72 74 69 65 73 20 61 3d 31 20 61 6e 64 20 62 3d 32 2e 20 20 54 68 69 73 20 73 79 6e roperties.a=1.and.b=2...This.syn
50e0 74 61 78 20 69 73 0a 61 70 70 61 72 65 6e 74 6c 79 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 61 62 tax.is.apparently.not.configurab
5100 6c 65 20 69 6e 20 52 68 69 6e 6f 20 2d 20 69 74 27 73 20 63 75 72 72 65 6e 74 6c 79 20 61 6c 77 le.in.Rhino.-.it's.currently.alw
5120 61 79 73 20 65 6e 61 62 6c 65 64 2c 0a 61 73 20 6f 66 20 52 68 69 6e 6f 20 76 65 72 73 69 6f 6e ays.enabled,.as.of.Rhino.version
5140 20 31 2e 37 52 32 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f .1.7R2."...:type.'boolean...:gro
5160 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 61 6c up.'js2-mode)..(defcustom.js2-al
5180 6c 6f 77 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 61 73 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 low-member-expr-as-function-name
51a0 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 75 70 70 6f 72 74 20 65 78 70 65 72 .nil..."Non-nil.to.support.exper
51c0 69 6d 65 6e 74 61 6c 20 52 68 69 6e 6f 20 73 79 6e 74 61 78 20 66 6f 72 20 66 75 6e 63 74 69 6f imental.Rhino.syntax.for.functio
51e0 6e 20 6e 61 6d 65 73 2e 0a 0a 52 68 69 6e 6f 20 73 75 70 70 6f 72 74 73 20 61 6e 20 65 78 70 65 n.names...Rhino.supports.an.expe
5200 72 69 6d 65 6e 74 61 6c 20 73 79 6e 74 61 78 20 63 6f 6e 66 69 67 75 72 65 64 20 76 69 61 20 74 rimental.syntax.configured.via.t
5220 68 65 20 52 68 69 6e 6f 20 43 6f 6e 74 65 78 74 0a 73 65 74 74 69 6e 67 20 60 61 6c 6c 6f 77 4d he.Rhino.Context.setting.`allowM
5240 65 6d 62 65 72 45 78 70 72 41 73 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 27 2e 20 20 54 68 65 20 65 emberExprAsFunctionName'...The.e
5260 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 79 6e 74 61 78 20 69 73 3a 0a 0a 20 20 66 75 6e 63 74 69 xperimental.syntax.is:....functi
5280 6f 6e 20 3c 6d 65 6d 62 65 72 2d 65 78 70 72 3e 20 28 20 5b 20 61 72 67 2d 6c 69 73 74 20 5d 20 on.<member-expr>.(.[.arg-list.].
52a0 29 20 7b 20 3c 62 6f 64 79 3e 20 7d 0a 0a 57 68 65 72 65 20 6d 65 6d 62 65 72 2d 65 78 70 72 20 ).{.<body>.}..Where.member-expr.
52c0 69 73 20 61 20 6e 6f 6e 2d 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 60 6d 65 6d 62 65 72 20 65 is.a.non-parenthesized.`member.e
52e0 78 70 72 65 73 73 69 6f 6e 27 2c 20 77 68 69 63 68 0a 69 73 20 61 6e 79 74 68 69 6e 67 20 61 74 xpression',.which.is.anything.at
5300 20 74 68 65 20 67 72 61 6d 6d 61 72 20 6c 65 76 65 6c 20 6f 66 20 61 20 6e 65 77 2d 65 78 70 72 .the.grammar.level.of.a.new-expr
5320 65 73 73 69 6f 6e 20 6f 72 20 6c 6f 77 65 72 2c 20 6d 65 61 6e 69 6e 67 0a 61 6e 79 20 65 78 70 ession.or.lower,.meaning.any.exp
5340 72 65 73 73 69 6f 6e 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 76 6f 6c 76 65 20 69 6e ression.that.does.not.involve.in
5360 66 69 78 20 6f 72 20 75 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 73 2e 0a 0a 57 68 65 6e 20 3c 6d fix.or.unary.operators...When.<m
5380 65 6d 62 65 72 2d 65 78 70 72 3e 20 69 73 20 6e 6f 74 20 61 20 73 69 6d 70 6c 65 20 69 64 65 6e ember-expr>.is.not.a.simple.iden
53a0 74 69 66 69 65 72 2c 20 74 68 65 6e 20 69 74 20 69 73 20 73 79 6e 74 61 63 74 69 63 0a 73 75 67 tifier,.then.it.is.syntactic.sug
53c0 61 72 20 66 6f 72 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 66 ar.for.assigning.the.anonymous.f
53e0 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 3c 6d 65 6d 62 65 72 2d 65 78 70 72 3e 2e 20 20 48 unction.to.the.<member-expr>...H
5400 65 6e 63 65 2c 0a 74 68 69 73 20 63 6f 64 65 3a 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 61 2e 62 ence,.this.code:....function.a.b
5420 28 29 2e 63 5b 32 5d 20 28 78 2c 20 79 29 20 7b 20 2e 2e 2e 20 7d 0a 0a 69 73 20 72 65 77 72 69 ().c[2].(x,.y).{.....}..is.rewri
5440 74 74 65 6e 20 61 73 3a 0a 0a 20 20 61 2e 62 28 29 2e 63 5b 32 5d 20 3d 20 66 75 6e 63 74 69 6f tten.as:....a.b().c[2].=.functio
5460 6e 28 78 2c 20 79 29 20 7b 2e 2e 2e 7d 0a 0a 77 68 69 63 68 20 64 6f 65 73 6e 27 74 20 73 65 65 n(x,.y).{...}..which.doesn't.see
5480 6d 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75 73 65 66 75 6c 2c 20 62 75 74 20 52 68 69 6e 6f m.particularly.useful,.but.Rhino
54a0 20 70 65 72 6d 69 74 73 20 69 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 .permits.it."...:type.'boolean..
54c0 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 3b 3b 20 73 63 61 6e 6e 65 72 20 76 .:group.'js2-mode)..;;.scanner.v
54e0 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 64 65 66 6c 6f 63 61 6c ariables..(defmacro.js2-deflocal
5500 20 28 6e 61 6d 65 20 76 61 6c 75 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6d 6d 65 6e 74 29 0a .(name.value.&optional.comment).
5520 20 20 22 44 65 66 69 6e 65 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c .."Define.a.buffer-local.variabl
5540 65 20 4e 41 4d 45 20 77 69 74 68 20 56 41 4c 55 45 20 61 6e 64 20 43 4f 4d 4d 45 4e 54 2e 22 0a e.NAME.with.VALUE.and.COMMENT.".
5560 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 64 65 66 76 61 72 29 20 28 64 6f 63 2d 73 ..(declare.(debug.defvar).(doc-s
5580 74 72 69 6e 67 20 33 29 29 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 64 65 66 76 61 72 tring.3))...`(progn......(defvar
55a0 20 2c 6e 61 6d 65 20 2c 76 61 6c 75 65 20 2c 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 28 6d 61 .,name.,value.,comment)......(ma
55c0 6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 2c 6e 61 6d 65 29 ke-variable-buffer-local.',name)
55e0 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 20 2d 31 0a 20 20 22 52 ))..(defvar.js2-EOF_CHAR.-1..."R
5600 65 70 72 65 73 65 6e 74 73 20 65 6e 64 20 6f 66 20 73 74 72 65 61 6d 2e 20 20 44 69 73 74 69 6e epresents.end.of.stream...Distin
5620 63 74 20 66 72 6f 6d 20 6a 73 32 2d 45 4f 46 20 74 6f 6b 65 6e 20 74 79 70 65 2e 22 29 0a 0a 3b ct.from.js2-EOF.token.type.")..;
5640 3b 20 49 20 6f 72 69 67 69 6e 61 6c 6c 79 20 75 73 65 64 20 73 79 6d 62 6f 6c 73 20 74 6f 20 72 ;.I.originally.used.symbols.to.r
5660 65 70 72 65 73 65 6e 74 20 74 6f 6b 65 6e 73 2c 20 62 75 74 20 52 68 69 6e 6f 20 75 73 65 73 0a epresent.tokens,.but.Rhino.uses.
5680 3b 3b 20 69 6e 74 73 20 61 6e 64 20 74 68 65 6e 20 73 65 74 73 20 76 61 72 69 6f 75 73 20 66 6c ;;.ints.and.then.sets.various.fl
56a0 61 67 20 62 69 74 73 20 69 6e 20 74 68 65 6d 2c 20 73 6f 20 69 6e 74 73 20 69 74 20 69 73 2e 0a ag.bits.in.them,.so.ints.it.is..
56c0 3b 3b 20 54 68 65 20 75 70 73 68 6f 74 20 69 73 20 74 68 61 74 20 77 65 20 6e 65 65 64 20 61 20 ;;.The.upshot.is.that.we.need.a.
56e0 60 6a 73 32 2d 27 20 70 72 65 66 69 78 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 65 61 63 68 20 6e `js2-'.prefix.in.front.of.each.n
5700 61 6d 65 2e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 52 52 4f 52 20 2d 31 29 0a 28 64 65 66 76 ame..(defvar.js2-ERROR.-1).(defv
5720 61 72 20 6a 73 32 2d 45 4f 46 20 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4f 4c 20 31 29 ar.js2-EOF.0).(defvar.js2-EOL.1)
5740 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 54 45 52 57 49 54 48 20 32 29 20 20 20 20 20 20 20 .(defvar.js2-ENTERWITH.2).......
5760 3b 20 62 65 67 69 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 62 79 74 65 63 6f 64 65 73 0a 28 64 ;.begin.interpreter.bytecodes.(d
5780 65 66 76 61 72 20 6a 73 32 2d 4c 45 41 56 45 57 49 54 48 20 33 29 0a 28 64 65 66 76 61 72 20 6a efvar.js2-LEAVEWITH.3).(defvar.j
57a0 73 32 2d 52 45 54 55 52 4e 20 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 4f 54 4f 20 35 29 s2-RETURN.4).(defvar.js2-GOTO.5)
57c0 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 49 46 45 51 20 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 .(defvar.js2-IFEQ.6).(defvar.js2
57e0 2d 49 46 4e 45 20 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 45 54 4e 41 4d 45 20 38 29 0a -IFNE.7).(defvar.js2-SETNAME.8).
5800 28 64 65 66 76 61 72 20 6a 73 32 2d 42 49 54 4f 52 20 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32 (defvar.js2-BITOR.9).(defvar.js2
5820 2d 42 49 54 58 4f 52 20 31 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 42 49 54 41 4e 44 20 31 -BITXOR.10).(defvar.js2-BITAND.1
5840 31 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 51 20 31 32 29 0a 28 64 65 66 76 61 72 20 6a 73 1).(defvar.js2-EQ.12).(defvar.js
5860 32 2d 4e 45 20 31 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 54 20 31 34 29 0a 28 64 65 66 2-NE.13).(defvar.js2-LT.14).(def
5880 76 61 72 20 6a 73 32 2d 4c 45 20 31 35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 54 20 31 36 var.js2-LE.15).(defvar.js2-GT.16
58a0 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 45 20 31 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 ).(defvar.js2-GE.17).(defvar.js2
58c0 2d 4c 53 48 20 31 38 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 53 48 20 31 39 29 0a 28 64 65 -LSH.18).(defvar.js2-RSH.19).(de
58e0 66 76 61 72 20 6a 73 32 2d 55 52 53 48 20 32 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 44 fvar.js2-URSH.20).(defvar.js2-AD
5900 44 20 32 31 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 66 69 78 20 70 6c 75 73 0a 28 64 D.21)............;.infix.plus.(d
5920 65 66 76 61 72 20 6a 73 32 2d 53 55 42 20 32 32 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 efvar.js2-SUB.22)............;.i
5940 6e 66 69 78 20 6d 69 6e 75 73 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4d 55 4c 20 32 33 29 0a 28 nfix.minus.(defvar.js2-MUL.23).(
5960 64 65 66 76 61 72 20 6a 73 32 2d 44 49 56 20 32 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4d defvar.js2-DIV.24).(defvar.js2-M
5980 4f 44 20 32 35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 4f 54 20 32 36 29 0a 28 64 65 66 76 OD.25).(defvar.js2-NOT.26).(defv
59a0 61 72 20 6a 73 32 2d 42 49 54 4e 4f 54 20 32 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 50 4f ar.js2-BITNOT.27).(defvar.js2-PO
59c0 53 20 32 38 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 6e 61 72 79 20 70 6c 75 73 0a 28 64 S.28)............;.unary.plus.(d
59e0 65 66 76 61 72 20 6a 73 32 2d 4e 45 47 20 32 39 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 efvar.js2-NEG.29)............;.u
5a00 6e 61 72 79 20 6d 69 6e 75 73 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 45 57 20 33 30 29 0a 28 nary.minus.(defvar.js2-NEW.30).(
5a20 64 65 66 76 61 72 20 6a 73 32 2d 44 45 4c 50 52 4f 50 20 33 31 29 0a 28 64 65 66 76 61 72 20 6a defvar.js2-DELPROP.31).(defvar.j
5a40 73 32 2d 54 59 50 45 4f 46 20 33 32 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 45 54 50 52 4f s2-TYPEOF.32).(defvar.js2-GETPRO
5a60 50 20 33 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 45 54 50 52 4f 50 4e 4f 57 41 52 4e 20 P.33).(defvar.js2-GETPROPNOWARN.
5a80 33 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 45 54 50 52 4f 50 20 33 35 29 0a 28 64 65 66 34).(defvar.js2-SETPROP.35).(def
5aa0 76 61 72 20 6a 73 32 2d 47 45 54 45 4c 45 4d 20 33 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d var.js2-GETELEM.36).(defvar.js2-
5ac0 53 45 54 45 4c 45 4d 20 33 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 41 4c 4c 20 33 38 29 SETELEM.37).(defvar.js2-CALL.38)
5ae0 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 41 4d 45 20 33 39 29 20 20 20 20 20 20 20 20 20 20 20 .(defvar.js2-NAME.39)...........
5b00 3b 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 55 4d 42 ;.an.identifier.(defvar.js2-NUMB
5b20 45 52 20 34 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 54 52 49 4e 47 20 34 31 29 0a 28 64 ER.40).(defvar.js2-STRING.41).(d
5b40 65 66 76 61 72 20 6a 73 32 2d 4e 55 4c 4c 20 34 32 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 54 efvar.js2-NULL.42).(defvar.js2-T
5b60 48 49 53 20 34 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 46 41 4c 53 45 20 34 34 29 0a 28 64 HIS.43).(defvar.js2-FALSE.44).(d
5b80 65 66 76 61 72 20 6a 73 32 2d 54 52 55 45 20 34 35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 efvar.js2-TRUE.45).(defvar.js2-S
5ba0 48 45 51 20 34 36 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 68 61 6c 6c 6f 77 20 65 71 75 61 HEQ.46)...........;.shallow.equa
5bc0 6c 69 74 79 20 28 3d 3d 3d 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 48 4e 45 20 34 37 29 20 lity.(===).(defvar.js2-SHNE.47).
5be0 20 20 20 20 20 20 20 20 20 20 3b 20 73 68 61 6c 6c 6f 77 20 69 6e 65 71 75 61 6c 69 74 79 20 28 ..........;.shallow.inequality.(
5c00 21 3d 3d 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 47 45 58 50 20 34 38 29 0a 28 64 65 66 !==).(defvar.js2-REGEXP.48).(def
5c20 76 61 72 20 6a 73 32 2d 42 49 4e 44 4e 41 4d 45 20 34 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32 var.js2-BINDNAME.49).(defvar.js2
5c40 2d 54 48 52 4f 57 20 35 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 54 48 52 4f 57 20 35 -THROW.50).(defvar.js2-RETHROW.5
5c60 31 29 20 20 20 20 20 20 20 20 3b 20 72 65 74 68 72 6f 77 20 63 61 75 67 68 74 20 65 78 63 65 70 1)........;.rethrow.caught.excep
5c80 74 69 6f 6e 3a 20 63 61 74 63 68 20 28 65 20 69 66 20 29 20 75 73 65 73 20 69 74 0a 28 64 65 66 tion:.catch.(e.if.).uses.it.(def
5ca0 76 61 72 20 6a 73 32 2d 49 4e 20 35 32 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 49 4e 53 54 41 var.js2-IN.52).(defvar.js2-INSTA
5cc0 4e 43 45 4f 46 20 35 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 4f 43 41 4c 5f 4c 4f 41 44 NCEOF.53).(defvar.js2-LOCAL_LOAD
5ce0 20 35 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 45 54 56 41 52 20 35 35 29 0a 28 64 65 66 .54).(defvar.js2-GETVAR.55).(def
5d00 76 61 72 20 6a 73 32 2d 53 45 54 56 41 52 20 35 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 var.js2-SETVAR.56).(defvar.js2-C
5d20 41 54 43 48 5f 53 43 4f 50 45 20 35 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f ATCH_SCOPE.57).(defvar.js2-ENUM_
5d40 49 4e 49 54 5f 4b 45 59 53 20 35 38 29 20 3b 20 46 49 58 4d 45 3a 20 77 68 61 74 20 61 72 65 20 INIT_KEYS.58).;.FIXME:.what.are.
5d60 74 68 65 73 65 3f 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f 49 4e 49 54 5f 56 41 4c these?.(defvar.js2-ENUM_INIT_VAL
5d80 55 45 53 20 35 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f 49 4e 49 54 5f 41 52 UES.59).(defvar.js2-ENUM_INIT_AR
5da0 52 41 59 20 36 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f 4e 45 58 54 20 36 31 RAY.60).(defvar.js2-ENUM_NEXT.61
5dc0 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f 49 44 20 36 32 29 0a 28 64 65 66 76 61 ).(defvar.js2-ENUM_ID.62).(defva
5de0 72 20 6a 73 32 2d 54 48 49 53 46 4e 20 36 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 54 r.js2-THISFN.63).(defvar.js2-RET
5e00 55 52 4e 5f 52 45 53 55 4c 54 20 36 34 29 20 20 3b 20 74 6f 20 72 65 74 75 72 6e 20 70 72 65 76 URN_RESULT.64)..;.to.return.prev
5e20 69 6f 75 73 6c 79 20 73 74 6f 72 65 64 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 0a 28 64 65 66 iously.stored.return.result.(def
5e40 76 61 72 20 6a 73 32 2d 41 52 52 41 59 4c 49 54 20 36 35 29 20 20 20 20 20 20 20 3b 20 61 72 72 var.js2-ARRAYLIT.65).......;.arr
5e60 61 79 20 6c 69 74 65 72 61 6c 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4f 42 4a 45 43 54 4c 49 54 ay.literal.(defvar.js2-OBJECTLIT
5e80 20 36 36 29 20 20 20 20 20 20 3b 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 0a 28 64 65 66 76 .66)......;.object.literal.(defv
5ea0 61 72 20 6a 73 32 2d 47 45 54 5f 52 45 46 20 36 37 29 20 20 20 20 20 20 20 20 3b 20 2a 72 65 66 ar.js2-GET_REF.67)........;.*ref
5ec0 65 72 65 6e 63 65 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 45 54 5f 52 45 46 20 36 38 29 20 20 erence.(defvar.js2-SET_REF.68)..
5ee0 20 20 20 20 20 20 3b 20 2a 72 65 66 65 72 65 6e 63 65 20 3d 20 73 6f 6d 65 74 68 69 6e 67 0a 28 ......;.*reference.=.something.(
5f00 64 65 66 76 61 72 20 6a 73 32 2d 44 45 4c 5f 52 45 46 20 36 39 29 20 20 20 20 20 20 20 20 3b 20 defvar.js2-DEL_REF.69)........;.
5f20 64 65 6c 65 74 65 20 72 65 66 65 72 65 6e 63 65 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46 delete.reference.(defvar.js2-REF
5f40 5f 43 41 4c 4c 20 37 30 29 20 20 20 20 20 20 20 3b 20 66 28 61 72 67 73 29 20 3d 20 73 6f 6d 65 _CALL.70).......;.f(args).=.some
5f60 74 68 69 6e 67 20 6f 72 20 66 28 61 72 67 73 29 2b 2b 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 thing.or.f(args)++.(defvar.js2-R
5f80 45 46 5f 53 50 45 43 49 41 4c 20 37 31 29 20 20 20 20 3b 20 72 65 66 65 72 65 6e 63 65 20 66 6f EF_SPECIAL.71)....;.reference.fo
5fa0 72 20 73 70 65 63 69 61 6c 20 70 72 6f 70 65 72 74 69 65 73 20 6c 69 6b 65 20 5f 5f 70 72 6f 74 r.special.properties.like.__prot
5fc0 6f 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 59 49 45 4c 44 20 37 32 29 20 20 20 20 20 20 20 20 20 o.(defvar.js2-YIELD.72).........
5fe0 20 3b 20 4a 53 20 31 2e 37 20 79 69 65 6c 64 20 70 73 65 75 64 6f 20 6b 65 79 77 6f 72 64 0a 0a .;.JS.1.7.yield.pseudo.keyword..
6000 3b 3b 20 58 4d 4c 20 73 75 70 70 6f 72 74 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 44 45 46 41 55 ;;.XML.support.(defvar.js2-DEFAU
6020 4c 54 4e 41 4d 45 53 50 41 43 45 20 37 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 53 43 58 LTNAMESPACE.73).(defvar.js2-ESCX
6040 4d 4c 41 54 54 52 20 37 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 53 43 58 4d 4c 54 45 58 MLATTR.74).(defvar.js2-ESCXMLTEX
6060 54 20 37 35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46 5f 4d 45 4d 42 45 52 20 37 36 29 T.75).(defvar.js2-REF_MEMBER.76)
6080 20 20 20 20 20 3b 20 52 65 66 65 72 65 6e 63 65 20 66 6f 72 20 78 2e 40 79 2c 20 78 2e 2e 79 20 .....;.Reference.for.x.@y,.x..y.
60a0 65 74 63 2e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46 5f 4e 53 5f 4d 45 4d 42 45 52 20 37 etc..(defvar.js2-REF_NS_MEMBER.7
60c0 37 29 20 20 3b 20 52 65 66 65 72 65 6e 63 65 20 66 6f 72 20 78 2e 6e 73 3a 3a 79 2c 20 78 2e 2e 7)..;.Reference.for.x.ns::y,.x..
60e0 6e 73 3a 3a 79 20 65 74 63 2e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46 5f 4e 41 4d 45 20 ns::y.etc..(defvar.js2-REF_NAME.
6100 37 38 29 20 20 20 20 20 20 20 3b 20 52 65 66 65 72 65 6e 63 65 20 66 6f 72 20 40 79 2c 20 40 5b 78).......;.Reference.for.@y,.@[
6120 79 5d 20 65 74 63 2e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46 5f 4e 53 5f 4e 41 4d 45 20 y].etc..(defvar.js2-REF_NS_NAME.
6140 37 39 29 20 20 20 20 3b 20 52 65 66 65 72 65 6e 63 65 20 66 6f 72 20 6e 73 3a 3a 79 2c 20 40 6e 79)....;.Reference.for.ns::y,.@n
6160 73 3a 3a 79 40 5b 79 5d 20 65 74 63 2e 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 66 69 72 73 74 s::y@[y].etc...(defvar.js2-first
6180 2d 62 79 74 65 63 6f 64 65 20 6a 73 32 2d 45 4e 54 45 52 57 49 54 48 29 0a 28 64 65 66 76 61 72 -bytecode.js2-ENTERWITH).(defvar
61a0 20 6a 73 32 2d 6c 61 73 74 2d 62 79 74 65 63 6f 64 65 20 6a 73 32 2d 52 45 46 5f 4e 53 5f 4e 41 .js2-last-bytecode.js2-REF_NS_NA
61c0 4d 45 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 54 52 59 20 38 30 29 0a 28 64 65 66 76 61 72 ME)..(defvar.js2-TRY.80).(defvar
61e0 20 6a 73 32 2d 53 45 4d 49 20 38 31 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 65 6d 69 63 6f .js2-SEMI.81)...........;.semico
6200 6c 6f 6e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 42 20 38 32 29 20 20 20 20 20 20 20 20 20 20 lon.(defvar.js2-LB.82)..........
6220 20 20 20 3b 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 62 72 61 63 6b 65 74 73 0a 28 64 65 ...;.left.and.right.brackets.(de
6240 66 76 61 72 20 6a 73 32 2d 52 42 20 38 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 43 20 38 fvar.js2-RB.83).(defvar.js2-LC.8
6260 34 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 4).............;.left.and.right.
6280 63 75 72 6c 79 2d 62 72 61 63 65 73 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 43 20 38 35 29 0a curly-braces.(defvar.js2-RC.85).
62a0 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 50 20 38 36 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b (defvar.js2-LP.86).............;
62c0 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 70 61 72 65 6e 73 0a 28 64 65 66 76 61 72 20 6a .left.and.right.parens.(defvar.j
62e0 73 32 2d 52 50 20 38 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 4f 4d 4d 41 20 38 38 29 20 s2-RP.87).(defvar.js2-COMMA.88).
6300 20 20 20 20 20 20 20 20 20 3b 20 63 6f 6d 6d 61 20 6f 70 65 72 61 74 6f 72 0a 0a 28 64 65 66 76 .........;.comma.operator..(defv
6320 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 20 38 39 29 20 20 20 20 20 20 20 20 20 3b 20 73 69 6d 70 ar.js2-ASSIGN.89).........;.simp
6340 6c 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 28 3d 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 le.assignment.(=).(defvar.js2-AS
6360 53 49 47 4e 5f 42 49 54 4f 52 20 39 30 29 20 20 20 3b 20 7c 3d 0a 28 64 65 66 76 61 72 20 6a 73 SIGN_BITOR.90)...;.|=.(defvar.js
6380 32 2d 41 53 53 49 47 4e 5f 42 49 54 58 4f 52 20 39 31 29 20 20 3b 20 5e 3d 0a 28 64 65 66 76 61 2-ASSIGN_BITXOR.91)..;.^=.(defva
63a0 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 41 4e 44 20 39 32 29 20 20 3b 20 26 3d 0a 28 64 r.js2-ASSIGN_BITAND.92)..;.&=.(d
63c0 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4c 53 48 20 39 33 29 20 20 20 20 20 3b 20 3c efvar.js2-ASSIGN_LSH.93).....;.<
63e0 3c 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 52 53 48 20 39 34 29 20 20 20 <=.(defvar.js2-ASSIGN_RSH.94)...
6400 20 20 3b 20 3e 3e 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 20 ..;.>>=.(defvar.js2-ASSIGN_URSH.
6420 39 35 29 20 20 20 20 3b 20 3e 3e 3e 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 95)....;.>>>=.(defvar.js2-ASSIGN
6440 5f 41 44 44 20 39 36 29 20 20 20 20 20 3b 20 2b 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 _ADD.96).....;.+=.(defvar.js2-AS
6460 53 49 47 4e 5f 53 55 42 20 39 37 29 20 20 20 20 20 3b 20 2d 3d 0a 28 64 65 66 76 61 72 20 6a 73 SIGN_SUB.97).....;.-=.(defvar.js
6480 32 2d 41 53 53 49 47 4e 5f 4d 55 4c 20 39 38 29 20 20 20 20 20 3b 20 2a 3d 0a 28 64 65 66 76 61 2-ASSIGN_MUL.98).....;.*=.(defva
64a0 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56 20 39 39 29 20 20 20 20 20 3b 20 2f 3d 0a 28 64 r.js2-ASSIGN_DIV.99).....;./=.(d
64c0 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 4f 44 20 31 30 30 29 20 20 20 20 3b 20 25 efvar.js2-ASSIGN_MOD.100)....;.%
64e0 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 45 58 50 4f 4e 20 31 30 31 29 20 =.(defvar.js2-ASSIGN_EXPON.101).
6500 20 3b 20 2a 2a 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 41 4e 44 20 31 30 .;.**=.(defvar.js2-ASSIGN_AND.10
6520 32 29 20 20 20 20 3b 20 26 26 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4f 2)....;.&&=.(defvar.js2-ASSIGN_O
6540 52 20 31 30 33 29 20 20 20 20 20 3b 20 7c 7c 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53 R.103).....;.||=.(defvar.js2-ASS
6560 49 47 4e 5f 4e 55 4c 4c 49 53 48 20 31 30 34 29 20 3b 20 3f 3f 3d 0a 0a 28 64 65 66 76 61 72 20 IGN_NULLISH.104).;.??=..(defvar.
6580 6a 73 32 2d 66 69 72 73 74 2d 61 73 73 69 67 6e 20 6a 73 32 2d 41 53 53 49 47 4e 29 0a 28 64 65 js2-first-assign.js2-ASSIGN).(de
65a0 66 76 61 72 20 6a 73 32 2d 6c 61 73 74 2d 61 73 73 69 67 6e 20 6a 73 32 2d 41 53 53 49 47 4e 5f fvar.js2-last-assign.js2-ASSIGN_
65c0 4e 55 4c 4c 49 53 48 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 4f 4c 4f 4e 20 31 30 35 29 NULLISH)..(defvar.js2-COLON.105)
65e0 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4f 52 20 31 30 36 29 20 20 20 20 20 20 20 20 20 20 20 20 .(defvar.js2-OR.106)............
6600 3b 20 6c 6f 67 69 63 61 6c 20 6f 72 20 28 7c 7c 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 4e ;.logical.or.(||).(defvar.js2-AN
6620 44 20 31 30 37 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 6c 6f 67 69 63 61 6c 20 61 6e 64 20 28 D.107)...........;.logical.and.(
6640 26 26 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 49 4e 43 20 31 30 38 29 20 20 20 20 20 20 20 20 &&).(defvar.js2-INC.108)........
6660 20 20 20 3b 20 69 6e 63 72 65 6d 65 6e 74 2f 64 65 63 72 65 6d 65 6e 74 20 28 2b 2b 20 2d 2d 29 ...;.increment/decrement.(++.--)
6680 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 44 45 43 20 31 30 39 29 0a 28 64 65 66 76 61 72 20 6a 73 .(defvar.js2-DEC.109).(defvar.js
66a0 32 2d 44 4f 54 20 31 31 30 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 65 6d 62 65 72 20 6f 70 2-DOT.110)...........;.member.op
66c0 65 72 61 74 6f 72 20 28 2e 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 20 erator.(.).(defvar.js2-FUNCTION.
66e0 31 31 31 29 20 20 20 20 20 20 3b 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 77 6f 72 64 0a 28 64 65 111)......;.function.keyword.(de
6700 66 76 61 72 20 6a 73 32 2d 45 58 50 4f 52 54 20 31 31 32 29 20 20 20 20 20 20 20 20 3b 20 65 78 fvar.js2-EXPORT.112)........;.ex
6720 70 6f 72 74 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 49 4d 50 4f 52 54 20 port.keyword.(defvar.js2-IMPORT.
6740 31 31 33 29 20 20 20 20 20 20 20 20 3b 20 69 6d 70 6f 72 74 20 6b 65 79 77 6f 72 64 0a 28 64 65 113)........;.import.keyword.(de
6760 66 76 61 72 20 6a 73 32 2d 49 46 20 31 31 34 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 fvar.js2-IF.114)............;.if
6780 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4c 53 45 20 31 31 35 29 20 20 .keyword.(defvar.js2-ELSE.115)..
67a0 20 20 20 20 20 20 20 20 3b 20 65 6c 73 65 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a ........;.else.keyword.(defvar.j
67c0 73 32 2d 53 57 49 54 43 48 20 31 31 36 29 20 20 20 20 20 20 20 20 3b 20 73 77 69 74 63 68 20 6b s2-SWITCH.116)........;.switch.k
67e0 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 41 53 45 20 31 31 37 29 20 20 20 20 eyword.(defvar.js2-CASE.117)....
6800 20 20 20 20 20 20 3b 20 63 61 73 65 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 ......;.case.keyword.(defvar.js2
6820 2d 44 45 46 41 55 4c 54 20 31 31 38 29 20 20 20 20 20 20 20 3b 20 64 65 66 61 75 6c 74 20 6b 65 -DEFAULT.118).......;.default.ke
6840 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 57 48 49 4c 45 20 31 31 39 29 20 20 20 20 yword.(defvar.js2-WHILE.119)....
6860 20 20 20 20 20 3b 20 77 68 69 6c 65 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 .....;.while.keyword.(defvar.js2
6880 2d 44 4f 20 31 32 30 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 20 6b 65 79 77 6f 72 64 -DO.120)............;.do.keyword
68a0 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 46 4f 52 20 31 32 31 29 20 20 20 20 20 20 20 20 20 20 20 .(defvar.js2-FOR.121)...........
68c0 3b 20 66 6f 72 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 42 52 45 41 4b 20 ;.for.keyword.(defvar.js2-BREAK.
68e0 31 32 32 29 20 20 20 20 20 20 20 20 20 3b 20 62 72 65 61 6b 20 6b 65 79 77 6f 72 64 0a 28 64 65 122).........;.break.keyword.(de
6900 66 76 61 72 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 20 31 32 33 29 20 20 20 20 20 20 3b 20 63 6f fvar.js2-CONTINUE.123)......;.co
6920 6e 74 69 6e 75 65 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 56 41 52 20 31 ntinue.keyword.(defvar.js2-VAR.1
6940 32 34 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 76 61 72 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 24)...........;.var.keyword.(def
6960 76 61 72 20 6a 73 32 2d 57 49 54 48 20 31 32 35 29 20 20 20 20 20 20 20 20 20 20 3b 20 77 69 74 var.js2-WITH.125)..........;.wit
6980 68 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 41 54 43 48 20 31 32 36 29 h.keyword.(defvar.js2-CATCH.126)
69a0 20 20 20 20 20 20 20 20 20 3b 20 63 61 74 63 68 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 .........;.catch.keyword.(defvar
69c0 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 20 31 32 37 29 20 20 20 20 20 20 20 3b 20 66 69 6e 61 6c 6c .js2-FINALLY.127).......;.finall
69e0 79 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 56 4f 49 44 20 31 32 38 29 20 y.keyword.(defvar.js2-VOID.128).
6a00 20 20 20 20 20 20 20 20 20 3b 20 76 6f 69 64 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 .........;.void.keyword.(defvar.
6a20 6a 73 32 2d 52 45 53 45 52 56 45 44 20 31 32 39 29 20 20 20 20 20 20 3b 20 72 65 73 65 72 76 65 js2-RESERVED.129)......;.reserve
6a40 64 20 6b 65 79 77 6f 72 64 73 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4d 50 54 59 20 31 33 d.keywords..(defvar.js2-EMPTY.13
6a60 30 29 0a 0a 3b 3b 20 54 79 70 65 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 70 61 72 73 65 20 0)..;;.Types.used.for.the.parse.
6a80 74 72 65 65 20 2d 20 6e 65 76 65 72 20 72 65 74 75 72 6e 65 64 20 62 79 20 73 63 61 6e 6e 65 72 tree.-.never.returned.by.scanner
6aa0 2e 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 42 4c 4f 43 4b 20 31 33 31 29 20 20 20 20 20 20 20 ...(defvar.js2-BLOCK.131).......
6ac0 20 20 3b 20 73 74 61 74 65 6d 65 6e 74 20 62 6c 6f 63 6b 0a 28 64 65 66 76 61 72 20 6a 73 32 2d ..;.statement.block.(defvar.js2-
6ae0 4c 41 42 45 4c 20 31 33 32 29 20 20 20 20 20 20 20 20 20 3b 20 6c 61 62 65 6c 0a 28 64 65 66 76 LABEL.132).........;.label.(defv
6b00 61 72 20 6a 73 32 2d 54 41 52 47 45 54 20 31 33 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c ar.js2-TARGET.133).(defvar.js2-L
6b20 4f 4f 50 20 31 33 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 58 50 52 5f 56 4f 49 44 20 31 OOP.134).(defvar.js2-EXPR_VOID.1
6b40 33 35 29 20 20 20 20 20 3b 20 65 78 70 72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 35).....;.expression.statement.i
6b60 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 n.functions.(defvar.js2-EXPR_RES
6b80 55 4c 54 20 31 33 36 29 20 20 20 3b 20 65 78 70 72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e ULT.136)...;.expression.statemen
6ba0 74 20 69 6e 20 73 63 72 69 70 74 73 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4a 53 52 20 31 33 37 t.in.scripts.(defvar.js2-JSR.137
6bc0 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 43 52 49 50 54 20 31 33 38 29 20 20 20 20 20 20 20 ).(defvar.js2-SCRIPT.138).......
6be0 20 3b 20 74 6f 70 2d 6c 65 76 65 6c 20 6e 6f 64 65 20 66 6f 72 20 65 6e 74 69 72 65 20 73 63 72 .;.top-level.node.for.entire.scr
6c00 69 70 74 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 54 59 50 45 4f 46 4e 41 4d 45 20 31 33 39 29 20 ipt.(defvar.js2-TYPEOFNAME.139).
6c20 20 20 20 3b 20 66 6f 72 20 74 79 70 65 6f 66 28 73 69 6d 70 6c 65 2d 6e 61 6d 65 29 0a 28 64 65 ...;.for.typeof(simple-name).(de
6c40 66 76 61 72 20 6a 73 32 2d 55 53 45 5f 53 54 41 43 4b 20 31 34 30 29 0a 28 64 65 66 76 61 72 20 fvar.js2-USE_STACK.140).(defvar.
6c60 6a 73 32 2d 53 45 54 50 52 4f 50 5f 4f 50 20 31 34 31 29 20 20 20 20 3b 20 78 2e 79 20 6f 70 3d js2-SETPROP_OP.141)....;.x.y.op=
6c80 20 73 6f 6d 65 74 68 69 6e 67 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 45 54 45 4c 45 4d 5f 4f .something.(defvar.js2-SETELEM_O
6ca0 50 20 31 34 32 29 20 20 20 20 3b 20 78 5b 79 5d 20 6f 70 3d 20 73 6f 6d 65 74 68 69 6e 67 0a 28 P.142)....;.x[y].op=.something.(
6cc0 64 65 66 76 61 72 20 6a 73 32 2d 4c 4f 43 41 4c 5f 42 4c 4f 43 4b 20 31 34 33 29 0a 28 64 65 66 defvar.js2-LOCAL_BLOCK.143).(def
6ce0 76 61 72 20 6a 73 32 2d 53 45 54 5f 52 45 46 5f 4f 50 20 31 34 34 29 20 20 20 20 3b 20 2a 72 65 var.js2-SET_REF_OP.144)....;.*re
6d00 66 65 72 65 6e 63 65 20 6f 70 3d 20 73 6f 6d 65 74 68 69 6e 67 0a 0a 3b 3b 20 46 6f 72 20 58 4d ference.op=.something..;;.For.XM
6d20 4c 20 73 75 70 70 6f 72 74 3a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 44 4f 54 44 4f 54 20 31 34 L.support:.(defvar.js2-DOTDOT.14
6d40 35 29 20 20 20 20 20 20 20 20 3b 20 6d 65 6d 62 65 72 20 6f 70 65 72 61 74 6f 72 20 28 2e 2e 29 5)........;.member.operator.(..)
6d60 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 4f 4c 4f 4e 43 4f 4c 4f 4e 20 31 34 36 29 20 20 20 20 .(defvar.js2-COLONCOLON.146)....
6d80 3b 20 6e 61 6d 65 73 70 61 63 65 3a 3a 6e 61 6d 65 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 58 4d ;.namespace::name.(defvar.js2-XM
6da0 4c 20 31 34 37 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 58 4d 4c 20 74 79 70 65 0a 28 64 65 66 L.147)...........;.XML.type.(def
6dc0 76 61 72 20 6a 73 32 2d 44 4f 54 51 55 45 52 59 20 31 34 38 29 20 20 20 20 20 20 3b 20 2e 28 29 var.js2-DOTQUERY.148)......;..()
6de0 20 2d 2d 20 65 2e 67 2e 2c 20 78 2e 65 6d 70 73 2e 65 6d 70 2e 28 6e 61 6d 65 20 3d 3d 20 22 74 .--.e.g.,.x.emps.emp.(name.==."t
6e00 65 72 72 79 22 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 58 4d 4c 41 54 54 52 20 31 34 39 29 20 erry").(defvar.js2-XMLATTR.149).
6e20 20 20 20 20 20 20 3b 20 40 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 58 4d 4c 45 4e 44 20 31 35 30 ......;.@.(defvar.js2-XMLEND.150
6e40 29 0a 0a 3b 3b 20 4f 70 74 69 6d 69 7a 65 72 2d 6f 6e 6c 79 20 74 6f 6b 65 6e 73 0a 28 64 65 66 )..;;.Optimizer-only.tokens.(def
6e60 76 61 72 20 6a 73 32 2d 54 4f 5f 4f 42 4a 45 43 54 20 31 35 31 29 0a 28 64 65 66 76 61 72 20 6a var.js2-TO_OBJECT.151).(defvar.j
6e80 73 32 2d 54 4f 5f 44 4f 55 42 4c 45 20 31 35 32 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 s2-TO_DOUBLE.152)..(defvar.js2-G
6ea0 45 54 20 31 35 33 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 4a 53 20 31 2e 35 20 67 65 74 20 70 ET.153)...........;.JS.1.5.get.p
6ec0 73 65 75 64 6f 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 45 54 20 31 35 seudo.keyword.(defvar.js2-SET.15
6ee0 34 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 4a 53 20 31 2e 35 20 73 65 74 20 70 73 65 75 64 6f 4)...........;.JS.1.5.set.pseudo
6f00 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 45 54 20 31 35 35 29 20 20 20 .keyword.(defvar.js2-LET.155)...
6f20 20 20 20 20 20 20 20 20 3b 20 4a 53 20 31 2e 37 20 6c 65 74 20 70 73 65 75 64 6f 20 6b 65 79 77 ........;.JS.1.7.let.pseudo.keyw
6f40 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 4f 4e 53 54 20 31 35 36 29 0a 28 64 65 66 76 ord.(defvar.js2-CONST.156).(defv
6f60 61 72 20 6a 73 32 2d 53 45 54 43 4f 4e 53 54 20 31 35 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 ar.js2-SETCONST.157).(defvar.js2
6f80 2d 53 45 54 43 4f 4e 53 54 56 41 52 20 31 35 38 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 52 -SETCONSTVAR.158).(defvar.js2-AR
6fa0 52 41 59 43 4f 4d 50 20 31 35 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c 45 54 45 58 50 52 RAYCOMP.159).(defvar.js2-LETEXPR
6fc0 20 31 36 30 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 57 49 54 48 45 58 50 52 20 31 36 31 29 0a .160).(defvar.js2-WITHEXPR.161).
6fe0 28 64 65 66 76 61 72 20 6a 73 32 2d 44 45 42 55 47 47 45 52 20 31 36 32 29 0a 0a 28 64 65 66 76 (defvar.js2-DEBUGGER.162)..(defv
7000 61 72 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 20 31 36 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d ar.js2-COMMENT.163).(defvar.js2-
7020 54 52 49 50 4c 45 44 4f 54 20 31 36 34 29 20 20 20 20 20 3b 20 66 6f 72 20 72 65 73 74 20 70 61 TRIPLEDOT.164).....;.for.rest.pa
7040 72 61 6d 65 74 65 72 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 52 52 4f 57 20 31 36 35 29 20 20 rameter.(defvar.js2-ARROW.165)..
7060 20 20 20 20 20 20 20 3b 20 66 75 6e 63 74 69 6f 6e 20 61 72 72 6f 77 20 28 3d 3e 29 0a 28 64 65 .......;.function.arrow.(=>).(de
7080 66 76 61 72 20 6a 73 32 2d 43 4c 41 53 53 20 31 36 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d fvar.js2-CLASS.166).(defvar.js2-
70a0 45 58 54 45 4e 44 53 20 31 36 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 55 50 45 52 20 31 EXTENDS.167).(defvar.js2-SUPER.1
70c0 36 38 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 54 45 4d 50 4c 41 54 45 5f 48 45 41 44 20 31 36 68).(defvar.js2-TEMPLATE_HEAD.16
70e0 39 29 20 20 20 20 3b 20 70 61 72 74 20 6f 66 20 74 65 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 9)....;.part.of.template.literal
7100 20 62 65 66 6f 72 65 20 73 75 62 73 74 69 74 75 74 69 6f 6e 0a 28 64 65 66 76 61 72 20 6a 73 32 .before.substitution.(defvar.js2
7120 2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 45 20 31 37 30 29 20 3b 20 74 65 6d 70 6c 61 74 -NO_SUBS_TEMPLATE.170).;.templat
7140 65 20 6c 69 74 65 72 61 6c 20 77 69 74 68 6f 75 74 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 0a e.literal.without.substitutions.
7160 28 64 65 66 76 61 72 20 6a 73 32 2d 54 41 47 47 45 44 5f 54 45 4d 50 4c 41 54 45 20 31 37 31 29 (defvar.js2-TAGGED_TEMPLATE.171)
7180 20 20 3b 20 74 61 67 67 65 64 20 74 65 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 0a 0a 28 64 65 ..;.tagged.template.literal..(de
71a0 66 76 61 72 20 6a 73 32 2d 41 57 41 49 54 20 31 37 32 29 20 20 3b 20 61 77 61 69 74 20 28 70 73 fvar.js2-AWAIT.172)..;.await.(ps
71c0 65 75 64 6f 20 6b 65 79 77 6f 72 64 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 48 4f 4f 4b 20 eudo.keyword)..(defvar.js2-HOOK.
71e0 31 37 33 29 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 28 3f 3a 29 173)..........;.conditional.(?:)
7200 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4f 50 54 49 4f 4e 41 4c 2d 43 48 41 49 4e 49 4e 47 20 31 .(defvar.js2-OPTIONAL-CHAINING.1
7220 37 34 29 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 63 68 61 69 6e 69 6e 67 20 28 3f 2e 70 72 6f 70 20 74).;.optional.chaining.(?.prop.
7240 6f 62 6a 3f 2e 5b 65 78 70 72 5d 20 66 75 6e 63 3f 2e 28 29 29 0a 28 64 65 66 76 61 72 20 6a 73 obj?.[expr].func?.()).(defvar.js
7260 32 2d 45 58 50 4f 4e 20 31 37 35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2-EXPON.175).(defvar.js2-NULLISH
7280 2d 43 4f 41 4c 45 53 43 49 4e 47 20 31 37 36 29 20 3b 20 6e 75 6c 6c 69 73 68 20 63 6f 61 6c 65 -COALESCING.176).;.nullish.coale
72a0 73 63 69 6e 67 20 28 6f 62 6a 2e 76 61 6c 75 65 20 3f 3f 20 6f 62 6a 2e 64 65 66 61 75 6c 74 56 scing.(obj.value.??.obj.defaultV
72c0 61 6c 75 65 20 3f 3f 20 30 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 50 52 49 56 41 54 45 alue.??.0))..(defvar.js2-PRIVATE
72e0 5f 4e 41 4d 45 20 31 37 37 29 20 20 20 20 20 20 3b 20 74 68 69 73 2e 23 62 61 72 28 29 3b 0a 0a _NAME.177)......;.this.#bar();..
7300 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 20 28 31 2b 20 6a 73 32 (defconst.js2-num-tokens.(1+.js2
7320 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 64 -PRIVATE_NAME))..(defconst.js2-d
7340 65 62 75 67 2d 70 72 69 6e 74 2d 74 72 65 65 73 20 6e 69 6c 29 0a 0a 3b 3b 20 52 68 69 6e 6f 20 ebug-print-trees.nil)..;;.Rhino.
7360 61 63 63 65 70 74 73 20 61 6e 79 20 73 74 72 69 6e 67 20 6f 72 20 73 74 72 65 61 6d 20 61 73 20 accepts.any.string.or.stream.as.
7380 69 6e 70 75 74 2e 20 20 45 6d 61 63 73 20 63 68 61 72 61 63 74 65 72 0a 3b 3b 20 70 72 6f 63 65 input...Emacs.character.;;.proce
73a0 73 73 69 6e 67 20 77 6f 72 6b 73 20 62 65 73 74 20 69 6e 20 62 75 66 66 65 72 73 2c 20 73 6f 20 ssing.works.best.in.buffers,.so.
73c0 77 65 27 6c 6c 20 61 73 73 75 6d 65 20 74 68 65 20 69 6e 70 75 74 20 69 73 20 61 0a 3b 3b 20 62 we'll.assume.the.input.is.a.;;.b
73e0 75 66 66 65 72 2e 20 20 4a 61 76 61 53 63 72 69 70 74 20 73 74 72 69 6e 67 73 20 63 61 6e 20 62 uffer...JavaScript.strings.can.b
7400 65 20 63 6f 70 69 65 64 20 69 6e 74 6f 20 74 65 6d 70 20 62 75 66 66 65 72 73 20 62 65 66 6f 72 e.copied.into.temp.buffers.befor
7420 65 0a 3b 3b 20 73 63 61 6e 6e 69 6e 67 20 74 68 65 6d 2e 0a 0a 3b 3b 20 42 75 66 66 65 72 2d 6c e.;;.scanning.them...;;.Buffer-l
7440 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 79 69 65 6c 64 20 6d 75 63 68 20 63 6c 65 61 6e 65 ocal.variables.yield.much.cleane
7460 72 20 63 6f 64 65 20 74 68 61 6e 20 75 73 69 6e 67 20 60 64 65 66 73 74 72 75 63 74 27 2e 0a 3b r.code.than.using.`defstruct'..;
7480 3b 20 54 68 65 79 27 72 65 20 74 68 65 20 45 6d 61 63 73 20 65 71 75 69 76 61 6c 65 6e 74 20 6f ;.They're.the.Emacs.equivalent.o
74a0 66 20 69 6e 73 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 73 2c 20 6d 6f 72 65 20 6f 72 20 6c 65 f.instance.variables,.more.or.le
74c0 73 73 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d ss...(js2-deflocal.js2-ts-dirty-
74e0 6c 69 6e 65 20 6e 69 6c 0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d line.nil..."Token.stream.buffer-
7500 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 0a 49 6e 64 69 63 61 74 65 73 20 73 74 75 66 66 20 local.variable..Indicates.stuff.
7520 6f 74 68 65 72 20 74 68 61 6e 20 77 68 69 74 65 73 70 61 63 65 20 73 69 6e 63 65 20 73 74 61 72 other.than.whitespace.since.star
7540 74 20 6f 66 20 6c 69 6e 65 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d t.of.line.")..(js2-deflocal.js2-
7560 74 73 2d 68 69 74 2d 65 6f 66 20 6e 69 6c 0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 ts-hit-eof.nil..."Token.stream.b
7580 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 3b 3b 20 46 49 58 4d uffer-local.variable.")..;;.FIXM
75a0 45 3a 20 55 6e 75 73 65 64 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d E:.Unused..(js2-deflocal.js2-ts-
75c0 6c 69 6e 65 2d 73 74 61 72 74 20 30 0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 line-start.0..."Token.stream.buf
75e0 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c fer-local.variable.")..(js2-defl
7600 6f 63 61 6c 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 20 31 0a 20 20 22 54 6f 6b 65 6e 20 73 74 ocal.js2-ts-lineno.1..."Token.st
7620 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 3b ream.buffer-local.variable.")..;
7640 3b 20 46 49 58 4d 45 3a 20 55 6e 75 73 65 64 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a ;.FIXME:.Unused..(js2-deflocal.j
7660 73 32 2d 74 73 2d 6c 69 6e 65 2d 65 6e 64 2d 63 68 61 72 20 2d 31 0a 20 20 22 54 6f 6b 65 6e 20 s2-ts-line-end-char.-1..."Token.
7680 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a stream.buffer-local.variable.").
76a0 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 31 20 20 .(js2-deflocal.js2-ts-cursor.1..
76c0 3b 20 65 6d 61 63 73 20 62 75 66 66 65 72 73 20 61 72 65 20 31 2d 69 6e 64 65 78 65 64 0a 20 20 ;.emacs.buffers.are.1-indexed...
76e0 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 "Token.stream.buffer-local.varia
7700 62 6c 65 2e 0a 43 75 72 72 65 6e 74 20 73 63 61 6e 20 70 6f 73 69 74 69 6f 6e 2e 22 29 0a 0a 3b ble..Current.scan.position.")..;
7720 3b 20 46 49 58 4d 45 3a 20 55 6e 75 73 65 64 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a ;.FIXME:.Unused..(js2-deflocal.j
7740 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 72 69 62 75 74 65 20 6e 69 6c 0a 20 20 22 54 6f s2-ts-is-xml-attribute.nil..."To
7760 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 ken.stream.buffer-local.variable
7780 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 .")..(js2-deflocal.js2-ts-xml-is
77a0 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c 0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d -tag-content.nil..."Token.stream
77c0 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32 2d .buffer-local.variable.")..(js2-
77e0 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f deflocal.js2-ts-xml-open-tags-co
7800 75 6e 74 20 30 0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 unt.0..."Token.stream.buffer-loc
7820 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 al.variable.")..(js2-deflocal.js
7840 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 54 6f 6b 65 6e 20 2-ts-string-buffer.nil..."Token.
7860 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 0a 4c 69 stream.buffer-local.variable..Li
7880 73 74 20 6f 66 20 63 68 61 72 73 20 62 75 69 6c 74 20 75 70 20 77 68 69 6c 65 20 73 63 61 6e 6e st.of.chars.built.up.while.scann
78a0 69 6e 67 20 76 61 72 69 6f 75 73 20 74 6f 6b 65 6e 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74 ing.various.tokens.")..(cl-defst
78c0 72 75 63 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ruct.(js2-token................(
78e0 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 74 6f 6b 65 6e 20 28 62 65 67 :constructor.make-js2-token.(beg
7900 29 29 29 0a 20 20 22 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 74 )))..."Value.returned.from.the.t
7920 6f 6b 65 6e 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 74 79 70 65 20 6a 73 32 2d 45 4f 46 29 0a 20 oken.stream."...(type.js2-EOF)..
7940 20 28 62 65 67 20 31 29 0a 20 20 28 65 6e 64 20 2d 31 29 0a 20 20 28 73 74 72 69 6e 67 20 22 22 .(beg.1)...(end.-1)...(string.""
7960 29 0a 20 20 6e 75 6d 62 65 72 0a 20 20 6e 75 6d 62 65 72 2d 62 61 73 65 0a 20 20 6e 75 6d 62 65 )...number...number-base...numbe
7980 72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 0a 20 20 72 65 67 65 78 70 2d 66 6c 61 67 73 0a r-legacy-octal-p...regexp-flags.
79a0 20 20 63 6f 6d 6d 65 6e 74 2d 74 79 70 65 0a 20 20 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 29 0a ..comment-type...follows-eol-p).
79c0 0a 3b 3b 20 48 61 76 65 20 74 6f 20 63 61 6c 6c 20 60 6a 73 32 2d 69 6e 69 74 2d 73 63 61 6e 6e .;;.Have.to.call.`js2-init-scann
79e0 65 72 27 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 76 61 6c 75 65 73 2e 0a 28 6a er'.to.initialize.the.values..(j
7a00 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 6e 69 6c 29 0a 28 s2-deflocal.js2-ti-tokens.nil).(
7a20 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f js2-deflocal.js2-ti-tokens-curso
7a40 72 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b r.nil).(js2-deflocal.js2-ti-look
7a60 61 68 65 61 64 20 6e 69 6c 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 74 ahead.nil)..(cl-defstruct.(js2-t
7a80 73 2d 73 74 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 s-state................(:constru
7aa0 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65 20 28 26 6b 65 79 20 28 6c 69 ctor.make-js2-ts-state.(&key.(li
7ac0 6e 65 6e 6f 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 neno.js2-ts-lineno).............
7ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7b00 20 20 20 20 20 20 20 20 20 28 63 75 72 73 6f 72 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a .........(cursor.js2-ts-cursor).
7b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 73 20 28 63 6f .....................(tokens.(co
7b60 70 79 2d 73 65 71 75 65 6e 63 65 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 py-sequence.js2-ti-tokens)).....
7b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20 .................(tokens-cursor.
7bc0 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 js2-ti-tokens-cursor)...........
7be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7c00 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 61 68 65 61 64 20 6a 73 32 2d 74 69 2d 6c 6f 6f ...........(lookahead.js2-ti-loo
7c20 6b 61 68 65 61 64 29 29 29 29 0a 20 20 6c 69 6e 65 6e 6f 0a 20 20 63 75 72 73 6f 72 0a 20 20 74 kahead))))...lineno...cursor...t
7c40 6f 6b 65 6e 73 0a 20 20 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 0a 20 20 6c 6f 6f 6b 61 68 65 61 okens...tokens-cursor...lookahea
7c60 64 29 0a 0a 3b 3b 3b 20 50 61 72 73 65 72 20 76 61 72 69 61 62 6c 65 73 0a 0a 28 6a 73 32 2d 64 d)..;;;.Parser.variables..(js2-d
7c80 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 6e 69 6c 0a 20 20 eflocal.js2-parsed-errors.nil...
7ca0 22 4c 69 73 74 20 6f 66 20 65 72 72 6f 72 73 20 70 72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20 "List.of.errors.produced.during.
7cc0 73 63 61 6e 6e 69 6e 67 2f 70 61 72 73 69 6e 67 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 scanning/parsing.")..(js2-defloc
7ce0 61 6c 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 20 6e 69 6c 0a 20 20 22 4c 69 al.js2-parsed-warnings.nil..."Li
7d00 73 74 20 6f 66 20 77 61 72 6e 69 6e 67 73 20 70 72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20 73 st.of.warnings.produced.during.s
7d20 63 61 6e 6e 69 6e 67 2f 70 61 72 73 69 6e 67 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 canning/parsing.")..(js2-defloca
7d40 6c 20 6a 73 32 2d 72 65 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 20 l.js2-recover-from-parse-errors.
7d60 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 70 61 72 73 69 6e 67 t..."Non-nil.to.continue.parsing
7d80 20 61 66 74 65 72 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 2e 0a 0a 49 6e 20 72 65 63 6f 76 .after.a.syntax.error...In.recov
7da0 65 72 79 20 6d 6f 64 65 2c 20 74 68 65 20 41 53 54 20 77 69 6c 6c 20 62 65 20 62 75 69 6c 74 20 ery.mode,.the.AST.will.be.built.
7dc0 69 6e 20 66 75 6c 6c 2c 20 61 6e 64 20 61 6e 79 20 65 72 72 6f 72 0a 6e 6f 64 65 73 20 77 69 6c in.full,.and.any.error.nodes.wil
7de0 6c 20 62 65 20 66 6c 61 67 67 65 64 20 77 69 74 68 20 61 70 70 72 6f 70 72 69 61 74 65 20 65 72 l.be.flagged.with.appropriate.er
7e00 72 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 49 66 0a 74 68 69 73 20 66 6c 61 67 20 69 ror.information...If.this.flag.i
7e20 73 20 6e 69 6c 2c 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20 77 69 6c 6c 20 72 65 73 75 6c s.nil,.a.syntax.error.will.resul
7e40 74 20 69 6e 20 61 6e 20 65 72 72 6f 72 20 62 65 69 6e 67 0a 73 69 67 6e 61 6c 65 64 2e 0a 0a 54 t.in.an.error.being.signaled...T
7e60 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75 66 he.variable.is.automatically.buf
7e80 66 65 72 2d 6c 6f 63 61 6c 2c 20 62 65 63 61 75 73 65 20 64 69 66 66 65 72 65 6e 74 0a 6d 6f 64 fer-local,.because.different.mod
7ea0 65 73 20 74 68 61 74 20 75 73 65 20 74 68 65 20 70 61 72 73 65 72 20 77 69 6c 6c 20 6e 65 65 64 es.that.use.the.parser.will.need
7ec0 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 74 69 6e 67 73 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 .different.settings.")..(js2-def
7ee0 6c 6f 63 61 6c 20 6a 73 32 2d 70 61 72 73 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 4c 69 73 74 local.js2-parse-hook.nil..."List
7f00 20 6f 66 20 63 61 6c 6c 62 61 63 6b 73 20 66 6f 72 20 72 65 63 65 69 76 69 6e 67 20 70 61 72 73 .of.callbacks.for.receiving.pars
7f20 69 6e 67 20 70 72 6f 67 72 65 73 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 70 61 72 ing.progress.")..(defvar.js2-par
7f40 73 65 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 se-finished-hook.nil..."List.of.
7f60 63 61 6c 6c 62 61 63 6b 73 20 74 6f 20 6e 6f 74 69 66 79 20 77 68 65 6e 20 70 61 72 73 69 6e 67 callbacks.to.notify.when.parsing
7f80 20 66 69 6e 69 73 68 65 73 2e 0a 4e 6f 74 20 63 61 6c 6c 65 64 20 69 66 20 70 61 72 73 69 6e 67 .finishes..Not.called.if.parsing
7fa0 20 77 61 73 20 69 6e 74 65 72 72 75 70 74 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 .was.interrupted.")..(js2-defloc
7fc0 61 6c 20 6a 73 32 2d 69 73 2d 65 76 61 6c 2d 63 6f 64 65 20 6e 69 6c 0a 20 20 22 54 72 75 65 20 al.js2-is-eval-code.nil..."True.
7fe0 69 66 20 77 65 27 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 63 6f 64 65 20 69 6e 20 61 20 73 74 if.we're.evaluating.code.in.a.st
8000 72 69 6e 67 2e 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 74 6f 6b 65 6e 69 7a 65 72 20 ring..If.non-nil,.the.tokenizer.
8020 77 69 6c 6c 20 72 65 63 6f 72 64 20 74 68 65 20 74 6f 6b 65 6e 20 74 65 78 74 2c 20 61 6e 64 20 will.record.the.token.text,.and.
8040 74 68 65 20 41 53 54 20 6e 6f 64 65 73 0a 77 69 6c 6c 20 72 65 63 6f 72 64 20 74 68 65 69 72 20 the.AST.nodes.will.record.their.
8060 73 6f 75 72 63 65 20 74 65 78 74 2e 20 20 4f 66 66 20 62 79 20 64 65 66 61 75 6c 74 20 66 6f 72 source.text...Off.by.default.for
8080 20 49 44 45 20 6d 6f 64 65 73 2c 20 73 69 6e 63 65 20 74 68 65 0a 74 65 78 74 20 69 73 20 61 76 .IDE.modes,.since.the.text.is.av
80a0 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 ailable.in.the.buffer.")..(defva
80c0 72 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d 6f 64 65 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 r.js2-parse-ide-mode.t..."Non-ni
80e0 6c 20 69 66 20 74 68 65 20 70 61 72 73 65 72 20 69 73 20 62 65 69 6e 67 20 75 73 65 64 20 66 6f l.if.the.parser.is.being.used.fo
8100 72 20 60 6a 73 32 2d 6d 6f 64 65 27 2e 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 70 61 r.`js2-mode'..If.non-nil,.the.pa
8120 72 73 65 72 20 77 69 6c 6c 20 73 65 74 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 66 6f rser.will.set.text.properties.fo
8140 72 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 0a 61 6e 64 20 74 68 65 20 73 79 6e 74 61 78 20 74 r.fontification.and.the.syntax.t
8160 61 62 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65 20 73 68 6f 75 6c 64 20 62 65 20 6e 69 6c 20 77 able...The.value.should.be.nil.w
8180 68 65 6e 20 75 73 69 6e 67 20 74 68 65 0a 70 61 72 73 65 72 20 61 73 20 61 20 66 72 6f 6e 74 65 hen.using.the.parser.as.a.fronte
81a0 6e 64 20 74 6f 20 61 6e 20 69 6e 74 65 72 70 72 65 74 65 72 20 6f 72 20 62 79 74 65 20 63 6f 6d nd.to.an.interpreter.or.byte.com
81c0 70 69 6c 65 72 2e 22 29 0a 0a 3b 3b 3b 20 50 61 72 73 65 72 20 69 6e 73 74 61 6e 63 65 20 76 61 piler.")..;;;.Parser.instance.va
81e0 72 69 61 62 6c 65 73 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 73 20 66 6f 72 20 6a riables.(buffer-local.vars.for.j
8200 73 32 2d 70 61 72 73 65 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 74 69 2d 61 66 74 65 s2-parse)..(defconst.js2-ti-afte
8220 72 2d 65 6f 6c 20 28 6c 73 68 20 31 20 31 36 29 0a 20 20 22 46 6c 61 67 3a 20 20 66 69 72 73 74 r-eol.(lsh.1.16)..."Flag:..first
8240 20 74 6f 6b 65 6e 20 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 6c 69 6e 65 2e 22 29 0a 0a 3b 3b .token.of.the.source.line.")..;;
8260 20 49 6e 6c 69 6e 65 20 52 68 69 6e 6f 27 73 20 43 6f 6d 70 69 6c 65 72 45 6e 76 69 72 6f 6e 73 .Inline.Rhino's.CompilerEnvirons
8280 20 76 61 72 73 20 61 73 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 73 2e 0a 0a 28 6a 73 32 2d 64 65 .vars.as.buffer-locals...(js2-de
82a0 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 67 65 6e 65 72 61 74 65 2d 64 65 62 flocal.js2-compiler-generate-deb
82c0 75 67 2d 69 6e 66 6f 20 74 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d ug-info.t).(js2-deflocal.js2-com
82e0 70 69 6c 65 72 2d 75 73 65 2d 64 79 6e 61 6d 69 63 2d 73 63 6f 70 65 20 6e 69 6c 29 0a 28 6a 73 piler-use-dynamic-scope.nil).(js
8300 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 72 65 73 65 72 76 65 64 2-deflocal.js2-compiler-reserved
8320 2d 6b 65 79 77 6f 72 64 73 2d 61 73 2d 69 64 65 6e 74 69 66 69 65 72 20 6e 69 6c 29 0a 28 6a 73 -keywords-as-identifier.nil).(js
8340 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 78 6d 6c 2d 61 76 61 69 2-deflocal.js2-compiler-xml-avai
8360 6c 61 62 6c 65 20 74 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 lable.t).(js2-deflocal.js2-compi
8380 6c 65 72 2d 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2d 6c 65 76 65 6c 20 30 29 0a 28 6a 73 32 2d 64 ler-optimization-level.0).(js2-d
83a0 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 67 65 6e 65 72 61 74 69 6e 67 2d eflocal.js2-compiler-generating-
83c0 73 6f 75 72 63 65 20 74 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 source.t).(js2-deflocal.js2-comp
83e0 69 6c 65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f iler-strict-mode.nil).(js2-deflo
8400 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 2d cal.js2-compiler-report-warning-
8420 61 73 2d 65 72 72 6f 72 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d as-error.nil).(js2-deflocal.js2-
8440 63 6f 6d 70 69 6c 65 72 2d 67 65 6e 65 72 61 74 65 2d 6f 62 73 65 72 76 65 72 2d 63 6f 75 6e 74 compiler-generate-observer-count
8460 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 .nil).(js2-deflocal.js2-compiler
8480 2d 61 63 74 69 76 61 74 69 6f 6e 2d 6e 61 6d 65 73 20 6e 69 6c 29 0a 0a 3b 3b 20 53 4b 49 50 3a -activation-names.nil)..;;.SKIP:
84a0 20 20 73 6f 75 72 63 65 55 52 49 0a 0a 3b 3b 20 54 68 65 72 65 27 73 20 61 20 63 6f 6d 70 69 6c ..sourceURI..;;.There's.a.compil
84c0 65 46 75 6e 63 74 69 6f 6e 20 6d 65 74 68 6f 64 20 69 6e 20 43 6f 6e 74 65 78 74 2e 6a 61 76 61 eFunction.method.in.Context.java
84e0 20 2d 20 6d 61 79 20 6e 65 65 64 20 69 74 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 .-.may.need.it..(js2-deflocal.js
8500 32 2d 63 61 6c 6c 65 64 2d 62 79 2d 63 6f 6d 70 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 2-called-by-compile-function.nil
8520 0a 20 20 22 54 72 75 65 20 69 66 20 60 6a 73 32 2d 70 61 72 73 65 27 20 77 61 73 20 63 61 6c 6c ..."True.if.`js2-parse'.was.call
8540 65 64 20 62 79 20 60 6a 73 32 2d 63 6f 6d 70 69 6c 65 2d 66 75 6e 63 74 69 6f 6e 27 2e 0a 57 69 ed.by.`js2-compile-function'..Wi
8560 6c 6c 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 77 68 65 6e 20 77 65 20 66 69 6e 69 73 68 20 69 ll.only.be.used.when.we.finish.i
8580 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 22 29 0a 0a mplementing.the.interpreter.")..
85a0 3b 3b 20 53 4b 49 50 3a 20 20 74 73 20 20 28 77 65 20 6a 75 73 74 20 63 61 6c 6c 20 60 6a 73 32 ;;.SKIP:..ts..(we.just.call.`js2
85c0 2d 69 6e 69 74 2d 73 63 61 6e 6e 65 72 27 20 61 6e 64 20 75 73 65 20 69 74 73 20 76 61 72 73 29 -init-scanner'.and.use.its.vars)
85e0 0a 0a 3b 3b 20 53 4b 49 50 3a 20 20 6e 6f 64 65 20 66 61 63 74 6f 72 79 20 2d 20 77 65 27 72 65 ..;;.SKIP:..node.factory.-.we're
8600 20 67 6f 69 6e 67 20 74 6f 20 6a 75 73 74 20 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 64 69 .going.to.just.call.functions.di
8620 72 65 63 74 6c 79 2c 0a 3b 3b 20 61 6e 64 20 65 76 65 6e 74 75 61 6c 6c 79 20 67 6f 20 74 6f 20 rectly,.;;.and.eventually.go.to.
8640 61 20 75 6e 69 66 69 65 64 20 41 53 54 20 66 6f 72 6d 61 74 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c a.unified.AST.format...(js2-defl
8660 6f 63 61 6c 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 20 30 29 0a ocal.js2-nesting-of-function.0).
8680 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e .(js2-deflocal.js2-recorded-iden
86a0 74 69 66 69 65 72 73 20 6e 69 6c 0a 20 20 22 54 72 61 63 6b 73 20 69 64 65 6e 74 69 66 69 65 72 tifiers.nil..."Tracks.identifier
86c0 73 20 66 6f 75 6e 64 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 2e 22 29 0a 0a 28 6a 73 32 2d s.found.during.parsing.")..(js2-
86e0 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 deflocal.js2-is-in-destructuring
8700 20 6e 69 6c 0a 20 20 22 54 72 75 65 20 77 68 69 6c 65 20 70 61 72 73 69 6e 67 20 64 65 73 74 72 .nil..."True.while.parsing.destr
8720 75 63 74 75 72 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 ucturing.expression.")..(js2-def
8740 6c 6f 63 61 6c 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 local.js2-in-use-strict-directiv
8760 65 20 6e 69 6c 0a 20 20 22 54 72 75 65 20 77 68 69 6c 65 20 69 6e 73 69 64 65 20 61 20 73 63 72 e.nil..."True.while.inside.a.scr
8780 69 70 74 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 75 6e 64 65 72 20 73 74 72 69 63 74 20 6d 6f 64 ipt.or.function.under.strict.mod
87a0 65 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 67 6c 6f 62 61 6c 2d 65 78 74 65 e.")..(defcustom.js2-global-exte
87c0 72 6e 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 61 6e 79 20 65 78 74 65 72 6e 20 rns.nil..."A.list.of.any.extern.
87e0 6e 61 6d 65 73 20 79 6f 75 27 64 20 6c 69 6b 65 20 74 6f 20 63 6f 6e 73 69 64 65 72 20 61 6c 77 names.you'd.like.to.consider.alw
8800 61 79 73 20 64 65 63 6c 61 72 65 64 2e 0a 54 68 69 73 20 6c 69 73 74 20 69 73 20 67 6c 6f 62 61 ays.declared..This.list.is.globa
8820 6c 20 61 6e 64 20 69 73 20 75 73 65 64 20 62 79 20 61 6c 6c 20 60 6a 73 32 2d 6d 6f 64 65 27 20 l.and.is.used.by.all.`js2-mode'.
8840 66 69 6c 65 73 2e 0a 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 62 75 66 66 65 72 2d 6c 6f 63 files..You.can.create.buffer-loc
8860 61 6c 20 65 78 74 65 72 6e 73 20 6c 69 73 74 20 75 73 69 6e 67 20 60 6a 73 32 2d 61 64 64 69 74 al.externs.list.using.`js2-addit
8880 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 6c 69 73 74 0a 20 ional-externs'."...:type.'list..
88a0 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a .:group.'js2-mode)..(defcustom.j
88c0 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 20 74 0a 20 20 22 s2-include-browser-externs.t..."
88e0 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 69 6e 63 6c 75 64 65 20 62 72 6f 77 73 65 72 20 65 78 74 65 72 Non-nil.to.include.browser.exter
8900 6e 73 20 69 6e 20 74 68 65 20 6d 61 73 74 65 72 20 65 78 74 65 72 6e 73 20 6c 69 73 74 2e 0a 49 ns.in.the.master.externs.list..I
8920 66 20 79 6f 75 20 77 6f 72 6b 20 6f 6e 20 4a 61 76 61 53 63 72 69 70 74 20 66 69 6c 65 73 20 74 f.you.work.on.JavaScript.files.t
8940 68 61 74 20 61 72 65 20 6e 6f 74 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 62 72 6f 77 73 65 72 hat.are.not.intended.for.browser
8960 73 2c 0a 73 75 63 68 20 61 73 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 20 73 65 72 76 65 72 2d s,.such.as.Mozilla.Rhino.server-
8980 73 69 64 65 20 4a 61 76 61 53 63 72 69 70 74 2c 20 73 65 74 20 74 68 69 73 20 74 6f 20 6e 69 6c side.JavaScript,.set.this.to.nil
89a0 2e 0a 53 65 65 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 20 66 ..See.`js2-additional-externs'.f
89c0 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 65 78 74 65 72 6e or.more.information.about.extern
89e0 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a s."...:type.'boolean...:group.'j
8a00 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65 s2-mode)..(defcustom.js2-include
8a20 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f -rhino-externs.nil..."Non-nil.to
8a40 20 69 6e 63 6c 75 64 65 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 20 65 78 74 65 72 6e 73 20 69 .include.Mozilla.Rhino.externs.i
8a60 6e 20 74 68 65 20 6d 61 73 74 65 72 20 65 78 74 65 72 6e 73 20 6c 69 73 74 2e 0a 53 65 65 20 60 n.the.master.externs.list..See.`
8a80 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 20 66 6f 72 20 6d 6f 72 65 js2-additional-externs'.for.more
8aa0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 65 78 74 65 72 6e 73 2e 22 0a 20 20 3a .information.about.externs."...:
8ac0 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 type.'boolean...:group.'js2-mode
8ae0 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6e 6f 64 65 2d 65 )..(defcustom.js2-include-node-e
8b00 78 74 65 72 6e 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 69 6e 63 6c 75 64 65 xterns.nil..."Non-nil.to.include
8b20 20 4e 6f 64 65 2e 6a 73 20 65 78 74 65 72 6e 73 20 69 6e 20 74 68 65 20 6d 61 73 74 65 72 20 65 .Node.js.externs.in.the.master.e
8b40 78 74 65 72 6e 73 20 6c 69 73 74 2e 0a 53 65 65 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c xterns.list..See.`js2-additional
8b60 2d 65 78 74 65 72 6e 73 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 -externs'.for.more.information.a
8b80 62 6f 75 74 20 65 78 74 65 72 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a bout.externs."...:type.'boolean.
8ba0 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 ..:group.'js2-mode)..(js2-defloc
8bc0 61 6c 20 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 20 6e 69 6c 0a 20 20 al.js2-additional-externs.nil...
8be0 22 41 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e "A.buffer-local.list.of.addition
8c00 61 6c 20 65 78 74 65 72 6e 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 49 74 20 69 73 20 al.external.declarations..It.is.
8c20 75 73 65 64 20 74 6f 20 64 65 63 69 64 65 20 77 68 65 74 68 65 72 20 76 61 72 69 61 62 6c 65 73 used.to.decide.whether.variables
8c40 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 75 6e 64 65 63 6c 61 72 65 64 0a 66 6f 72 20 70 .are.considered.undeclared.for.p
8c60 75 72 70 6f 73 65 73 20 6f 66 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2e 20 20 53 65 65 20 60 6a urposes.of.highlighting...See.`j
8c80 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64 65 63 6c 61 72 65 64 2d 76 61 72 73 27 2e 0a 0a s2-highlight-undeclared-vars'...
8ca0 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 61 20 4c 69 73 70 20 73 74 72 69 6e 67 2e 20 20 54 68 Each.entry.is.a.Lisp.string...Th
8cc0 65 20 73 74 72 69 6e 67 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 66 75 6c 6c 79 20 71 75 61 e.string.should.be.the.fully.qua
8ce0 6c 69 66 69 65 64 0a 6e 61 6d 65 20 6f 66 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 65 6e 74 69 74 lified.name.of.an.external.entit
8d00 79 2e 20 20 41 6c 6c 20 65 78 74 65 72 6e 73 20 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 20 y...All.externs.should.be.added.
8d20 74 6f 20 74 68 69 73 20 6c 69 73 74 2c 0a 73 6f 20 74 68 61 74 20 61 73 20 6a 73 32 2d 6d 6f 64 to.this.list,.so.that.as.js2-mod
8d40 65 27 73 20 70 72 6f 63 65 73 73 69 6e 67 20 69 6d 70 72 6f 76 65 73 20 69 74 20 63 61 6e 20 74 e's.processing.improves.it.can.t
8d60 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 6d 2e 0a 0a 59 6f 75 20 6d 61 79 20 ake.advantage.of.them...You.may.
8d80 77 61 6e 74 20 74 6f 20 64 65 63 6c 61 72 65 20 79 6f 75 72 20 65 78 74 65 72 6e 73 20 69 6e 20 want.to.declare.your.externs.in.
8da0 74 68 72 65 65 20 77 61 79 73 2e 0a 46 69 72 73 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 65 three.ways..First,.you.can.add.e
8dc0 78 74 65 72 6e 73 20 74 68 61 74 20 61 72 65 20 76 61 6c 69 64 20 66 6f 72 20 61 6c 6c 20 79 6f xterns.that.are.valid.for.all.yo
8de0 75 72 20 4a 61 76 61 53 63 72 69 70 74 20 66 69 6c 65 73 2e 0a 59 6f 75 20 73 68 6f 75 6c 64 20 ur.JavaScript.files..You.should.
8e00 70 72 6f 62 61 62 6c 79 20 64 6f 20 74 68 69 73 20 62 79 20 61 64 64 69 6e 67 20 74 68 65 6d 20 probably.do.this.by.adding.them.
8e20 74 6f 20 60 6a 73 32 2d 67 6c 6f 62 61 6c 2d 65 78 74 65 72 6e 73 27 2c 20 77 68 69 63 68 0a 69 to.`js2-global-externs',.which.i
8e40 73 20 61 20 67 6c 6f 62 61 6c 20 6c 69 73 74 20 75 73 65 64 20 66 6f 72 20 61 6c 6c 20 6a 73 32 s.a.global.list.used.for.all.js2
8e60 2d 6d 6f 64 65 20 66 69 6c 65 73 2e 0a 0a 4e 65 78 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 -mode.files...Next,.you.can.add.
8e80 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 60 6a 73 32 2d 69 6e 69 74 2d 68 6f 6f 6b 27 20 74 68 a.function.to.`js2-init-hook'.th
8ea0 61 74 20 61 64 64 73 20 61 64 64 69 74 69 6f 6e 61 6c 0a 65 78 74 65 72 6e 73 20 61 70 70 72 6f at.adds.additional.externs.appro
8ec0 70 72 69 61 74 65 20 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 63 20 66 69 6c 65 2c 20 70 65 priate.for.the.specific.file,.pe
8ee0 72 68 61 70 73 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 70 61 74 68 2e 0a 54 68 65 73 65 20 73 rhaps.based.on.its.path..These.s
8f00 68 6f 75 6c 64 20 67 6f 20 69 6e 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 hould.go.in.`js2-additional-exte
8f20 72 6e 73 27 2c 20 77 68 69 63 68 20 69 73 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2e 0a 0a 54 68 rns',.which.is.buffer-local...Th
8f40 69 72 64 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 4a 53 4c 69 6e 74 27 73 20 67 6c 6f 62 61 6c ird,.you.can.use.JSLint's.global
8f60 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 61 73 20 6c 6f 6e 67 20 61 73 0a 60 6a 73 32 2d 69 6e .declaration,.as.long.as.`js2-in
8f80 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c clude-jslint-globals'.is.non-nil
8fa0 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 46 69 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 ,.which.see...Finally,.you.can.a
8fc0 64 64 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 60 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 dd.a.function.to.`js2-post-parse
8fe0 2d 63 61 6c 6c 62 61 63 6b 73 27 2c 0a 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 61 66 74 -callbacks',.which.is.called.aft
9000 65 72 20 70 61 72 73 69 6e 67 20 63 6f 6d 70 6c 65 74 65 73 2c 20 61 6e 64 20 60 6a 73 32 2d 6d er.parsing.completes,.and.`js2-m
9020 6f 64 65 2d 61 73 74 27 20 69 73 20 62 6f 75 6e 64 20 74 6f 0a 74 68 65 20 72 6f 6f 74 20 6f 66 ode-ast'.is.bound.to.the.root.of
9040 20 74 68 65 20 70 61 72 73 65 20 74 72 65 65 2e 20 20 41 74 20 74 68 69 73 20 73 74 61 67 65 20 .the.parse.tree...At.this.stage.
9060 79 6f 75 20 63 61 6e 20 73 65 74 20 75 70 20 61 6e 20 41 53 54 0a 6e 6f 64 65 20 76 69 73 69 74 you.can.set.up.an.AST.node.visit
9080 6f 72 20 75 73 69 6e 67 20 60 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 27 20 61 6e 64 20 65 78 61 or.using.`js2-visit-ast'.and.exa
90a0 6d 69 6e 65 20 74 68 65 20 70 61 72 73 65 20 74 72 65 65 0a 66 6f 72 20 73 70 65 63 69 66 69 63 mine.the.parse.tree.for.specific
90c0 20 69 6d 70 6f 72 74 20 70 61 74 74 65 72 6e 73 20 74 68 61 74 20 6d 61 79 20 69 6d 70 6c 79 20 .import.patterns.that.may.imply.
90e0 74 68 65 20 65 78 69 73 74 65 6e 63 65 20 6f 66 0a 6f 74 68 65 72 20 65 78 74 65 72 6e 73 2c 20 the.existence.of.other.externs,.
9100 70 6f 73 73 69 62 6c 79 20 74 69 65 64 20 74 6f 20 79 6f 75 72 20 62 75 69 6c 64 20 73 79 73 74 possibly.tied.to.your.build.syst
9120 65 6d 2e 20 20 54 68 65 73 65 20 73 68 6f 75 6c 64 20 61 6c 73 6f 0a 62 65 20 61 64 64 65 64 20 em...These.should.also.be.added.
9140 74 6f 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 2e 0a 0a 59 6f to.`js2-additional-externs'...Yo
9160 75 72 20 70 6f 73 74 2d 70 61 72 73 65 20 63 61 6c 6c 62 61 63 6b 20 6d 61 79 20 6f 66 20 63 6f ur.post-parse.callback.may.of.co
9180 75 72 73 65 20 61 6c 73 6f 20 75 73 65 20 74 68 65 20 73 69 6d 70 6c 65 72 20 61 6e 64 0a 66 61 urse.also.use.the.simpler.and.fa
91a0 73 74 65 72 20 28 62 75 74 20 70 65 72 68 61 70 73 20 6c 65 73 73 20 72 6f 62 75 73 74 29 20 61 ster.(but.perhaps.less.robust).a
91c0 70 70 72 6f 61 63 68 20 6f 66 20 73 69 6d 70 6c 79 20 73 63 61 6e 6e 69 6e 67 20 74 68 65 0a 62 pproach.of.simply.scanning.the.b
91e0 75 66 66 65 72 20 74 65 78 74 20 66 6f 72 20 79 6f 75 72 20 69 6d 70 6f 72 74 73 2c 20 75 73 69 uffer.text.for.your.imports,.usi
9200 6e 67 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 22 29 0a 0a 28 70 75 74 20 ng.regular.expressions.")..(put.
9220 27 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 20 27 73 61 66 65 2d 6c 6f 'js2-additional-externs.'safe-lo
9240 63 61 6c 2d 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 20 cal-variable......(lambda.(val).
9260 28 63 6c 2d 65 76 65 72 79 20 23 27 73 74 72 69 6e 67 70 20 76 61 6c 29 29 29 0a 0a 3b 3b 20 53 (cl-every.#'stringp.val)))..;;.S
9280 4b 49 50 3a 20 20 64 65 63 6f 6d 70 69 6c 65 72 0a 3b 3b 20 53 4b 49 50 3a 20 20 65 6e 63 6f 64 KIP:..decompiler.;;.SKIP:..encod
92a0 65 64 2d 73 6f 75 72 63 65 0a 0a 3b 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 72 ed-source..;;;.The.following.var
92c0 69 61 62 6c 65 73 20 61 72 65 20 70 65 72 2d 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 73 68 6f 75 iables.are.per-function.and.shou
92e0 6c 64 20 62 65 20 73 61 76 65 64 2f 72 65 73 74 6f 72 65 64 0a 3b 3b 3b 20 64 75 72 69 6e 67 20 ld.be.saved/restored.;;;.during.
9300 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 69 6e 67 2e 2e 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 function.parsing.....(js2-defloc
9320 61 6c 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 6e 69 6c 29 al.js2-current-script-or-fn.nil)
9340 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 .(js2-deflocal.js2-current-scope
9360 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d .nil).(js2-deflocal.js2-nesting-
9380 6f 66 2d 77 69 74 68 20 30 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6c 61 62 of-with.0).(js2-deflocal.js2-lab
93a0 65 6c 2d 73 65 74 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6c el-set.nil..."An.alist.mapping.l
93c0 61 62 65 6c 20 6e 61 6d 65 73 20 74 6f 20 6e 6f 64 65 73 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 abel.names.to.nodes.")..(js2-def
93e0 6c 6f 63 61 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 local.js2-loop-set.nil).(js2-def
9400 6c 6f 63 61 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 20 6e 69 local.js2-loop-and-switch-set.ni
9420 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 68 61 73 2d 72 65 74 75 72 6e 2d l).(js2-deflocal.js2-has-return-
9440 76 61 6c 75 65 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 65 6e 64 value.nil).(js2-deflocal.js2-end
9460 2d 66 6c 61 67 73 20 30 29 0a 0a 3b 3b 3b 20 2e 2e 2e 65 6e 64 20 6f 66 20 70 65 72 20 66 75 6e -flags.0)..;;;....end.of.per.fun
9480 63 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 0a 0a 3b 3b 20 54 68 65 73 65 20 66 6c 61 67 73 20 ction.variables..;;.These.flags.
94a0 65 6e 75 6d 65 72 61 74 65 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 77 61 79 73 20 61 20 73 74 enumerate.the.possible.ways.a.st
94c0 61 74 65 6d 65 6e 74 2f 66 75 6e 63 74 69 6f 6e 20 63 61 6e 0a 3b 3b 20 74 65 72 6d 69 6e 61 74 atement/function.can.;;.terminat
94e0 65 2e 20 54 68 65 73 65 20 66 6c 61 67 73 20 61 72 65 20 75 73 65 64 20 62 79 20 65 6e 64 43 68 e..These.flags.are.used.by.endCh
9500 65 63 6b 28 29 20 61 6e 64 20 62 79 20 74 68 65 20 50 61 72 73 65 72 20 74 6f 0a 3b 3b 20 64 65 eck().and.by.the.Parser.to.;;.de
9520 74 65 63 74 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 72 65 74 75 72 6e 20 75 73 61 67 65 2e 0a tect.inconsistent.return.usage..
9540 3b 3b 0a 3b 3b 20 45 4e 44 5f 55 4e 52 45 41 43 48 45 44 20 69 73 20 72 65 73 65 72 76 65 64 20 ;;.;;.END_UNREACHED.is.reserved.
9560 66 6f 72 20 63 6f 64 65 20 70 61 74 68 73 20 74 68 61 74 20 61 72 65 20 61 73 73 75 6d 65 64 20 for.code.paths.that.are.assumed.
9580 74 6f 20 61 6c 77 61 79 73 20 62 65 0a 3b 3b 20 61 62 6c 65 20 74 6f 20 65 78 65 63 75 74 65 20 to.always.be.;;.able.to.execute.
95a0 28 65 78 61 6d 70 6c 65 3a 20 74 68 72 6f 77 2c 20 63 6f 6e 74 69 6e 75 65 29 0a 3b 3b 0a 3b 3b (example:.throw,.continue).;;.;;
95c0 20 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 69 6e 64 69 63 61 74 65 73 20 69 66 20 74 68 65 20 .END_DROPS_OFF.indicates.if.the.
95e0 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 74 72 61 6e 73 66 65 72 20 63 6f 6e 74 72 6f 6c 20 74 statement.can.transfer.control.t
9600 6f 20 74 68 65 0a 3b 3b 20 6e 65 78 74 20 6f 6e 65 2e 20 53 74 61 74 65 6d 65 6e 74 20 73 75 63 o.the.;;.next.one..Statement.suc
9620 68 20 61 73 20 72 65 74 75 72 6e 20 64 6f 6e 74 2e 20 41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 h.as.return.dont..A.compound.sta
9640 74 65 6d 65 6e 74 20 6d 61 79 20 68 61 76 65 0a 3b 3b 20 73 6f 6d 65 20 62 72 61 6e 63 68 20 74 tement.may.have.;;.some.branch.t
9660 68 61 74 20 64 72 6f 70 73 20 6f 66 66 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 20 6e 65 78 hat.drops.off.control.to.the.nex
9680 74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 3b 3b 0a 3b 3b 20 45 4e 44 5f 52 45 54 55 52 4e 53 20 69 t.statement..;;.;;.END_RETURNS.i
96a0 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 ndicates.that.the.statement.can.
96c0 72 65 74 75 72 6e 20 28 77 69 74 68 6f 75 74 20 61 72 67 75 6d 65 6e 74 73 29 0a 3b 3b 20 45 4e return.(without.arguments).;;.EN
96e0 44 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 D_RETURNS_VALUE.indicates.that.t
9700 68 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 2e he.statement.can.return.a.value.
9720 0a 3b 3b 0a 3b 3b 20 41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 73 75 63 68 .;;.;;.A.compound.statement.such
9740 20 61 73 0a 3b 3b 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 7b 0a 3b 3b 20 20 20 72 65 74 .as.;;.if.(condition).{.;;...ret
9760 75 72 6e 20 76 61 6c 75 65 3b 0a 3b 3b 20 7d 0a 3b 3b 20 57 69 6c 6c 20 62 65 20 64 65 74 65 63 urn.value;.;;.}.;;.Will.be.detec
9780 74 65 64 20 61 73 20 28 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 7c 20 45 4e 44 5f 52 45 54 55 ted.as.(END_DROPS_OFF.|.END_RETU
97a0 52 4e 5f 56 41 4c 55 45 29 20 62 79 20 65 6e 64 43 68 65 63 6b 28 29 0a 0a 28 64 65 66 63 6f 6e RN_VALUE).by.endCheck()..(defcon
97c0 73 74 20 6a 73 32 2d 65 6e 64 2d 75 6e 72 65 61 63 68 65 64 20 20 20 20 20 23 78 30 29 0a 28 64 st.js2-end-unreached.....#x0).(d
97e0 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6e 64 2d 64 72 6f 70 73 2d 6f 66 66 20 20 20 20 20 23 78 efconst.js2-end-drops-off.....#x
9800 31 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e 73 20 20 20 20 1).(defconst.js2-end-returns....
9820 20 20 20 23 78 32 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e ...#x2).(defconst.js2-end-return
9840 73 2d 76 61 6c 75 65 20 23 78 34 29 0a 0a 3b 3b 20 52 68 69 6e 6f 20 61 77 6b 77 61 72 64 6c 79 s-value.#x4)..;;.Rhino.awkwardly
9860 20 70 61 73 73 65 73 20 61 20 73 74 61 74 65 6d 65 6e 74 4c 61 62 65 6c 20 70 61 72 61 6d 65 74 .passes.a.statementLabel.paramet
9880 65 72 20 74 6f 20 74 68 65 0a 3b 3b 20 73 74 61 74 65 6d 65 6e 74 48 65 6c 70 65 72 28 29 20 66 er.to.the.;;.statementHelper().f
98a0 75 6e 63 74 69 6f 6e 2c 20 74 68 65 20 6d 61 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 70 61 72 73 unction,.the.main.statement.pars
98c0 65 72 2c 20 77 68 69 63 68 0a 3b 3b 20 69 73 20 74 68 65 6e 20 75 73 65 64 20 62 79 20 71 75 69 er,.which.;;.is.then.used.by.qui
98e0 74 65 20 61 20 66 65 77 20 6f 66 20 74 68 65 20 73 75 62 2d 70 61 72 73 65 72 73 2e 20 20 57 65 te.a.few.of.the.sub-parsers...We
9900 20 6a 75 73 74 20 6d 61 6b 65 0a 3b 3b 20 69 74 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 .just.make.;;.it.a.buffer-local.
9920 76 61 72 69 61 62 6c 65 20 61 6e 64 20 6d 61 6b 65 20 73 75 72 65 20 69 74 27 73 20 63 6c 65 61 variable.and.make.sure.it's.clea
9940 6e 65 64 20 75 70 20 70 72 6f 70 65 72 6c 79 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a ned.up.properly..(js2-deflocal.j
9960 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 6e 69 6c 29 20 20 3b 20 74 79 70 65 20 60 6a 73 s2-labeled-stmt.nil)..;.type.`js
9980 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 27 0a 0a 3b 3b 20 53 69 6d 69 6c 61 72 2-labeled-stmt-node'..;;.Similar
99a0 6c 79 2c 20 52 68 69 6e 6f 20 70 61 73 73 65 73 20 61 6e 20 69 6e 46 6f 72 49 6e 69 74 20 62 6f ly,.Rhino.passes.an.inForInit.bo
99c0 6f 6c 65 61 6e 20 74 68 72 6f 75 67 68 20 61 62 6f 75 74 20 68 61 6c 66 0a 3b 3b 20 74 68 65 20 olean.through.about.half.;;.the.
99e0 65 78 70 72 65 73 73 69 6f 6e 20 70 61 72 73 65 72 73 2e 20 20 57 65 20 75 73 65 20 61 20 64 79 expression.parsers...We.use.a.dy
9a00 6e 61 6d 69 63 61 6c 6c 79 2d 73 63 6f 70 65 64 20 76 61 72 69 61 62 6c 65 2c 0a 3b 3b 20 77 68 namically-scoped.variable,.;;.wh
9a20 69 63 68 20 6d 61 6b 65 73 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 66 75 6e 63 61 6c 6c 20 74 ich.makes.it.easier.to.funcall.t
9a40 68 65 20 70 61 72 73 65 72 73 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 20 77 69 74 68 6f 75 74 0a he.parsers.individually.without.
9a60 3b 3b 20 77 6f 72 72 79 69 6e 67 20 61 62 6f 75 74 20 77 68 65 74 68 65 72 20 74 68 65 79 20 74 ;;.worrying.about.whether.they.t
9a80 61 6b 65 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6f 72 20 6e 6f 74 2e 0a 28 6a 73 32 2d 64 ake.the.parameter.or.not..(js2-d
9aa0 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 20 6e 69 6c 29 0a 28 6a 73 eflocal.js2-in-for-init.nil).(js
9ac0 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 65 6d 70 2d 6e 61 6d 65 2d 63 6f 75 6e 74 65 72 2-deflocal.js2-temp-name-counter
9ae0 20 30 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 70 61 72 73 65 2d 73 74 6d 74 .0).(js2-deflocal.js2-parse-stmt
9b00 2d 63 6f 75 6e 74 20 30 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 67 65 74 2d 6e 65 78 -count.0)..(defsubst.js2-get-nex
9b20 74 2d 74 65 6d 70 2d 6e 61 6d 65 20 28 29 0a 20 20 28 66 6f 72 6d 61 74 20 22 24 25 64 22 20 28 t-temp-name.()...(format."$%d".(
9b40 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 65 6d 70 2d 6e 61 6d 65 2d 63 6f 75 6e 74 65 72 29 29 29 cl-incf.js2-temp-name-counter)))
9b60 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 70 61 72 73 65 2d 69 6e 74 65 72 72 75 70 74 61 62 6c ..(defvar.js2-parse-interruptabl
9b80 65 2d 70 20 74 0a 20 20 22 53 65 74 20 74 68 69 73 20 74 6f 20 6e 69 6c 20 74 6f 20 66 6f 72 63 e-p.t..."Set.this.to.nil.to.forc
9ba0 65 20 70 61 72 73 65 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 75 6e 74 69 6c 20 66 69 6e 69 73 68 e.parse.to.continue.until.finish
9bc0 65 64 2e 0a 54 68 69 73 20 77 69 6c 6c 20 6d 6f 73 74 6c 79 20 62 65 20 75 73 65 66 75 6c 20 66 ed..This.will.mostly.be.useful.f
9be0 6f 72 20 69 6e 74 65 72 70 72 65 74 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d or.interpreters.")..(defvar.js2-
9c00 73 74 61 74 65 6d 65 6e 74 73 2d 70 65 72 2d 70 61 75 73 65 20 35 30 0a 20 20 22 50 61 75 73 65 statements-per-pause.50..."Pause
9c20 20 61 66 74 65 72 20 74 68 69 73 20 6d 61 6e 79 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 63 .after.this.many.statements.to.c
9c40 68 65 63 6b 20 66 6f 72 20 75 73 65 72 20 69 6e 70 75 74 2e 0a 49 66 20 75 73 65 72 20 69 6e 70 heck.for.user.input..If.user.inp
9c60 75 74 20 69 73 20 70 65 6e 64 69 6e 67 2c 20 73 74 6f 70 20 74 68 65 20 70 61 72 73 65 20 61 6e ut.is.pending,.stop.the.parse.an
9c80 64 20 64 69 73 63 61 72 64 20 74 68 65 20 74 72 65 65 2e 0a 54 68 69 73 20 6d 61 6b 65 73 20 66 d.discard.the.tree..This.makes.f
9ca0 6f 72 20 61 20 73 6d 6f 6f 74 68 65 72 20 75 73 65 72 20 65 78 70 65 72 69 65 6e 63 65 20 66 6f or.a.smoother.user.experience.fo
9cc0 72 20 6c 61 72 67 65 20 66 69 6c 65 73 2e 0a 59 6f 75 20 6d 61 79 20 68 61 76 65 20 74 6f 20 77 r.large.files..You.may.have.to.w
9ce0 61 69 74 20 61 20 73 65 63 6f 6e 64 20 6f 72 20 74 77 6f 20 62 65 66 6f 72 65 20 74 68 65 20 68 ait.a.second.or.two.before.the.h
9d00 69 67 68 6c 69 67 68 74 69 6e 67 0a 61 6e 64 20 65 72 72 6f 72 2d 72 65 70 6f 72 74 69 6e 67 20 ighlighting.and.error-reporting.
9d20 61 70 70 65 61 72 2c 20 62 75 74 20 79 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 74 79 70 65 20 appear,.but.you.can.always.type.
9d40 61 68 65 61 64 20 69 66 0a 79 6f 75 20 77 69 73 68 2e 20 20 54 68 69 73 20 61 70 70 65 61 72 73 ahead.if.you.wish...This.appears
9d60 20 74 6f 20 62 65 20 6d 6f 72 65 20 6f 72 20 6c 65 73 73 20 68 6f 77 20 45 63 6c 69 70 73 65 2c .to.be.more.or.less.how.Eclipse,
9d80 20 49 6e 74 65 6c 6c 69 4a 0a 61 6e 64 20 6f 74 68 65 72 20 65 64 69 74 6f 72 73 20 77 6f 72 6b .IntelliJ.and.other.editors.work
9da0 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 72 65 63 6f 72 64 2d 63 6f .")..(js2-deflocal.js2-record-co
9dc0 6d 6d 65 6e 74 73 20 74 0a 20 20 22 49 6e 73 74 72 75 63 74 73 20 74 68 65 20 73 63 61 6e 6e 65 mments.t..."Instructs.the.scanne
9de0 72 20 74 6f 20 72 65 63 6f 72 64 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 60 6a 73 32 2d 73 63 61 r.to.record.comments.in.`js2-sca
9e00 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 27 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c nned-comments'.")..(js2-deflocal
9e20 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 20 6e 69 6c 0a 20 20 22 4c 69 73 .js2-scanned-comments.nil..."Lis
9e40 74 20 6f 66 20 61 6c 6c 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 t.of.all.comments.from.the.curre
9e60 6e 74 20 70 61 72 73 65 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 6f 64 65 nt.parse.")..(defcustom.js2-mode
9e80 2d 69 6e 64 65 6e 74 2d 69 6e 68 69 62 69 74 2d 75 6e 64 6f 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d -indent-inhibit-undo.nil..."Non-
9ea0 6e 69 6c 20 74 6f 20 64 69 73 61 62 6c 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 55 6e 64 nil.to.disable.collection.of.Und
9ec0 6f 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 68 65 6e 20 69 6e 64 65 6e 74 69 6e 67 20 6c 69 6e o.information.when.indenting.lin
9ee0 65 73 2e 0a 53 6f 6d 65 20 75 73 65 72 73 20 68 61 76 65 20 72 65 71 75 65 73 74 65 64 20 74 68 es..Some.users.have.requested.th
9f00 69 73 20 62 65 68 61 76 69 6f 72 2e 20 20 49 74 27 73 20 6e 69 6c 20 62 79 20 64 65 66 61 75 6c is.behavior...It's.nil.by.defaul
9f20 74 20 62 65 63 61 75 73 65 0a 6f 74 68 65 72 20 45 6d 61 63 73 20 6d 6f 64 65 73 20 64 6f 6e 27 t.because.other.Emacs.modes.don'
9f40 74 20 77 6f 72 6b 20 74 68 69 73 20 77 61 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 t.work.this.way."...:type.'boole
9f60 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 an...:group.'js2-mode)..(defcust
9f80 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 64 65 6e 74 2d 69 67 6e 6f 72 65 2d 66 69 72 73 74 2d om.js2-mode-indent-ignore-first-
9fa0 74 61 62 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 67 6e 6f 72 65 20 66 69 tab.nil..."If.non-nil,.ignore.fi
9fc0 72 73 74 20 54 41 42 20 6b 65 79 70 72 65 73 73 20 69 66 20 77 65 20 6c 6f 6f 6b 20 69 6e 64 65 rst.TAB.keypress.if.we.look.inde
9fe0 6e 74 65 64 20 70 72 6f 70 65 72 6c 79 2e 0a 49 74 27 73 20 66 61 69 72 6c 79 20 63 6f 6d 6d 6f nted.properly..It's.fairly.commo
a000 6e 20 66 6f 72 20 75 73 65 72 73 20 74 6f 20 6e 61 76 69 67 61 74 65 20 74 6f 20 61 6e 20 61 6c n.for.users.to.navigate.to.an.al
a020 72 65 61 64 79 2d 69 6e 64 65 6e 74 65 64 20 6c 69 6e 65 0a 61 6e 64 20 70 72 65 73 73 20 54 41 ready-indented.line.and.press.TA
a040 42 20 66 6f 72 20 72 65 61 73 73 75 72 61 6e 63 65 20 74 68 61 74 20 69 74 27 73 20 62 65 65 6e B.for.reassurance.that.it's.been
a060 20 69 6e 64 65 6e 74 65 64 2e 20 20 46 6f 72 20 74 68 69 73 20 63 6c 61 73 73 0a 6f 66 20 75 73 .indented...For.this.class.of.us
a080 65 72 73 2c 20 77 65 20 77 61 6e 74 20 74 68 65 20 66 69 72 73 74 20 54 41 42 20 70 72 65 73 73 ers,.we.want.the.first.TAB.press
a0a0 20 6f 6e 20 61 20 6c 69 6e 65 20 74 6f 20 62 65 20 69 67 6e 6f 72 65 64 20 69 66 20 74 68 65 0a .on.a.line.to.be.ignored.if.the.
a0c0 6c 69 6e 65 20 69 73 20 61 6c 72 65 61 64 79 20 69 6e 64 65 6e 74 65 64 20 74 6f 20 6f 6e 65 20 line.is.already.indented.to.one.
a0e0 6f 66 20 74 68 65 20 70 72 65 63 6f 6d 70 75 74 65 64 20 61 6c 74 65 72 6e 61 74 69 76 65 73 2e of.the.precomputed.alternatives.
a100 0a 0a 54 68 69 73 20 62 65 68 61 76 69 6f 72 20 69 73 20 6f 6e 6c 79 20 70 61 72 74 6c 79 20 69 ..This.behavior.is.only.partly.i
a120 6d 70 6c 65 6d 65 6e 74 65 64 2e 20 20 49 66 20 79 6f 75 20 54 41 42 2d 69 6e 64 65 6e 74 20 61 mplemented...If.you.TAB-indent.a
a140 20 6c 69 6e 65 2c 0a 6e 61 76 69 67 61 74 65 20 74 6f 20 61 6e 6f 74 68 65 72 20 6c 69 6e 65 2c .line,.navigate.to.another.line,
a160 20 61 6e 64 20 74 68 65 6e 20 6e 61 76 69 67 61 74 65 20 62 61 63 6b 2c 20 69 74 20 66 61 69 6c .and.then.navigate.back,.it.fail
a180 73 20 74 6f 20 63 6c 65 61 72 0a 74 68 65 20 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64 20 76 61 72 s.to.clear.the.last-indented.var
a1a0 69 61 62 6c 65 2c 20 73 6f 20 69 74 20 74 68 69 6e 6b 73 20 79 6f 75 27 76 65 20 61 6c 72 65 61 iable,.so.it.thinks.you've.alrea
a1c0 64 79 20 68 69 74 20 54 41 42 20 6f 6e 63 65 2c 0a 61 6e 64 20 70 65 72 66 6f 72 6d 73 20 74 68 dy.hit.TAB.once,.and.performs.th
a1e0 65 20 69 6e 64 65 6e 74 2e 20 20 41 20 66 75 6c 6c 20 73 6f 6c 75 74 69 6f 6e 20 77 6f 75 6c 64 e.indent...A.full.solution.would
a200 20 69 6e 76 6f 6c 76 65 20 67 65 74 74 69 6e 67 20 6f 6e 20 74 68 65 0a 70 6f 69 6e 74 2d 6d 6f .involve.getting.on.the.point-mo
a220 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 65 6e 74 69 72 65 20 62 75 66 66 65 72 tion.hooks.for.the.entire.buffer
a240 2e 20 20 49 66 20 77 65 20 63 6f 6d 65 20 61 63 72 6f 73 73 20 61 6e 6f 74 68 65 72 0a 75 73 65 ...If.we.come.across.another.use
a260 20 63 61 73 65 73 20 74 68 61 74 20 72 65 71 75 69 72 65 73 20 77 61 74 63 68 69 6e 67 20 70 6f .cases.that.requires.watching.po
a280 69 6e 74 20 6d 6f 74 69 6f 6e 2c 20 49 27 6c 6c 20 63 6f 6e 73 69 64 65 72 20 64 6f 69 6e 67 20 int.motion,.I'll.consider.doing.
a2a0 69 74 2e 0a 0a 49 66 20 79 6f 75 20 73 65 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f it...If.you.set.this.variable.to
a2c0 20 6e 69 6c 2c 20 74 68 65 6e 20 74 68 65 20 54 41 42 20 6b 65 79 20 77 69 6c 6c 20 61 6c 77 61 .nil,.then.the.TAB.key.will.alwa
a2e0 79 73 20 63 68 61 6e 67 65 0a 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 ys.change.the.indentation.of.the
a300 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2c 20 69 66 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 .current.line,.if.more.than.one.
a320 61 6c 74 65 72 6e 61 74 69 76 65 0a 69 6e 64 65 6e 74 61 74 69 6f 6e 20 73 70 6f 74 20 65 78 69 alternative.indentation.spot.exi
a340 73 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 sts."...:type.'boolean...:group.
a360 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 68 'js2-mode)..(defvar.js2-indent-h
a380 6f 6f 6b 20 6e 69 6c 0a 20 20 22 41 20 68 6f 6f 6b 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e ook.nil..."A.hook.for.user-defin
a3a0 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 72 75 6c 65 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 ed.indentation.rules...Functions
a3c0 20 6f 6e 20 74 68 69 73 20 68 6f 6f 6b 20 73 68 6f 75 6c 64 20 65 78 70 65 63 74 20 74 77 6f 20 .on.this.hook.should.expect.two.
a3e0 61 72 67 75 6d 65 6e 74 73 3a 20 20 20 20 28 4c 49 53 54 20 49 4e 44 45 58 29 0a 54 68 65 20 4c arguments:....(LIST.INDEX).The.L
a400 49 53 54 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 6f 6d 70 IST.argument.is.the.list.of.comp
a420 75 74 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 73 20 66 6f 72 0a 74 68 65 20 uted.indentation.points.for.the.
a440 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 20 20 49 4e 44 45 58 20 69 73 20 74 68 65 20 6c 69 73 74 current.line...INDEX.is.the.list
a460 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 0a .index.of.the.indentation.point.
a480 74 68 61 74 20 60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 27 20 70 6c 61 6e 73 20 74 that.`js2-bounce-indent'.plans.t
a4a0 6f 20 75 73 65 2e 20 20 49 66 20 49 4e 44 45 58 20 69 73 20 6e 69 6c 2c 20 74 68 65 6e 20 74 68 o.use...If.INDEX.is.nil,.then.th
a4c0 65 0a 69 6e 64 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 67 6f 69 6e 67 20 74 e.indent.function.is.not.going.t
a4e0 6f 20 63 68 61 6e 67 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 69 6e 64 65 6e 74 o.change.the.current.line.indent
a500 61 74 69 6f 6e 2e 0a 0a 49 66 20 61 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 ation...If.a.hook.function.on.th
a520 69 73 20 6c 69 73 74 20 72 65 74 75 72 6e 73 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2c is.list.returns.a.non-nil.value,
a540 20 74 68 65 6e 0a 60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 27 20 61 73 73 75 6d 65 .then.`js2-bounce-indent'.assume
a560 73 20 74 68 65 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 70 65 72 66 6f 72 6d 65 s.the.hook.function.has.performe
a580 64 20 69 74 73 20 6f 77 6e 0a 69 6e 64 65 6e 74 61 74 69 6f 6e 2c 20 61 6e 64 20 77 69 6c 6c 20 d.its.own.indentation,.and.will.
a5a0 64 6f 20 6e 6f 74 68 69 6e 67 2e 20 20 49 66 20 61 6c 6c 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f do.nothing...If.all.hook.functio
a5c0 6e 73 20 6f 6e 20 74 68 65 20 6c 69 73 74 0a 72 65 74 75 72 6e 20 6e 69 6c 2c 20 74 68 65 6e 20 ns.on.the.list.return.nil,.then.
a5e0 60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 27 20 77 69 6c 6c 20 75 73 65 20 69 74 73 `js2-bounce-indent'.will.use.its
a600 20 63 6f 6d 70 75 74 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 61 6e 64 20 72 65 69 6e 64 65 .computed.indentation.and.reinde
a620 6e 74 20 74 68 65 20 6c 69 6e 65 2e 0a 0a 57 68 65 6e 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e nt.the.line...When.hook.function
a640 73 20 6f 6e 20 74 68 69 73 20 68 6f 6f 6b 20 6c 69 73 74 20 61 72 65 20 63 61 6c 6c 65 64 2c 20 s.on.this.hook.list.are.called,.
a660 74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 27 20 6d 61 79 20 the.variable.`js2-mode-ast'.may.
a680 6f 72 20 6d 61 79 20 6e 6f 74 20 62 65 20 73 65 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 or.may.not.be.set,.depending.on.
a6a0 77 68 65 74 68 65 72 20 74 68 65 0a 70 61 72 73 65 20 74 72 65 65 20 69 73 20 61 76 61 69 6c 61 whether.the.parse.tree.is.availa
a6c0 62 6c 65 2e 20 20 49 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 69 6c 2c 20 79 6f ble...If.the.variable.is.nil,.yo
a6e0 75 20 63 61 6e 20 70 61 73 73 20 61 0a 63 61 6c 6c 62 61 63 6b 20 74 6f 20 60 6a 73 32 2d 6d 6f u.can.pass.a.callback.to.`js2-mo
a700 64 65 2d 77 61 69 74 2d 66 6f 72 2d 70 61 72 73 65 27 2c 20 61 6e 64 20 79 6f 75 72 20 63 61 6c de-wait-for-parse',.and.your.cal
a720 6c 62 61 63 6b 20 77 69 6c 6c 20 62 65 0a 63 61 6c 6c 65 64 20 61 66 74 65 72 20 74 68 65 20 6e lback.will.be.called.after.the.n
a740 65 77 20 70 61 72 73 65 20 74 72 65 65 20 69 73 20 62 75 69 6c 74 2e 20 20 54 68 69 73 20 63 61 ew.parse.tree.is.built...This.ca
a760 6e 20 74 61 6b 65 20 73 6f 6d 65 20 74 69 6d 65 0a 69 6e 20 6c 61 72 67 65 20 66 69 6c 65 73 2e n.take.some.time.in.large.files.
a780 22 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 77 61 72 6e 69 6e 67 0a 20 20 60 28 28 28 28 ")..(defface.js2-warning...`((((
a7a0 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 class.color).(background.light))
a7c0 0a 20 20 20 20 20 28 3a 75 6e 64 65 72 6c 69 6e 65 20 20 22 6f 72 61 6e 67 65 22 29 29 0a 20 20 ......(:underline.."orange"))...
a7e0 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 ..(((class.color).(background.da
a800 72 6b 29 29 0a 20 20 20 20 20 28 3a 75 6e 64 65 72 6c 69 6e 65 20 22 6f 72 61 6e 67 65 22 29 29 rk))......(:underline."orange"))
a820 0a 20 20 20 20 28 74 20 28 3a 75 6e 64 65 72 6c 69 6e 65 20 74 29 29 29 0a 20 20 22 46 61 63 65 .....(t.(:underline.t)))..."Face
a840 20 66 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 77 61 72 6e 69 6e 67 73 2e 22 0a 20 20 3a 67 72 .for.JavaScript.warnings."...:gr
a860 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 65 72 72 oup.'js2-mode)..(defface.js2-err
a880 6f 72 0a 20 20 60 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75 or...`((((class.color).(backgrou
a8a0 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 nd.light))......(:foreground."re
a8c0 64 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 d")).....(((class.color).(backgr
a8e0 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 ound.dark))......(:foreground."r
a900 65 64 22 29 29 0a 20 20 20 20 28 74 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 22 29 ed")).....(t.(:foreground."red")
a920 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 65 72 72 6f 72 73 ))..."Face.for.JavaScript.errors
a940 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 ."...:group.'js2-mode)..(defface
a960 20 6a 73 32 2d 6a 73 64 6f 63 2d 74 61 67 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e .js2-jsdoc-tag...'((t.:foregroun
a980 64 20 22 53 6c 61 74 65 47 72 61 79 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 d."SlateGray"))..."Face.used.to.
a9a0 68 69 67 68 6c 69 67 68 74 20 40 77 68 61 74 65 76 65 72 20 74 61 67 73 20 69 6e 20 6a 73 64 6f highlight.@whatever.tags.in.jsdo
a9c0 63 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 c.comments."...:group.'js2-mode)
a9e0 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6a 73 64 6f 63 2d 74 79 70 65 0a 20 20 27 28 28 74 ..(defface.js2-jsdoc-type...'((t
aa00 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 53 74 65 65 6c 42 6c 75 65 22 29 29 0a 20 20 22 46 61 .:foreground."SteelBlue"))..."Fa
aa20 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 7b 46 6f 6f 42 61 72 7d 20 74 79 ce.used.to.highlight.{FooBar}.ty
aa40 70 65 73 20 69 6e 20 6a 73 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 pes.in.jsdoc.comments."...:group
aa60 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6a 73 64 6f 63 2d .'js2-mode)..(defface.js2-jsdoc-
aa80 76 61 6c 75 65 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 50 65 61 63 68 50 value...'((t.:foreground."PeachP
aaa0 75 66 66 33 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 uff3"))..."Face.used.to.highligh
aac0 74 20 74 61 67 20 76 61 6c 75 65 73 20 69 6e 20 6a 73 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 2e 22 t.tag.values.in.jsdoc.comments."
aae0 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a ...:group.'js2-mode)..(defface.j
ab00 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 s2-function-param...'((t.:foregr
ab20 6f 75 6e 64 20 22 53 65 61 47 72 65 65 6e 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 ound."SeaGreen"))..."Face.used.t
ab40 6f 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20 o.highlight.function.parameters.
ab60 69 6e 20 6a 61 76 61 73 63 72 69 70 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f in.javascript."...:group.'js2-mo
ab80 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 0a de)..(defface.js2-function-call.
aba0 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 ..'((t.:inherit.default))..."Fac
abc0 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d e.used.to.highlight.function.nam
abe0 65 20 69 6e 20 63 61 6c 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 e.in.calls."...:group.'js2-mode)
ac00 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 0a 20 ..(defface.js2-object-property..
ac20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 .'((t.:inherit.default))..."Face
ac40 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 6e 61 6d 65 64 20 70 72 6f 70 65 72 74 .used.to.highlight.named.propert
ac60 79 20 69 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 y.in.object.literal."...:group.'
ac80 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 js2-mode)..(defface.js2-object-p
aca0 72 6f 70 65 72 74 79 2d 61 63 63 65 73 73 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6a roperty-access...'((t.:inherit.j
acc0 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 s2-object-property))..."Face.use
ace0 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 20 77 d.to.highlight.property.access.w
ad00 69 74 68 20 64 6f 74 20 6f 6e 20 61 6e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 ith.dot.on.an.object."...:group.
ad20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 69 6e 73 74 61 6e 63 'js2-mode)..(defface.js2-instanc
ad40 65 2d 6d 65 6d 62 65 72 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 44 61 72 e-member...'((t.:foreground."Dar
ad60 6b 4f 72 63 68 69 64 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c kOrchid"))..."Face.used.to.highl
ad80 69 67 68 74 20 69 6e 73 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 6a 61 76 61 73 ight.instance.variables.in.javas
ada0 63 72 69 70 74 2e 0a 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 3a 67 cript..Not.currently.used."...:g
adc0 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 70 72 roup.'js2-mode)..(defface.js2-pr
ade0 69 76 61 74 65 2d 6d 65 6d 62 65 72 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 ivate-member...'((t.:foreground.
ae00 22 50 65 61 63 68 50 75 66 66 33 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 "PeachPuff3"))..."Face.used.to.h
ae20 69 67 68 6c 69 67 68 74 20 63 61 6c 6c 73 20 74 6f 20 70 72 69 76 61 74 65 20 6d 65 74 68 6f 64 ighlight.calls.to.private.method
ae40 73 20 69 6e 20 6a 61 76 61 73 63 72 69 70 74 2e 0a 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 s.in.javascript..Not.currently.u
ae60 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 sed."...:group.'js2-mode)..(deff
ae80 61 63 65 20 6a 73 32 2d 70 72 69 76 61 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 0a 20 20 ace.js2-private-function-call...
aea0 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 67 6f 6c 64 65 6e 72 6f 64 22 29 29 0a 20 '((t.:foreground."goldenrod"))..
aec0 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 63 61 6c 6c 73 20 74 ."Face.used.to.highlight.calls.t
aee0 6f 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 6a 61 76 61 73 63 72 69 70 o.private.functions.in.javascrip
af00 74 2e 0a 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 t..Not.currently.used."...:group
af20 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6a 73 64 6f 63 2d .'js2-mode)..(defface.js2-jsdoc-
af40 68 74 6d 6c 2d 74 61 67 2d 6e 61 6d 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 html-tag-name...'((((class.color
af60 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 ).(min-colors.88).(background.li
af80 67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 6f 73 79 62 72 6f ght))......(:foreground."rosybro
afa0 77 6e 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 wn")).....(((class.color).(min-c
afc0 6f 6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 olors.8).(background.dark)).....
afe0 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 79 65 6c 6c 6f 77 22 29 29 0a 20 20 20 20 28 28 28 .(:foreground."yellow")).....(((
b000 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 20 28 62 61 63 class.color).(min-colors.8).(bac
b020 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e kground.light))......(:foregroun
b040 64 20 22 6d 61 67 65 6e 74 61 22 29 29 29 0a 20 20 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f d."magenta")))....."Face.used.to
b060 20 68 69 67 68 6c 69 67 68 74 20 6a 73 64 6f 63 20 68 74 6d 6c 20 74 61 67 20 6e 61 6d 65 73 22 .highlight.jsdoc.html.tag.names"
b080 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a ...:group.'js2-mode)..(defface.j
b0a0 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74 61 67 2d 64 65 6c 69 6d 69 74 65 72 0a 20 20 27 28 s2-jsdoc-html-tag-delimiter...'(
b0c0 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 20 (((class.color).(min-colors.88).
b0e0 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 (background.light))......(:foreg
b100 72 6f 75 6e 64 20 22 64 61 72 6b 20 6b 68 61 6b 69 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73 round."dark.khaki")).....(((clas
b120 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67 72 6f s.color).(min-colors.8).(backgro
b140 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 67 72 und.dark))......(:foreground."gr
b160 65 65 6e 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d een")).....(((class.color).(min-
b180 63 6f 6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 colors.8).(background.light))...
b1a0 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 67 72 65 65 6e 22 29 29 29 0a 20 20 22 46 61 ...(:foreground."green")))..."Fa
b1c0 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 62 72 61 63 6b 65 74 73 20 69 6e ce.used.to.highlight.brackets.in
b1e0 20 6a 73 64 6f 63 20 68 74 6d 6c 20 74 61 67 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 .jsdoc.html.tags."...:group.'js2
b200 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 65 78 74 65 72 6e 61 6c 2d 76 61 -mode)..(defface.js2-external-va
b220 72 69 61 62 6c 65 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 6f 72 61 6e 67 riable...'((t.:foreground."orang
b240 65 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 75 e"))..."Face.used.to.highlight.u
b260 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 69 64 65 6e 74 69 66 69 65 72 73 2e 22 ndeclared.variable.identifiers."
b280 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 69 74 2d 68 6f 6f 6b 20 6e 69 6c 0a )..(defcustom.js2-init-hook.nil.
b2a0 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 64 6f 6e 27 74 20 72 65 61 6c 6c 79 20 6e 65 65 64 ..;;.FIXME:.We.don't.really.need
b2c0 20 74 68 69 73 20 61 6e 79 6d 6f 72 65 2e 0a 20 20 22 4c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 .this.anymore...."List.of.functi
b2e0 6f 6e 73 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 60 6a 73 32 2d 6d 6f 64 65 ons.to.be.called.after.`js2-mode
b300 27 20 6f 72 0a 60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 68 61 73 20 69 6e 69 74 69 61 '.or.`js2-minor-mode'.has.initia
b320 6c 69 7a 65 64 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 62 65 66 6f 72 65 20 70 61 72 73 lized.all.variables,.before.pars
b340 69 6e 67 0a 74 68 65 20 62 75 66 66 65 72 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 74 69 6d ing.the.buffer.for.the.first.tim
b360 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d e."...:type.'hook...:group.'js2-
b380 6d 6f 64 65 0a 20 20 3a 76 65 72 73 69 6f 6e 20 22 32 30 31 33 30 36 30 38 22 29 0a 0a 28 64 65 mode...:version."20130608")..(de
b3a0 66 63 75 73 74 6f 6d 20 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 fcustom.js2-post-parse-callbacks
b3c0 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f .nil..."List.of.callback.functio
b3e0 6e 73 20 69 6e 76 6f 6b 65 64 20 61 66 74 65 72 20 70 61 72 73 69 6e 67 20 66 69 6e 69 73 68 65 ns.invoked.after.parsing.finishe
b400 73 2e 0a 43 75 72 72 65 6e 74 6c 79 2c 20 74 68 65 20 6d 61 69 6e 20 75 73 65 20 66 6f 72 20 74 s..Currently,.the.main.use.for.t
b420 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 74 6f 20 61 64 64 20 73 79 6e 74 68 65 74 69 63 his.function.is.to.add.synthetic
b440 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 6f 20 60 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 .declarations.to.`js2-recorded-i
b460 64 65 6e 74 69 66 69 65 72 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65 dentifiers',.which.see."...:type
b480 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 .'hook...:group.'js2-mode)..(def
b4a0 63 75 73 74 6f 6d 20 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 custom.js2-build-imenu-callbacks
b4c0 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 .nil..."List.of.functions.called
b4e0 20 64 75 72 69 6e 67 20 49 6d 65 6e 75 20 69 6e 64 65 78 20 67 65 6e 65 72 61 74 69 6f 6e 2e 0a .during.Imenu.index.generation..
b500 49 74 27 73 20 61 20 67 6f 6f 64 20 70 6c 61 63 65 20 74 6f 20 61 64 64 20 61 64 64 69 74 69 6f It's.a.good.place.to.add.additio
b520 6e 61 6c 20 65 6e 74 72 69 65 73 20 74 6f 20 69 74 2c 20 75 73 69 6e 67 0a 60 6a 73 32 2d 72 65 nal.entries.to.it,.using.`js2-re
b540 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f cord-imenu-entry'."...:type.'hoo
b560 6b 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f k...:group.'js2-mode)..(defcusto
b580 6d 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62 6c m.js2-highlight-external-variabl
b5a0 65 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 75 6e 64 es.t..."Non-nil.to.highlight.und
b5c0 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 41 6e eclared.variable.identifiers..An
b5e0 20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 69 73 20 61 6e 79 20 76 61 72 69 .undeclared.variable.is.any.vari
b600 61 62 6c 65 20 6e 6f 74 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 76 61 72 20 6f 72 20 6c 65 able.not.declared.with.var.or.le
b620 74 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 20 6f 72 20 61 6e 79 20 6c 65 t.in.the.current.scope.or.any.le
b640 78 69 63 61 6c 6c 79 20 65 6e 63 6c 6f 73 69 6e 67 20 73 63 6f 70 65 2e 20 20 49 66 20 79 6f 75 xically.enclosing.scope...If.you
b660 20 75 73 65 0a 73 75 63 68 20 61 20 76 61 72 69 61 62 6c 65 2c 20 74 68 65 6e 20 79 6f 75 20 61 .use.such.a.variable,.then.you.a
b680 72 65 20 65 69 74 68 65 72 20 65 78 70 65 63 74 69 6e 67 20 69 74 20 74 6f 20 6f 72 69 67 69 6e re.either.expecting.it.to.origin
b6a0 61 74 65 20 66 72 6f 6d 0a 61 6e 6f 74 68 65 72 20 66 69 6c 65 2c 20 6f 72 20 79 6f 75 27 76 65 ate.from.another.file,.or.you've
b6c0 20 67 6f 74 20 61 20 70 6f 74 65 6e 74 69 61 6c 20 62 75 67 2e 22 0a 20 20 3a 74 79 70 65 20 27 .got.a.potential.bug."...:type.'
b6e0 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 boolean...:group.'js2-mode)..(de
b700 66 63 75 73 74 6f 6d 20 6a 73 32 2d 77 61 72 6e 2d 61 62 6f 75 74 2d 75 6e 75 73 65 64 2d 66 75 fcustom.js2-warn-about-unused-fu
b720 6e 63 74 69 6f 6e 2d 61 72 67 75 6d 65 6e 74 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 nction-arguments.nil..."Non-nil.
b740 74 6f 20 74 72 65 61 74 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 6c 69 6b 65 to.treat.function.arguments.like
b760 20 64 65 63 6c 61 72 65 64 2d 62 75 74 2d 75 6e 75 73 65 64 20 76 61 72 69 61 62 6c 65 73 2e 22 .declared-but-unused.variables."
b780 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 70 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 ...:type.'booleanp...:group.'js2
b7a0 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a -mode)..(defcustom.js2-include-j
b7c0 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 69 6e slint-globals.t..."Non-nil.to.in
b7e0 63 6c 75 64 65 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 73 20 66 72 6f 6d 20 4a 53 4c 69 6e clude.the.identifiers.from.JSLin
b800 74 20 67 6c 6f 62 61 6c 0a 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 73 65 65 20 68 74 74 70 3a 2f t.global.declaration.(see.http:/
b820 2f 77 77 77 2e 6a 73 6c 69 6e 74 2e 63 6f 6d 2f 68 65 6c 70 2e 68 74 6d 6c 23 67 6c 6f 62 61 6c /www.jslint.com/help.html#global
b840 29 20 69 6e 20 74 68 65 0a 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 65 78 74 65 72 6e 73 20 6c 69 ).in.the.buffer-local.externs.li
b860 73 74 2e 20 20 53 65 65 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 st...See.`js2-additional-externs
b880 27 20 66 6f 72 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 '.for.more.information."...:type
b8a0 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 .'boolean...:group.'js2-mode)..(
b8c0 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 64 65 63 defcustom.js2-include-jslint-dec
b8e0 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f laration-externs.t..."Non-nil.to
b900 20 69 6e 63 6c 75 64 65 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 73 20 4a 53 4c 69 6e 74 20 .include.the.identifiers.JSLint.
b920 61 73 73 75 6d 65 73 20 74 6f 20 62 65 20 74 68 65 72 65 0a 75 6e 64 65 72 20 63 65 72 74 61 69 assumes.to.be.there.under.certai
b940 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 n.declarations.in.the.buffer-loc
b960 61 6c 20 65 78 74 65 72 6e 73 20 6c 69 73 74 2e 20 20 53 65 65 0a 60 6a 73 32 2d 61 64 64 69 74 al.externs.list...See.`js2-addit
b980 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 ional-externs'.for.more.informat
b9a0 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 ion."...:type.'boolean...:group.
b9c0 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 6d 61 70 'js2-mode)..(defvar.js2-mode-map
b9e0 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 ...(let.((map.(make-sparse-keyma
ba00 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 p))).....(define-key.map.[remap.
ba20 69 6e 64 65 6e 74 2d 6e 65 77 2d 63 6f 6d 6d 65 6e 74 2d 6c 69 6e 65 5d 20 23 27 6a 73 32 2d 6c indent-new-comment-line].#'js2-l
ba40 69 6e 65 2d 62 72 65 61 6b 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ine-break).....(define-key.map.(
ba60 6b 62 64 20 22 43 2d 63 20 43 2d 65 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 65 kbd."C-c.C-e").#'js2-mode-hide-e
ba80 6c 65 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 lement).....(define-key.map.(kbd
baa0 20 22 43 2d 63 20 43 2d 73 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d ."C-c.C-s").#'js2-mode-show-elem
bac0 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 ent).....(define-key.map.(kbd."C
bae0 2d 63 20 43 2d 61 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 29 0a 20 20 -c.C-a").#'js2-mode-show-all)...
bb00 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 66 22 ..(define-key.map.(kbd."C-c.C-f"
bb20 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f ).#'js2-mode-toggle-hide-functio
bb40 6e 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d ns).....(define-key.map.(kbd."C-
bb60 63 20 43 2d 74 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 63 c.C-t").#'js2-mode-toggle-hide-c
bb80 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 omments).....(define-key.map.(kb
bba0 64 20 22 43 2d 63 20 43 2d 6f 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 65 d."C-c.C-o").#'js2-mode-toggle-e
bbc0 6c 65 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 lement).....(define-key.map.(kbd
bbe0 20 22 43 2d 63 20 43 2d 77 22 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 77 61 ."C-c.C-w").#'js2-mode-toggle-wa
bc00 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b rnings-and-errors).....(define-k
bc20 65 79 20 6d 61 70 20 5b 64 6f 77 6e 2d 6d 6f 75 73 65 2d 33 5d 20 23 27 6a 73 32 2d 64 6f 77 6e ey.map.[down-mouse-3].#'js2-down
bc40 2d 6d 6f 75 73 65 2d 33 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72 -mouse-3).....(define-key.map.[r
bc60 65 6d 61 70 20 6a 73 2d 66 69 6e 64 2d 73 79 6d 62 6f 6c 5d 20 23 27 6a 73 32 2d 6a 75 6d 70 2d emap.js-find-symbol].#'js2-jump-
bc80 74 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 to-definition)......(define-key.
bca0 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 5d 0a 20 20 20 20 20 20 map.[menu-bar.javascript].......
bcc0 28 63 6f 6e 73 20 22 4a 61 76 61 53 63 72 69 70 74 22 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d (cons."JavaScript".(make-sparse-
bce0 6b 65 79 6d 61 70 20 22 4a 61 76 61 53 63 72 69 70 74 22 29 29 29 0a 0a 20 20 20 20 28 64 65 66 keymap."JavaScript")))......(def
bd00 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 ine-key.map.[menu-bar.javascript
bd20 20 63 75 73 74 6f 6d 69 7a 65 2d 6a 73 32 2d 6d 6f 64 65 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e .customize-js2-mode].......'(men
bd40 75 2d 69 74 65 6d 20 22 43 75 73 74 6f 6d 69 7a 65 20 6a 73 32 2d 6d 6f 64 65 22 20 6a 73 32 2d u-item."Customize.js2-mode".js2-
bd60 6d 6f 64 65 2d 63 75 73 74 6f 6d 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mode-customize..................
bd80 20 3a 68 65 6c 70 20 22 43 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f .:help."Customize.the.behavior.o
bda0 66 20 74 68 69 73 20 6d 6f 64 65 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 f.this.mode"))......(define-key.
bdc0 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 6a 73 32 2d 66 6f 72 map.[menu-bar.javascript.js2-for
bde0 63 65 2d 72 65 66 72 65 73 68 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 46 ce-refresh].......'(menu-item."F
be00 6f 72 63 65 20 62 75 66 66 65 72 20 72 65 66 72 65 73 68 22 20 6a 73 32 2d 6d 6f 64 65 2d 72 65 orce.buffer.refresh".js2-mode-re
be20 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20 22 52 65 2d set...................:help."Re-
be40 70 61 72 73 65 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 73 63 72 61 74 63 68 22 29 29 parse.the.buffer.from.scratch"))
be60 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 ......(define-key.map.[menu-bar.
be80 6a 61 76 61 73 63 72 69 70 74 20 73 65 70 61 72 61 74 6f 72 2d 32 5d 0a 20 20 20 20 20 20 27 28 javascript.separator-2].......'(
bea0 22 2d 2d 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e "--"))......(define-key.map.[men
bec0 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 6e 65 78 74 2d 65 72 72 6f 72 5d 0a 20 20 20 u-bar.javascript.next-error]....
bee0 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 4e 65 78 74 20 77 61 72 6e 69 6e 67 20 6f 72 20 ...'(menu-item."Next.warning.or.
bf00 65 72 72 6f 72 22 20 6e 65 78 74 2d 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 error".next-error...............
bf20 20 20 20 20 3a 65 6e 61 62 6c 65 64 20 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 ....:enabled.(and.js2-mode-ast..
bf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
bf60 6f 72 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a 73 32 2d 6d 6f 64 65 or.(js2-ast-root-errors.js2-mode
bf80 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ast)...........................
bfa0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 ..........(js2-ast-root-warnings
bfc0 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-mode-ast)))................
bfe0 20 20 20 3a 68 65 6c 70 20 22 4d 6f 76 65 20 74 6f 20 6e 65 78 74 20 77 61 72 6e 69 6e 67 20 6f ...:help."Move.to.next.warning.o
c000 72 20 65 72 72 6f 72 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 r.error"))......(define-key.map.
c020 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 64 69 73 70 6c 61 79 2d 65 72 72 [menu-bar.javascript.display-err
c040 6f 72 73 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 53 68 6f 77 20 65 72 72 ors].......'(menu-item."Show.err
c060 6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 22 20 6a 73 32 2d 6d 6f 64 65 2d 64 69 73 70 6c ors.and.warnings".js2-mode-displ
c080 61 79 2d 77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 ay-warnings-and-errors..........
c0a0 20 20 20 20 20 20 20 20 20 3a 76 69 73 69 62 6c 65 20 28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d .........:visible.(not.js2-mode-
c0c0 73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 show-parse-errors)..............
c0e0 20 20 20 20 20 3a 68 65 6c 70 20 22 54 75 72 6e 20 6f 6e 20 64 69 73 70 6c 61 79 20 6f 66 20 77 .....:help."Turn.on.display.of.w
c100 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f 72 73 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 arnings.and.errors"))......(defi
c120 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 ne-key.map.[menu-bar.javascript.
c140 68 69 64 65 2d 65 72 72 6f 72 73 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 hide-errors].......'(menu-item."
c160 48 69 64 65 20 65 72 72 6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 22 20 6a 73 32 2d 6d 6f Hide.errors.and.warnings".js2-mo
c180 64 65 2d 68 69 64 65 2d 77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 0a 20 20 20 20 de-hide-warnings-and-errors.....
c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 69 73 69 62 6c 65 20 6a 73 32 2d 6d 6f 64 65 2d ..............:visible.js2-mode-
c1c0 73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 show-parse-errors...............
c1e0 20 20 20 20 3a 68 65 6c 70 20 22 54 75 72 6e 20 6f 66 66 20 64 69 73 70 6c 61 79 20 6f 66 20 77 ....:help."Turn.off.display.of.w
c200 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f 72 73 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 arnings.and.errors"))......(defi
c220 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 ne-key.map.[menu-bar.javascript.
c240 73 65 70 61 72 61 74 6f 72 2d 31 5d 0a 20 20 20 20 20 20 27 28 22 2d 2d 22 29 29 0a 0a 20 20 20 separator-1].......'("--")).....
c260 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 .(define-key.map.[menu-bar.javas
c280 63 72 69 70 74 20 6a 73 32 2d 74 6f 67 67 6c 65 2d 66 75 6e 63 74 69 6f 6e 5d 0a 20 20 20 20 20 cript.js2-toggle-function]......
c2a0 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 53 68 6f 77 2f 63 6f 6c 6c 61 70 73 65 20 65 6c 65 6d .'(menu-item."Show/collapse.elem
c2c0 65 6e 74 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 65 6c 65 6d 65 6e 74 0a 20 20 20 ent".js2-mode-toggle-element....
c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20 22 48 69 64 65 20 6f 72 20 73 68 ...............:help."Hide.or.sh
c300 6f 77 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 20 6f 72 20 63 6f 6d 6d 65 6e 74 22 29 29 0a 0a ow.function.body.or.comment"))..
c320 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 ....(define-key.map.[menu-bar.ja
c340 76 61 73 63 72 69 70 74 20 73 68 6f 77 2d 63 6f 6d 6d 65 6e 74 73 5d 0a 20 20 20 20 20 20 27 28 vascript.show-comments].......'(
c360 6d 65 6e 75 2d 69 74 65 6d 20 22 53 68 6f 77 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 22 20 menu-item."Show.block.comments".
c380 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 js2-mode-toggle-hide-comments...
c3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 69 73 69 62 6c 65 20 6a 73 32 2d 6d 6f 64 ................:visible.js2-mod
c3c0 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 69 64 64 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-comments-hidden...............
c3e0 20 20 20 20 3a 68 65 6c 70 20 22 45 78 70 61 6e 64 20 61 6c 6c 20 68 69 64 64 65 6e 20 62 6c 6f ....:help."Expand.all.hidden.blo
c400 63 6b 20 63 6f 6d 6d 65 6e 74 73 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 ck.comments"))......(define-key.
c420 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20 68 69 64 65 2d 63 6f map.[menu-bar.javascript.hide-co
c440 6d 6d 65 6e 74 73 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 48 69 64 65 20 mments].......'(menu-item."Hide.
c460 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d block.comments".js2-mode-toggle-
c480 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hide-comments...................
c4a0 3a 76 69 73 69 62 6c 65 20 28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d :visible.(not.js2-mode-comments-
c4c0 68 69 64 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20 hidden)...................:help.
c4e0 22 53 68 6f 77 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 61 73 20 2f 2a 2e 2e 2e 2a 2f 22 "Show.block.comments.as./*...*/"
c500 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 ))......(define-key.map.[menu-ba
c520 72 20 6a 61 76 61 73 63 72 69 70 74 20 73 68 6f 77 2d 61 6c 6c 2d 66 75 6e 63 74 69 6f 6e 73 5d r.javascript.show-all-functions]
c540 0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 53 68 6f 77 20 66 75 6e 63 74 69 6f .......'(menu-item."Show.functio
c560 6e 20 62 6f 64 69 65 73 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 66 n.bodies".js2-mode-toggle-hide-f
c580 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 69 73 69 unctions...................:visi
c5a0 62 6c 65 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 73 2d 68 69 64 64 65 6e 0a 20 20 ble.js2-mode-functions-hidden...
c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20 22 45 78 70 61 6e 64 20 61 6c ................:help."Expand.al
c5e0 6c 20 68 69 64 64 65 6e 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 69 65 73 22 29 29 0a 0a 20 20 20 l.hidden.function.bodies")).....
c600 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 .(define-key.map.[menu-bar.javas
c620 63 72 69 70 74 20 68 69 64 65 2d 61 6c 6c 2d 66 75 6e 63 74 69 6f 6e 73 5d 0a 20 20 20 20 20 20 cript.hide-all-functions].......
c640 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 48 69 64 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 69 65 '(menu-item."Hide.function.bodie
c660 73 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f 6e s".js2-mode-toggle-hide-function
c680 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 69 73 69 62 6c 65 20 28 6e 6f s...................:visible.(no
c6a0 74 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 73 2d 68 69 64 64 65 6e 29 0a 20 20 20 t.js2-mode-functions-hidden)....
c6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20 22 53 68 6f 77 20 7b 2e 2e 2e 7d ...............:help."Show.{...}
c6e0 20 66 6f 72 20 61 6c 6c 20 74 6f 70 2d 6c 65 76 65 6c 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 69 .for.all.top-level.function.bodi
c700 65 73 22 29 29 0a 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 69 es"))......map)..."Keymap.used.i
c720 6e 20 60 6a 73 32 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e 22 29 0a 0a 28 64 65 66 63 75 73 n.`js2-mode'.buffers.")..(defcus
c740 74 6f 6d 20 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 2d 70 20 6e 69 6c 0a 20 20 22 4e tom.js2-bounce-indent-p.nil..."N
c760 6f 6e 2d 6e 69 6c 20 74 6f 20 62 69 6e 64 20 60 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63 on-nil.to.bind.`js2-indent-bounc
c780 65 27 20 61 6e 64 20 60 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63 65 2d 62 61 63 6b 77 61 e'.and.`js2-indent-bounce-backwa
c7a0 72 64 27 2e 0a 54 68 65 79 20 77 69 6c 6c 20 61 75 67 6d 65 6e 74 20 74 68 65 20 64 65 66 61 75 rd'..They.will.augment.the.defau
c7c0 6c 74 20 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 62 65 68 61 76 69 6f 72 20 77 69 74 68 20 63 79 63 lt.indent-line.behavior.with.cyc
c7e0 6c 69 6e 67 0a 61 6d 6f 6e 67 20 73 65 76 65 72 61 6c 20 63 6f 6d 70 75 74 65 64 20 61 6c 74 65 ling.among.several.computed.alte
c800 72 6e 61 74 69 76 65 73 2e 20 20 53 65 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6a 73 32 rnatives...See.the.function.`js2
c820 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 20 20 54 68 -bounce-indent'.for.details...Th
c840 65 20 61 62 6f 76 65 20 63 6f 6d 6d 61 6e 64 73 20 77 69 6c 6c 20 62 65 0a 62 6f 75 6e 64 20 74 e.above.commands.will.be.bound.t
c860 6f 20 54 41 42 20 61 6e 64 20 62 61 63 6b 74 61 62 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f o.TAB.and.backtab."...:type.'boo
c880 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 73 65 74 20 28 lean...:group.'js2-mode...:set.(
c8a0 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 lambda.(sym.value)..........(set
c8c0 2d 64 65 66 61 75 6c 74 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 -default.sym.value)..........(le
c8e0 74 20 28 28 6d 61 70 20 6a 73 32 2d 6d 6f 64 65 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 t.((map.js2-mode-map))..........
c900 20 20 28 69 66 20 28 6e 6f 74 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(if.(not.value)...............
c920 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 .(progn..................(define
c940 2d 6b 65 79 20 6d 61 70 20 22 5c 74 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -key.map."\t".nil)..............
c960 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 ....(define-key.map.(kbd."<backt
c980 61 62 3e 22 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 ab>").nil))..............(define
c9a0 2d 6b 65 79 20 6d 61 70 20 22 5c 74 22 20 23 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63 -key.map."\t".#'js2-indent-bounc
c9c0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 e)..............(define-key.map.
c9e0 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22 29 20 23 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 (kbd."<backtab>").#'js2-indent-b
ca00 6f 75 6e 63 65 2d 62 61 63 6b 77 61 72 64 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a ounce-backward)))))..(defconst.j
ca20 73 32 2d 6d 6f 64 65 2d 69 64 65 6e 74 69 66 69 65 72 2d 72 65 20 22 5b 5b 3a 61 6c 70 68 61 3a s2-mode-identifier-re."[[:alpha:
ca40 5d 5f 24 5d 5b 5b 3a 61 6c 6e 75 6d 3a 5d 5f 24 5d 2a 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 ]_$][[:alnum:]_$]*")..(defvar.js
ca60 32 2d 6d 6f 64 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 2d 72 65 20 22 5e 5c 5c 28 5c 5c 73 2d 2a 5c 2-mode-//-comment-re."^\\(\\s-*\
ca80 5c 29 2f 2f 2e 2b 22 0a 20 20 22 4d 61 74 63 68 65 73 20 61 20 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 \)//.+"..."Matches.a.//-comment.
caa0 6c 69 6e 65 2e 20 20 4d 75 73 74 20 62 65 20 66 69 72 73 74 20 6e 6f 6e 2d 77 68 69 74 65 73 70 line...Must.be.first.non-whitesp
cac0 61 63 65 20 6f 6e 20 6c 69 6e 65 2e 0a 46 69 72 73 74 20 6d 61 74 63 68 2d 67 72 6f 75 70 20 69 ace.on.line..First.match-group.i
cae0 73 20 74 68 65 20 6c 65 61 64 69 6e 67 20 77 68 69 74 65 73 70 61 63 65 2e 22 29 0a 0a 28 64 65 s.the.leading.whitespace.")..(de
cb00 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 6e 69 6c 29 0a 0a 28 6a 73 32 2d 64 65 fvar.js2-mode-hook.nil)..(js2-de
cb20 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 6e 69 6c 20 22 50 72 69 76 61 74 65 flocal.js2-mode-ast.nil."Private
cb40 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d .variable.").(js2-deflocal.js2-m
cb60 6f 64 65 2d 70 61 72 73 65 2d 74 69 6d 65 72 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 ode-parse-timer.nil."Private.var
cb80 69 61 62 6c 65 2e 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d iable.").(js2-deflocal.js2-mode-
cba0 62 75 66 66 65 72 2d 64 69 72 74 79 2d 70 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 buffer-dirty-p.nil."Private.vari
cbc0 61 62 6c 65 2e 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 70 able.").(js2-deflocal.js2-mode-p
cbe0 61 72 73 69 6e 67 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 2e 22 29 0a arsing.nil."Private.variable.").
cc00 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 (js2-deflocal.js2-mode-node-over
cc20 6c 61 79 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d lay.nil)..(defvar.js2-mode-show-
cc40 6f 76 65 72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 76 2d 6d 6f 64 65 2d 70 0a 20 20 22 44 overlay.js2-mode-dev-mode-p..."D
cc60 65 62 75 67 3a 20 20 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 41 53 54 20 ebug:..Non-nil.to.highlight.AST.
cc80 6e 6f 64 65 73 20 6f 6e 20 6d 6f 75 73 65 2d 64 6f 77 6e 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 nodes.on.mouse-down.")..(js2-def
cca0 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 20 6e 69 local.js2-mode-fontifications.ni
ccc0 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f l."Private.variable").(js2-deflo
cce0 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d 70 72 6f 70 65 72 74 69 65 73 cal.js2-mode-deferred-properties
cd00 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 22 29 0a 28 6a 73 32 2d 64 65 .nil."Private.variable").(js2-de
cd20 66 6c 6f 63 61 6c 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 20 6e 69 6c 20 22 50 flocal.js2-imenu-recorder.nil."P
cd40 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 rivate.variable").(js2-deflocal.
cd60 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 6e 69 6c 20 22 50 72 69 76 js2-imenu-function-map.nil."Priv
cd80 61 74 65 20 76 61 72 69 61 62 6c 65 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 ate.variable")..(defvar.js2-mode
cda0 2d 76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 76 2d 6d 6f -verbose-parse-p.js2-mode-dev-mo
cdc0 64 65 2d 70 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 65 6d 69 74 20 73 74 61 74 75 73 20 6d de-p..."Non-nil.to.emit.status.m
cde0 65 73 73 61 67 65 73 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76 essages.during.parsing.")..(defv
ce00 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e 67 65 2d 73 79 6e 74 61 78 2d 70 20 74 0a 20 20 ar.js2-mode-change-syntax-p.t...
ce20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 65 74 20 74 68 65 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 "Non-nil.to.set.the.syntax-table
ce40 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 20 6f 6e 20 63 65 72 74 61 69 6e 20 6c 69 74 65 72 61 .text.property.on.certain.litera
ce60 6c 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e ls.")..(defvar.js2-mode-function
ce80 73 2d 68 69 64 64 65 6e 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 2e 22 s-hidden.nil."Private.variable."
cea0 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 69 64 64 ).(defvar.js2-mode-comments-hidd
cec0 65 6e 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 64 65 en.nil."Private.variable.")..(de
cee0 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a 20 20 28 6c 65 fvar.js2-mode-syntax-table...(le
cf00 74 20 28 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 29 0a t.((table.(make-syntax-table))).
cf20 20 20 20 20 28 63 2d 70 6f 70 75 6c 61 74 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 74 61 62 ....(c-populate-syntax-table.tab
cf40 6c 65 29 0a 20 20 20 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 3f 60 20 le).....(modify-syntax-entry.?`.
cf60 22 5c 22 22 20 74 61 62 6c 65 29 0a 20 20 20 20 74 61 62 6c 65 29 0a 20 20 22 53 79 6e 74 61 78 "\"".table).....table)..."Syntax
cf80 20 74 61 62 6c 65 20 75 73 65 64 20 69 6e 20 60 6a 73 32 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 .table.used.in.`js2-mode'.buffer
cfa0 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 s.")..(defvar.js2-mode-abbrev-ta
cfc0 62 6c 65 20 6e 69 6c 0a 20 20 22 41 62 62 72 65 76 20 74 61 62 6c 65 20 69 6e 20 75 73 65 20 69 ble.nil..."Abbrev.table.in.use.i
cfe0 6e 20 60 6a 73 32 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e 22 29 0a 28 64 65 66 69 6e 65 2d n.`js2-mode'.buffers.").(define-
d000 61 62 62 72 65 76 2d 74 61 62 6c 65 20 27 6a 73 32 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 abbrev-table.'js2-mode-abbrev-ta
d020 62 6c 65 20 28 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e ble.())..(defvar.js2-mode-pendin
d040 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 g-parse-callbacks.nil..."List.of
d060 20 66 75 6e 63 74 69 6f 6e 73 20 77 61 69 74 69 6e 67 20 74 6f 20 62 65 20 6e 6f 74 69 66 69 65 .functions.waiting.to.be.notifie
d080 64 20 74 68 61 74 20 70 61 72 73 65 20 69 73 20 66 69 6e 69 73 68 65 64 2e 22 29 0a 0a 28 64 65 d.that.parse.is.finished.")..(de
d0a0 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65 fvar.js2-mode-last-indented-line
d0c0 20 2d 31 29 0a 0a 3b 3b 3b 20 4c 6f 63 61 6c 69 7a 61 62 6c 65 20 65 72 72 6f 72 20 61 6e 64 20 .-1)..;;;.Localizable.error.and.
d0e0 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 0a 0a 3b 3b 20 4d 65 73 73 61 67 65 73 20 61 72 warning.messages..;;.Messages.ar
d100 65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 52 68 69 6e 6f 27 73 20 4d 65 73 73 61 67 65 73 2e 70 e.copied.from.Rhino's.Messages.p
d120 72 6f 70 65 72 74 69 65 73 2e 0a 3b 3b 20 4d 61 6e 79 20 6f 66 20 74 68 65 20 4a 61 76 61 2d 73 roperties..;;.Many.of.the.Java-s
d140 70 65 63 69 66 69 63 20 6d 65 73 73 61 67 65 73 20 68 61 76 65 20 62 65 65 6e 20 65 6c 69 64 65 pecific.messages.have.been.elide
d160 64 2e 0a 3b 3b 20 41 64 64 20 61 6e 79 20 6a 73 32 2d 73 70 65 63 69 66 69 63 20 6f 6e 65 73 20 d..;;.Add.any.js2-specific.ones.
d180 61 74 20 74 68 65 20 65 6e 64 2c 20 73 6f 20 77 65 20 63 61 6e 20 6b 65 65 70 0a 3b 3b 20 74 68 at.the.end,.so.we.can.keep.;;.th
d1a0 69 73 20 66 69 6c 65 20 73 79 6e 63 65 64 20 77 69 74 68 20 63 68 61 6e 67 65 73 20 74 6f 20 52 is.file.synced.with.changes.to.R
d1c0 68 69 6e 6f 27 73 2e 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 65 73 73 61 67 65 2d 74 61 62 hino's...(defvar.js2-message-tab
d1e0 6c 65 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 le...(make-hash-table.:test.'equ
d200 61 6c 20 3a 73 69 7a 65 20 32 35 30 29 0a 20 20 22 43 6f 6e 74 61 69 6e 73 20 6c 6f 63 61 6c 69 al.:size.250)..."Contains.locali
d220 7a 65 64 20 6d 65 73 73 61 67 65 73 20 66 6f 72 20 60 6a 73 32 2d 6d 6f 64 65 27 2e 22 29 0a 0a zed.messages.for.`js2-mode'.")..
d240 3b 3b 20 54 4f 44 4f 28 73 74 65 76 65 79 29 3a 20 20 63 6f 6e 73 74 72 75 63 74 20 74 68 69 73 ;;.TODO(stevey):..construct.this
d260 20 74 61 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 28 64 65 66 6d 61 63 72 .table.at.compile-time..(defmacr
d280 6f 20 6a 73 32 2d 6d 73 67 20 28 6b 65 79 20 26 72 65 73 74 20 73 74 72 69 6e 67 73 29 0a 20 20 o.js2-msg.(key.&rest.strings)...
d2a0 60 28 70 75 74 68 61 73 68 20 2c 6b 65 79 20 28 63 6f 6e 63 61 74 20 2c 40 73 74 72 69 6e 67 73 `(puthash.,key.(concat.,@strings
d2c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 65 73 73 61 67 65 2d 74 61 62 6c 65 29 ).............js2-message-table)
d2e0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6d 73 67 20 28 6d 73 67 2d 6b 65 79 29 0a )..(defun.js2-get-msg.(msg-key).
d300 20 20 22 4c 6f 6f 6b 20 75 70 20 61 20 6c 6f 63 61 6c 69 7a 65 64 20 6d 65 73 73 61 67 65 2e 0a .."Look.up.a.localized.message..
d320 4d 53 47 2d 4b 45 59 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 28 4d 53 47 20 41 52 47 53 29 2e MSG-KEY.is.a.list.of.(MSG.ARGS).
d340 20 20 49 66 20 74 68 65 20 6d 65 73 73 61 67 65 20 74 61 6b 65 73 20 70 61 72 61 6d 65 74 65 72 ..If.the.message.takes.parameter
d360 73 2c 0a 74 68 65 20 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 41 52 47 53 20 6d 75 s,.the.correct.number.of.ARGS.mu
d380 73 74 20 62 65 20 70 72 6f 76 69 64 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 20 28 st.be.provided."...(let*.((key.(
d3a0 69 66 20 28 6c 69 73 74 70 20 6d 73 67 2d 6b 65 79 29 20 28 63 61 72 20 6d 73 67 2d 6b 65 79 29 if.(listp.msg-key).(car.msg-key)
d3c0 20 6d 73 67 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 69 66 20 28 6c .msg-key))..........(args.(if.(l
d3e0 69 73 74 70 20 6d 73 67 2d 6b 65 79 29 20 28 63 64 72 20 6d 73 67 2d 6b 65 79 29 29 29 0a 20 20 istp.msg-key).(cdr.msg-key)))...
d400 20 20 20 20 20 20 20 28 6d 73 67 20 28 67 65 74 68 61 73 68 20 6b 65 79 20 6a 73 32 2d 6d 65 73 .......(msg.(gethash.key.js2-mes
d420 73 61 67 65 2d 74 61 62 6c 65 29 29 29 0a 20 20 20 20 28 69 66 20 6d 73 67 0a 20 20 20 20 20 20 sage-table))).....(if.msg.......
d440 20 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61 74 20 6d 73 67 20 61 72 67 73 29 0a 20 20 20 20 ..(apply.#'format.msg.args).....
d460 20 20 6b 65 79 29 29 29 20 20 3b 20 64 65 66 61 75 6c 74 20 74 6f 20 73 68 6f 77 69 6e 67 20 74 ..key)))..;.default.to.showing.t
d480 68 65 20 6b 65 79 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 75 70 2e 70 61 72 6d 73 22 he.key..(js2-msg."msg.dup.parms"
d4a0 0a 20 20 20 20 20 20 20 20 20 22 44 75 70 6c 69 63 61 74 65 20 70 61 72 61 6d 65 74 65 72 20 6e .........."Duplicate.parameter.n
d4c0 61 6d 65 20 27 25 73 27 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f 6f 2e 62 ame.'%s'.")..(js2-msg."msg.too.b
d4e0 69 67 2e 6a 75 6d 70 22 0a 20 20 20 20 20 20 20 20 20 22 50 72 6f 67 72 61 6d 20 74 6f 6f 20 63 ig.jump".........."Program.too.c
d500 6f 6d 70 6c 65 78 3a 20 6a 75 6d 70 20 6f 66 66 73 65 74 20 74 6f 6f 20 62 69 67 2e 22 29 0a 0a omplex:.jump.offset.too.big.")..
d520 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f 6f 2e 62 69 67 2e 69 6e 64 65 78 22 0a 20 20 20 (js2-msg."msg.too.big.index"....
d540 20 20 20 20 20 20 22 50 72 6f 67 72 61 6d 20 74 6f 6f 20 63 6f 6d 70 6c 65 78 3a 20 69 6e 74 65 ......"Program.too.complex:.inte
d560 72 6e 61 6c 20 69 6e 64 65 78 20 65 78 63 65 65 64 73 20 36 34 4b 20 6c 69 6d 69 74 2e 22 29 0a rnal.index.exceeds.64K.limit.").
d580 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 77 68 69 6c 65 2e 63 6f 6d 70 69 6c 69 6e 67 2e 66 .(js2-msg."msg.while.compiling.f
d5a0 6e 22 0a 20 20 20 20 20 20 20 20 20 22 45 6e 63 6f 75 6e 74 65 72 65 64 20 63 6f 64 65 20 67 65 n".........."Encountered.code.ge
d5c0 6e 65 72 61 74 69 6f 6e 20 65 72 72 6f 72 20 77 68 69 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 66 neration.error.while.compiling.f
d5e0 75 6e 63 74 69 6f 6e 20 27 25 73 27 3a 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 unction.'%s':.%s")..(js2-msg."ms
d600 67 2e 77 68 69 6c 65 2e 63 6f 6d 70 69 6c 69 6e 67 2e 73 63 72 69 70 74 22 0a 20 20 20 20 20 20 g.while.compiling.script".......
d620 20 20 20 22 45 6e 63 6f 75 6e 74 65 72 65 64 20 63 6f 64 65 20 67 65 6e 65 72 61 74 69 6f 6e 20 ..."Encountered.code.generation.
d640 65 72 72 6f 72 20 77 68 69 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 73 63 72 69 70 74 3a 20 25 73 error.while.compiling.script:.%s
d660 22 29 0a 0a 3b 3b 20 43 6f 6e 74 65 78 74 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 74 6f ")..;;.Context.(js2-msg."msg.cto
d680 72 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72 75 63 74 r.not.found".........."Construct
d6a0 6f 72 20 66 6f 72 20 27 25 73 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d or.for.'%s'.not.found.")..(js2-m
d6c0 73 67 20 22 6d 73 67 2e 6e 6f 74 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27 sg."msg.not.ctor".........."'%s'
d6e0 20 69 73 20 6e 6f 74 20 61 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 22 29 0a 0a 3b 3b 20 46 75 6e .is.not.a.constructor.")..;;.Fun
d700 63 74 69 6f 6e 4f 62 6a 65 63 74 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 76 61 72 61 72 67 ctionObject.(js2-msg."msg.vararg
d720 73 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 6f 72 20 63 6f 6e 73 s.ctor".........."Method.or.cons
d740 74 72 75 63 74 6f 72 20 27 25 73 27 20 6d 75 73 74 20 62 65 20 73 74 61 74 69 63 20 22 0a 20 20 tructor.'%s'.must.be.static."...
d760 20 20 20 20 20 20 20 22 77 69 74 68 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 28 43 6f 6e 74 ......."with.the.signature.(Cont
d780 65 78 74 20 63 78 2c 20 4f 62 6a 65 63 74 5b 5d 20 61 72 67 73 2c 20 22 0a 20 20 20 20 20 20 20 ext.cx,.Object[].args,."........
d7a0 20 20 22 46 75 6e 63 74 69 6f 6e 20 63 74 6f 72 4f 62 6a 2c 20 62 6f 6f 6c 65 61 6e 20 69 6e 4e .."Function.ctorObj,.boolean.inN
d7c0 65 77 45 78 70 72 29 20 22 0a 20 20 20 20 20 20 20 20 20 22 74 6f 20 64 65 66 69 6e 65 20 61 20 ewExpr).".........."to.define.a.
d7e0 76 61 72 69 61 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 22 variable.arguments.constructor."
d800 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 76 61 72 61 72 67 73 2e 66 75 6e 22 0a 20 20 )..(js2-msg."msg.varargs.fun"...
d820 20 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 27 25 73 27 20 6d 75 73 74 20 62 65 20 73 74 61 74 ......."Method.'%s'.must.be.stat
d840 69 63 20 77 69 74 68 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 22 0a 20 20 20 20 20 20 20 20 ic.with.the.signature.".........
d860 20 22 28 43 6f 6e 74 65 78 74 20 63 78 2c 20 53 63 72 69 70 74 61 62 6c 65 20 74 68 69 73 4f 62 ."(Context.cx,.Scriptable.thisOb
d880 6a 2c 20 4f 62 6a 65 63 74 5b 5d 20 61 72 67 73 2c 20 46 75 6e 63 74 69 6f 6e 20 66 75 6e 4f 62 j,.Object[].args,.Function.funOb
d8a0 6a 29 20 22 0a 20 20 20 20 20 20 20 20 20 22 74 6f 20 64 65 66 69 6e 65 20 61 20 76 61 72 69 61 j).".........."to.define.a.varia
d8c0 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 20 66 75 6e 63 74 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d ble.arguments.function.")..(js2-
d8e0 6d 73 67 20 22 6d 73 67 2e 69 6e 63 6f 6d 70 61 74 2e 63 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 msg."msg.incompat.call".........
d900 20 22 4d 65 74 68 6f 64 20 27 25 73 27 20 63 61 6c 6c 65 64 20 6f 6e 20 69 6e 63 6f 6d 70 61 74 ."Method.'%s'.called.on.incompat
d920 69 62 6c 65 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 ible.object.")..(js2-msg."msg.ba
d940 64 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 70 d.parms".........."Unsupported.p
d960 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 27 25 73 27 20 69 6e 20 6d 65 74 68 6f 64 20 27 25 73 arameter.type.'%s'.in.method.'%s
d980 27 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6d 65 74 68 6f 64 2e 72 '.")..(js2-msg."msg.bad.method.r
d9a0 65 74 75 72 6e 22 0a 20 20 20 20 20 20 20 20 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 72 65 74 eturn".........."Unsupported.ret
d9c0 75 72 6e 20 74 79 70 65 20 27 25 73 27 20 69 6e 20 6d 65 74 68 6f 64 20 27 25 73 27 2e 22 29 0a urn.type.'%s'.in.method.'%s'.").
d9e0 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 63 74 6f 72 2e 72 65 74 75 72 6e 22 0a .(js2-msg."msg.bad.ctor.return".
da00 20 20 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 6f 62 6a 65 63 74 ........."Construction.of.object
da20 73 20 6f 66 20 74 79 70 65 20 27 25 73 27 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e s.of.type.'%s'.is.not.supported.
da40 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 6f 76 65 72 6c 6f 61 64 22 0a 20 ")..(js2-msg."msg.no.overload"..
da60 20 20 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 27 25 73 27 20 6f 63 63 75 72 73 20 6d 75 6c 74 ........"Method.'%s'.occurs.mult
da80 69 70 6c 65 20 74 69 6d 65 73 20 69 6e 20 63 6c 61 73 73 20 27 25 73 27 2e 22 29 0a 0a 28 6a 73 iple.times.in.class.'%s'.")..(js
daa0 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 65 74 68 6f 64 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20 20 20 2-msg."msg.method.not.found"....
dac0 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 27 25 73 27 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 ......"Method.'%s'.not.found.in.
dae0 27 25 73 27 2e 22 29 0a 0a 3b 3b 20 49 52 46 61 63 74 6f 72 79 0a 0a 28 6a 73 32 2d 6d 73 67 20 '%s'.")..;;.IRFactory..(js2-msg.
db00 22 6d 73 67 2e 62 61 64 2e 66 6f 72 2e 69 6e 2e 6c 68 73 22 0a 20 20 20 20 20 20 20 20 20 22 49 "msg.bad.for.in.lhs".........."I
db20 6e 76 61 6c 69 64 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20 66 6f 72 2e 2e 69 6e nvalid.left-hand.side.of.for..in
db40 20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 75 6c 74 2e 69 6e 64 .loop.")..(js2-msg."msg.mult.ind
db60 65 78 22 0a 20 20 20 20 20 20 20 20 20 22 4f 6e 6c 79 20 6f 6e 65 20 76 61 72 69 61 62 6c 65 20 ex".........."Only.one.variable.
db80 61 6c 6c 6f 77 65 64 20 69 6e 20 66 6f 72 2e 2e 69 6e 20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32 allowed.in.for..in.loop.")..(js2
dba0 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 66 6f 72 2e 69 6e 2e 64 65 73 74 72 75 63 74 22 0a 20 -msg."msg.bad.for.in.destruct"..
dbc0 20 20 20 20 20 20 20 20 22 4c 65 66 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 66 6f 72 2e 2e ........"Left.hand.side.of.for..
dbe0 69 6e 20 6c 6f 6f 70 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 22 0a 20 20 in.loop.must.be.an.array.of."...
dc00 20 20 20 20 20 20 20 22 6c 65 6e 67 74 68 20 32 20 74 6f 20 61 63 63 65 70 74 20 6b 65 79 2f 76 ......."length.2.to.accept.key/v
dc20 61 6c 75 65 20 70 61 69 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 6e 74 alue.pair.")..(js2-msg."msg.cant
dc40 2e 63 6f 6e 76 65 72 74 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 27 74 20 63 6f 6e 76 65 72 .convert".........."Can't.conver
dc60 74 20 74 6f 20 74 79 70 65 20 27 25 73 27 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 t.to.type.'%s'.")..(js2-msg."msg
dc80 2e 62 61 64 2e 61 73 73 69 67 6e 2e 6c 65 66 74 22 0a 20 20 20 20 20 20 20 20 20 22 49 6e 76 61 .bad.assign.left".........."Inva
dca0 6c 69 64 20 61 73 73 69 67 6e 6d 65 6e 74 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 65 2e 22 29 lid.assignment.left-hand.side.")
dcc0 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 64 65 63 72 22 0a 20 20 20 20 20 20 ..(js2-msg."msg.bad.decr".......
dce0 20 20 20 22 49 6e 76 61 6c 69 64 20 64 65 63 72 65 6d 65 6e 74 20 6f 70 65 72 61 6e 64 2e 22 29 ..."Invalid.decrement.operand.")
dd00 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 69 6e 63 72 22 0a 20 20 20 20 20 20 ..(js2-msg."msg.bad.incr".......
dd20 20 20 20 22 49 6e 76 61 6c 69 64 20 69 6e 63 72 65 6d 65 6e 74 20 6f 70 65 72 61 6e 64 2e 22 29 ..."Invalid.increment.operand.")
dd40 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 79 69 65 6c 64 22 0a 20 20 20 20 20 ..(js2-msg."msg.bad.yield"......
dd60 20 20 20 20 22 79 69 65 6c 64 20 6d 75 73 74 20 62 65 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e ...."yield.must.be.in.a.function
dd80 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 61 77 61 69 74 22 0a 20 20 .")..(js2-msg."msg.bad.await"...
dda0 20 20 20 20 20 20 20 22 61 77 61 69 74 20 6d 75 73 74 20 62 65 20 69 6e 20 61 73 79 6e 63 20 66 ......."await.must.be.in.async.f
ddc0 75 6e 63 74 69 6f 6e 73 2e 22 29 0a 0a 3b 3b 20 4e 61 74 69 76 65 47 6c 6f 62 61 6c 0a 28 6a 73 unctions.")..;;.NativeGlobal.(js
dde0 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 6e 74 2e 63 61 6c 6c 2e 69 6e 64 69 72 65 63 74 22 0a 20 2-msg."msg.cant.call.indirect"..
de00 20 20 20 20 20 20 20 20 20 22 46 75 6e 63 74 69 6f 6e 20 27 25 73 27 20 6d 75 73 74 20 62 65 20 ........."Function.'%s'.must.be.
de20 63 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 2c 20 61 6e 64 20 6e 6f 74 20 62 79 20 77 61 79 20 called.directly,.and.not.by.way.
de40 6f 66 20 61 20 22 0a 20 20 20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 20 6f 66 20 61 6e of.a."..........."function.of.an
de60 6f 74 68 65 72 20 6e 61 6d 65 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 76 61 other.name.")..(js2-msg."msg.eva
de80 6c 2e 6e 6f 6e 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 22 43 61 6c 6c 69 6e 67 20 l.nonstring"..........."Calling.
dea0 65 76 61 6c 28 29 20 77 69 74 68 20 61 6e 79 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 eval().with.anything.other.than.
dec0 61 20 70 72 69 6d 69 74 69 76 65 20 22 0a 20 20 20 20 20 20 20 20 20 20 22 73 74 72 69 6e 67 20 a.primitive."..........."string.
dee0 76 61 6c 75 65 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 72 65 74 75 72 6e 20 74 68 65 20 76 61 6c value.will.simply.return.the.val
df00 75 65 2e 20 22 0a 20 20 20 20 20 20 20 20 20 20 22 49 73 20 74 68 69 73 20 77 68 61 74 20 79 6f ue.."..........."Is.this.what.yo
df20 75 20 69 6e 74 65 6e 64 65 64 3f 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 76 61 u.intended?")..(js2-msg."msg.eva
df40 6c 2e 6e 6f 6e 73 74 72 69 6e 67 2e 73 74 72 69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 l.nonstring.strict".........."Ca
df60 6c 6c 69 6e 67 20 65 76 61 6c 28 29 20 77 69 74 68 20 61 6e 79 74 68 69 6e 67 20 6f 74 68 65 72 lling.eval().with.anything.other
df80 20 74 68 61 6e 20 61 20 70 72 69 6d 69 74 69 76 65 20 22 0a 20 20 20 20 20 20 20 20 20 22 73 74 .than.a.primitive.".........."st
dfa0 72 69 6e 67 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 73 74 72 ring.value.is.not.allowed.in.str
dfc0 69 63 74 20 6d 6f 64 65 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 64 ict.mode.")..(js2-msg."msg.bad.d
dfe0 65 73 74 72 75 63 74 2e 6f 70 22 0a 20 20 20 20 20 20 20 20 20 22 49 6e 76 61 6c 69 64 20 64 65 estruct.op".........."Invalid.de
e000 73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 70 65 72 61 74 6f 72 22 structuring.assignment.operator"
e020 29 0a 0a 3b 3b 20 4e 61 74 69 76 65 43 61 6c 6c 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6f )..;;.NativeCall.(js2-msg."msg.o
e040 6e 6c 79 2e 66 72 6f 6d 2e 6e 65 77 22 0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27 20 6d 61 79 nly.from.new".........."'%s'.may
e060 20 6f 6e 6c 79 20 62 65 20 69 6e 76 6f 6b 65 64 20 66 72 6f 6d 20 61 20 60 6e 65 77 27 20 65 78 .only.be.invoked.from.a.`new'.ex
e080 70 72 65 73 73 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 65 70 72 65 pression.")..(js2-msg."msg.depre
e0a0 63 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 54 68 65 20 27 25 73 27 20 63 6f 6e 73 74 c.ctor".........."The.'%s'.const
e0c0 72 75 63 74 6f 72 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e 22 29 0a 0a 3b 3b 20 4e 61 74 69 ructor.is.deprecated.")..;;.Nati
e0e0 76 65 46 75 6e 63 74 69 6f 6e 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 66 75 6e 63 veFunction.(js2-msg."msg.no.func
e100 74 69 6f 6e 2e 72 65 66 2e 66 6f 75 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 6e 6f 20 73 6f 75 tion.ref.found".........."no.sou
e120 72 63 65 20 66 6f 75 6e 64 20 74 6f 20 64 65 63 6f 6d 70 69 6c 65 20 66 75 6e 63 74 69 6f 6e 20 rce.found.to.decompile.function.
e140 72 65 66 65 72 65 6e 63 65 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 61 72 reference.%s")..(js2-msg."msg.ar
e160 67 2e 69 73 6e 74 2e 61 72 72 61 79 22 0a 20 20 20 20 20 20 20 20 20 22 73 65 63 6f 6e 64 20 61 g.isnt.array".........."second.a
e180 72 67 75 6d 65 6e 74 20 74 6f 20 46 75 6e 63 74 69 6f 6e 2e 70 72 6f 74 6f 74 79 70 65 2e 61 70 rgument.to.Function.prototype.ap
e1a0 70 6c 79 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 22 29 0a 0a 3b 3b 20 4e 61 74 69 76 ply.must.be.an.array")..;;.Nativ
e1c0 65 47 6c 6f 62 61 6c 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 65 73 63 2e 6d 61 eGlobal.(js2-msg."msg.bad.esc.ma
e1e0 73 6b 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 73 74 72 69 6e 67 20 65 73 63 sk".........."invalid.string.esc
e200 61 70 65 20 6d 61 73 6b 22 29 0a 0a 3b 3b 20 4e 61 74 69 76 65 52 65 67 45 78 70 0a 28 6a 73 32 ape.mask")..;;.NativeRegExp.(js2
e220 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 71 75 61 6e 74 22 0a 20 20 22 49 6e 76 61 6c 69 64 20 -msg."msg.bad.quant"..."Invalid.
e240 71 75 61 6e 74 69 66 69 65 72 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6f quantifier.%s")..(js2-msg."msg.o
e260 76 65 72 6c 61 72 67 65 2e 62 61 63 6b 72 65 66 22 0a 20 20 22 4f 76 65 72 6c 79 20 6c 61 72 67 verlarge.backref"..."Overly.larg
e280 65 20 62 61 63 6b 20 72 65 66 65 72 65 6e 63 65 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 e.back.reference.%s")..(js2-msg.
e2a0 22 6d 73 67 2e 6f 76 65 72 6c 61 72 67 65 2e 6d 69 6e 22 0a 20 20 22 4f 76 65 72 6c 79 20 6c 61 "msg.overlarge.min"..."Overly.la
e2c0 72 67 65 20 6d 69 6e 69 6d 75 6d 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e rge.minimum.%s")..(js2-msg."msg.
e2e0 6f 76 65 72 6c 61 72 67 65 2e 6d 61 78 22 0a 20 20 22 4f 76 65 72 6c 79 20 6c 61 72 67 65 20 6d overlarge.max"..."Overly.large.m
e300 61 78 69 6d 75 6d 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 7a 65 72 6f 2e aximum.%s")..(js2-msg."msg.zero.
e320 71 75 61 6e 74 22 0a 20 20 22 5a 65 72 6f 20 71 75 61 6e 74 69 66 69 65 72 20 25 73 22 29 0a 0a quant"..."Zero.quantifier.%s")..
e340 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 61 78 2e 6c 74 2e 6d 69 6e 22 0a 20 20 22 4d 61 78 (js2-msg."msg.max.lt.min"..."Max
e360 69 6d 75 6d 20 25 73 20 6c 65 73 73 20 74 68 61 6e 20 6d 69 6e 69 6d 75 6d 22 29 0a 0a 28 6a 73 imum.%s.less.than.minimum")..(js
e380 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 2e 71 75 61 6e 74 22 0a 20 20 22 55 6e 74 65 2-msg."msg.unterm.quant"..."Unte
e3a0 72 6d 69 6e 61 74 65 64 20 71 75 61 6e 74 69 66 69 65 72 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d rminated.quantifier.%s")..(js2-m
e3c0 73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 2e 70 61 72 65 6e 22 0a 20 20 22 55 6e 74 65 72 6d 69 sg."msg.unterm.paren"..."Untermi
e3e0 6e 61 74 65 64 20 70 61 72 65 6e 74 68 65 74 69 63 61 6c 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d nated.parenthetical.%s")..(js2-m
e400 73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 2e 63 6c 61 73 73 22 0a 20 20 22 55 6e 74 65 72 6d 69 sg."msg.unterm.class"..."Untermi
e420 6e 61 74 65 64 20 63 68 61 72 61 63 74 65 72 20 63 6c 61 73 73 20 25 73 22 29 0a 0a 28 6a 73 32 nated.character.class.%s")..(js2
e440 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 72 61 6e 67 65 22 0a 20 20 22 49 6e 76 61 6c 69 64 20 -msg."msg.bad.range"..."Invalid.
e460 72 61 6e 67 65 20 69 6e 20 63 68 61 72 61 63 74 65 72 20 63 6c 61 73 73 2e 22 29 0a 0a 28 6a 73 range.in.character.class.")..(js
e480 32 2d 6d 73 67 20 22 6d 73 67 2e 74 72 61 69 6c 2e 62 61 63 6b 73 6c 61 73 68 22 0a 20 20 22 54 2-msg."msg.trail.backslash"..."T
e4a0 72 61 69 6c 69 6e 67 20 5c 5c 20 69 6e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e railing.\\.in.regular.expression
e4c0 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 72 65 2e 75 6e 6d 61 74 63 68 65 64 2e .")..(js2-msg."msg.re.unmatched.
e4e0 72 69 67 68 74 2e 70 61 72 65 6e 22 0a 20 20 22 75 6e 6d 61 74 63 68 65 64 20 29 20 69 6e 20 72 right.paren"..."unmatched.).in.r
e500 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 egular.expression.")..(js2-msg."
e520 6d 73 67 2e 6e 6f 2e 72 65 67 65 78 70 22 0a 20 20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 msg.no.regexp"..."Regular.expres
e540 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32 sions.are.not.available.")..(js2
e560 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 62 61 63 6b 72 65 66 22 0a 20 20 22 62 61 63 6b 2d 72 -msg."msg.bad.backref"..."back-r
e580 65 66 65 72 65 6e 63 65 20 65 78 63 65 65 64 73 20 6e 75 6d 62 65 72 20 6f 66 20 63 61 70 74 75 eference.exceeds.number.of.captu
e5a0 72 69 6e 67 20 70 61 72 65 6e 74 68 65 73 65 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d ring.parentheses.")..(js2-msg."m
e5c0 73 67 2e 62 61 64 2e 72 65 67 65 78 70 2e 63 6f 6d 70 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 sg.bad.regexp.compile"..........
e5e0 22 4f 6e 6c 79 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 "Only.one.argument.may.be.specif
e600 69 65 64 20 69 66 20 74 68 65 20 66 69 72 73 74 20 22 0a 20 20 20 20 20 20 20 20 20 22 61 72 67 ied.if.the.first.".........."arg
e620 75 6d 65 6e 74 20 74 6f 20 52 65 67 45 78 70 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6d 70 69 6c ument.to.RegExp.prototype.compil
e640 65 20 69 73 20 61 20 52 65 67 45 78 70 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 3b 3b 20 50 61 72 73 e.is.a.RegExp.object.")..;;.Pars
e660 65 72 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 67 6f 74 2e 73 79 6e 74 61 78 2e 65 72 72 6f er.(js2-msg."msg.got.syntax.erro
e680 72 73 22 0a 20 20 20 20 20 20 20 20 20 22 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 70 72 6f 64 75 63 rs".........."Compilation.produc
e6a0 65 64 20 25 73 20 73 79 6e 74 61 78 20 65 72 72 6f 72 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 ed.%s.syntax.errors.")..(js2-msg
e6c0 20 22 6d 73 67 2e 76 61 72 2e 72 65 64 65 63 6c 22 0a 20 20 20 20 20 20 20 20 20 22 52 65 64 65 ."msg.var.redecl".........."Rede
e6e0 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 76 61 72 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 claration.of.var.%s.")..(js2-msg
e700 20 22 6d 73 67 2e 63 6f 6e 73 74 2e 72 65 64 65 63 6c 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 ."msg.const.redecl".........."Ty
e720 70 65 45 72 72 6f 72 3a 20 72 65 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 63 6f 6e 73 74 20 peError:.redeclaration.of.const.
e740 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6c 65 74 2e 72 65 64 65 63 6c 22 %s.")..(js2-msg."msg.let.redecl"
e760 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65 45 72 72 6f 72 3a 20 72 65 64 65 63 6c 61 72 61 74 .........."TypeError:.redeclarat
e780 69 6f 6e 20 6f 66 20 76 61 72 69 61 62 6c 65 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 ion.of.variable.%s.")..(js2-msg.
e7a0 22 6d 73 67 2e 70 61 72 6d 2e 72 65 64 65 63 6c 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65 "msg.parm.redecl".........."Type
e7c0 45 72 72 6f 72 3a 20 72 65 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 66 6f 72 6d 61 6c 20 70 Error:.redeclaration.of.formal.p
e7e0 61 72 61 6d 65 74 65 72 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 66 6e arameter.%s.")..(js2-msg."msg.fn
e800 2e 72 65 64 65 63 6c 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65 45 72 72 6f 72 3a 20 72 65 .redecl".........."TypeError:.re
e820 64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 25 73 2e 22 29 0a 0a 28 declaration.of.function.%s.")..(
e840 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6c 65 74 2e 64 65 63 6c 2e 6e 6f 74 2e 69 6e 2e 62 6c 6f js2-msg."msg.let.decl.not.in.blo
e860 63 6b 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 6c 65 74 20 64 ck".........."SyntaxError:.let.d
e880 65 63 6c 61 72 61 74 69 6f 6e 20 6e 6f 74 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 69 6e 20 62 eclaration.not.directly.within.b
e8a0 6c 6f 63 6b 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 69 6d 70 6f 72 74 lock")..(js2-msg."msg.mod.import
e8c0 2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76 65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 .decl.at.top.level".........."Sy
e8e0 6e 74 61 78 45 72 72 6f 72 3a 20 69 6d 70 6f 72 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6d ntaxError:.import.declarations.m
e900 61 79 20 6f 6e 6c 79 20 61 70 70 65 61 72 20 61 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 22 ay.only.appear.at.the.top.level"
e920 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 61 73 2e 61 66 74 65 72 2e 72 65 )..(js2-msg."msg.mod.as.after.re
e940 73 65 72 76 65 64 2e 77 6f 72 64 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 served.word".........."SyntaxErr
e960 6f 72 3a 20 6d 69 73 73 69 6e 67 20 6b 65 79 77 6f 72 64 20 27 61 73 27 20 61 66 74 65 72 20 72 or:.missing.keyword.'as'.after.r
e980 65 73 65 72 76 65 64 20 77 6f 72 64 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 eserved.word.%s")..(js2-msg."msg
e9a0 2e 6d 6f 64 2e 72 63 2e 61 66 74 65 72 2e 69 6d 70 6f 72 74 2e 73 70 65 63 2e 6c 69 73 74 22 0a .mod.rc.after.import.spec.list".
e9c0 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 27 ........."SyntaxError:.missing.'
e9e0 7d 27 20 61 66 74 65 72 20 6d 6f 64 75 6c 65 20 73 70 65 63 69 66 69 65 72 20 6c 69 73 74 22 29 }'.after.module.specifier.list")
ea00 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 66 72 6f 6d 2e 61 66 74 65 72 2e 69 ..(js2-msg."msg.mod.from.after.i
ea20 6d 70 6f 72 74 2e 73 70 65 63 2e 73 65 74 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 mport.spec.set".........."Syntax
ea40 45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 6b 65 79 77 6f 72 64 20 27 66 72 6f 6d 27 20 61 66 Error:.missing.keyword.'from'.af
ea60 74 65 72 20 69 6d 70 6f 72 74 20 73 70 65 63 69 66 69 65 72 20 73 65 74 22 29 0a 0a 28 6a 73 32 ter.import.specifier.set")..(js2
ea80 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 64 65 63 6c 61 72 61 74 69 6f 6e 2e 61 66 74 65 72 2e -msg."msg.mod.declaration.after.
eaa0 69 6d 70 6f 72 74 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 6d import".........."SyntaxError:.m
eac0 69 73 73 69 6e 67 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 61 66 74 65 72 20 27 69 6d 70 6f 72 74 issing.declaration.after.'import
eae0 27 20 6b 65 79 77 6f 72 64 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 73 '.keyword")..(js2-msg."msg.mod.s
eb00 70 65 63 2e 61 66 74 65 72 2e 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 pec.after.from".........."Syntax
eb20 45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 6d 6f 64 75 6c 65 20 73 70 65 63 69 66 69 65 72 20 Error:.missing.module.specifier.
eb40 61 66 74 65 72 20 27 66 72 6f 6d 27 20 6b 65 79 77 6f 72 64 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 after.'from'.keyword")..(js2-msg
eb60 20 22 6d 73 67 2e 6d 6f 64 2e 65 78 70 6f 72 74 2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76 ."msg.mod.export.decl.at.top.lev
eb80 65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 65 78 70 6f 72 el".........."SyntaxError:.expor
eba0 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6d 61 79 20 6f 6e 6c 79 20 61 70 70 65 61 72 20 61 t.declarations.may.only.appear.a
ebc0 74 20 74 6f 70 20 6c 65 76 65 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 t.top.level")..(js2-msg."msg.mod
ebe0 2e 72 63 2e 61 66 74 65 72 2e 65 78 70 6f 72 74 2e 73 70 65 63 2e 6c 69 73 74 22 0a 20 20 20 20 .rc.after.export.spec.list".....
ec00 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 27 7d 27 20 61 ....."SyntaxError:.missing.'}'.a
ec20 66 74 65 72 20 65 78 70 6f 72 74 20 73 70 65 63 69 66 69 65 72 20 6c 69 73 74 22 29 0a 0a 3b 3b fter.export.specifier.list")..;;
ec40 20 4e 6f 64 65 54 72 61 6e 73 66 6f 72 6d 65 72 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 .NodeTransformer.(js2-msg."msg.d
ec60 75 70 2e 6c 61 62 65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 64 75 70 6c 69 63 61 74 65 64 20 6c up.label".........."duplicated.l
ec80 61 62 65 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 6c 61 62 65 abel")..(js2-msg."msg.undef.labe
eca0 6c 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 64 65 66 69 6e 65 64 20 6c 61 62 65 6c 22 29 0a 0a l".........."undefined.label")..
ecc0 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 62 72 65 61 6b 22 0a 20 20 20 20 20 20 20 (js2-msg."msg.bad.break"........
ece0 20 20 22 75 6e 6c 61 62 65 6c 6c 65 64 20 62 72 65 61 6b 20 6d 75 73 74 20 62 65 20 69 6e 73 69 .."unlabelled.break.must.be.insi
ed00 64 65 20 6c 6f 6f 70 20 6f 72 20 73 77 69 74 63 68 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d de.loop.or.switch")..(js2-msg."m
ed20 73 67 2e 63 6f 6e 74 69 6e 75 65 2e 6f 75 74 73 69 64 65 22 0a 20 20 20 20 20 20 20 20 20 22 63 sg.continue.outside".........."c
ed40 6f 6e 74 69 6e 75 65 20 6d 75 73 74 20 62 65 20 69 6e 73 69 64 65 20 6c 6f 6f 70 22 29 0a 0a 28 ontinue.must.be.inside.loop")..(
ed60 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 6f 6e 74 69 6e 75 65 2e 6e 6f 6e 6c 6f 6f 70 22 0a 20 js2-msg."msg.continue.nonloop"..
ed80 20 20 20 20 20 20 20 20 22 63 6f 6e 74 69 6e 75 65 20 63 61 6e 20 6f 6e 6c 79 20 75 73 65 20 6c ........"continue.can.only.use.l
eda0 61 62 65 6c 73 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 22 29 0a abels.of.iteration.statements").
edc0 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 74 68 72 6f 77 2e 65 6f 6c 22 0a 20 20 .(js2-msg."msg.bad.throw.eol"...
ede0 20 20 20 20 20 20 20 22 4c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 69 73 20 6e 6f 74 20 61 ......."Line.terminator.is.not.a
ee00 6c 6c 6f 77 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 68 72 6f 77 20 22 0a 20 20 20 20 20 llowed.between.the.throw."......
ee20 20 20 20 20 22 6b 65 79 77 6f 72 64 20 61 6e 64 20 74 68 72 6f 77 20 65 78 70 72 65 73 73 69 6f ...."keyword.and.throw.expressio
ee40 6e 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 6e 61 6d 65 64 2e 66 75 6e 63 n.")..(js2-msg."msg.unnamed.func
ee60 74 69 6f 6e 2e 73 74 6d 74 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 tion.stmt".;.added.by.js2-mode..
ee80 20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 20 72 65 71 75 ........"function.statement.requ
eea0 69 72 65 73 20 61 20 6e 61 6d 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e ires.a.name")..(js2-msg."msg.no.
eec0 70 61 72 65 6e 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28 paren.parms".........."missing.(
eee0 20 62 65 66 6f 72 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 2e 22 29 0a 0a .before.function.parameters.")..
ef00 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 6d 22 0a 20 20 20 20 20 20 20 20 20 (js2-msg."msg.no.parm"..........
ef20 22 6d 69 73 73 69 6e 67 20 66 6f 72 6d 61 6c 20 70 61 72 61 6d 65 74 65 72 22 29 0a 0a 28 6a 73 "missing.formal.parameter")..(js
ef40 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 70 61 72 6d 73 22 2-msg."msg.no.paren.after.parms"
ef60 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 74 65 72 20 66 6f 72 6d 61 .........."missing.).after.forma
ef80 6c 20 70 61 72 61 6d 65 74 65 72 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f l.parameters")..(js2-msg."msg.no
efa0 2e 64 65 66 61 75 6c 74 2e 61 66 74 65 72 2e 64 65 66 61 75 6c 74 2e 70 61 72 61 6d 22 20 3b 20 .default.after.default.param".;.
efc0 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 70 61 72 61 added.by.js2-mode.........."para
efe0 6d 65 74 65 72 20 77 69 74 68 6f 75 74 20 64 65 66 61 75 6c 74 20 66 6f 6c 6c 6f 77 73 20 70 61 meter.without.default.follows.pa
f000 72 61 6d 65 74 65 72 20 77 69 74 68 20 64 65 66 61 75 6c 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 rameter.with.default")..(js2-msg
f020 20 22 6d 73 67 2e 70 61 72 61 6d 2e 61 66 74 65 72 2e 72 65 73 74 22 20 3b 20 61 64 64 65 64 20 ."msg.param.after.rest".;.added.
f040 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 70 61 72 61 6d 65 74 65 72 20 by.js2-mode.........."parameter.
f060 61 66 74 65 72 20 72 65 73 74 20 70 61 72 61 6d 65 74 65 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 after.rest.parameter")..(js2-msg
f080 20 22 6d 73 67 2e 62 61 64 2e 61 72 72 6f 77 2e 61 72 67 73 22 20 3b 20 61 64 64 65 64 20 62 79 ."msg.bad.arrow.args".;.added.by
f0a0 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 61 72 72 6f .js2-mode.........."invalid.arro
f0c0 77 2d 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 28 70 61 72 65 6e 74 68 65 73 65 w-function.arguments.(parenthese
f0e0 73 20 61 72 6f 75 6e 64 20 74 68 65 20 61 72 72 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 s.around.the.arrow-function.may.
f100 68 65 6c 70 29 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e help)")..(js2-msg."msg.no.brace.
f120 62 6f 64 79 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f body".........."missing.'{'.befo
f140 72 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 re.function.body")..(js2-msg."ms
f160 67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74 65 72 2e 62 6f 64 79 22 0a 20 20 20 20 20 20 20 20 20 g.no.brace.after.body"..........
f180 22 6d 69 73 73 69 6e 67 20 7d 20 61 66 74 65 72 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 22 29 "missing.}.after.function.body")
f1a0 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 63 6f 6e 64 22 0a 20 ..(js2-msg."msg.no.paren.cond"..
f1c0 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 62 65 66 6f 72 65 20 63 6f 6e 64 69 74 ........"missing.(.before.condit
f1e0 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 ion")..(js2-msg."msg.no.paren.af
f200 74 65 72 2e 63 6f 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 ter.cond".........."missing.).af
f220 74 65 72 20 63 6f 6e 64 69 74 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e ter.condition")..(js2-msg."msg.n
f240 6f 2e 73 65 6d 69 2e 73 74 6d 74 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 3b o.semi.stmt".........."missing.;
f260 20 62 65 66 6f 72 65 20 73 74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d .before.statement")..(js2-msg."m
f280 73 67 2e 6d 69 73 73 69 6e 67 2e 73 65 6d 69 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 sg.missing.semi".........."missi
f2a0 6e 67 20 3b 20 61 66 74 65 72 20 73 74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 ng.;.after.statement")..(js2-msg
f2c0 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 64 6f 74 22 0a 20 20 20 20 20 20 20 ."msg.no.name.after.dot"........
f2e0 20 20 22 6d 69 73 73 69 6e 67 20 6e 61 6d 65 20 61 66 74 65 72 20 2e 20 6f 70 65 72 61 74 6f 72 .."missing.name.after...operator
f300 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e ")..(js2-msg."msg.no.name.after.
f320 63 6f 6c 6f 6e 63 6f 6c 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e 61 coloncolon".........."missing.na
f340 6d 65 20 61 66 74 65 72 20 3a 3a 20 6f 70 65 72 61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 me.after.::.operator")..(js2-msg
f360 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 64 6f 74 64 6f 74 22 0a 20 20 20 20 ."msg.no.name.after.dotdot".....
f380 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e 61 6d 65 20 61 66 74 65 72 20 2e 2e 20 6f 70 65 72 ....."missing.name.after....oper
f3a0 61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 ator")..(js2-msg."msg.no.name.af
f3c0 74 65 72 2e 78 6d 6c 41 74 74 72 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e ter.xmlAttr".........."missing.n
f3e0 61 6d 65 20 61 66 74 65 72 20 2e 40 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f ame.after..@")..(js2-msg."msg.no
f400 2e 62 72 61 63 6b 65 74 2e 69 6e 64 65 78 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e .bracket.index".........."missin
f420 67 20 5d 20 69 6e 20 69 6e 64 65 78 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d g.].in.index.expression")..(js2-
f440 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 73 77 69 74 63 68 22 0a 20 20 20 20 20 20 msg."msg.no.paren.switch".......
f460 20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 62 65 66 6f 72 65 20 73 77 69 74 63 68 20 65 78 70 72 ..."missing.(.before.switch.expr
f480 65 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e ession")..(js2-msg."msg.no.paren
f4a0 2e 61 66 74 65 72 2e 73 77 69 74 63 68 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 .after.switch".........."missing
f4c0 20 29 20 61 66 74 65 72 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a 0a 28 6a .).after.switch.expression")..(j
f4e0 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 73 77 69 74 63 68 22 0a 20 20 20 s2-msg."msg.no.brace.switch"....
f500 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20 73 77 69 74 63 68 ......"missing.'{'.before.switch
f520 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 73 77 69 74 63 .body")..(js2-msg."msg.bad.switc
f540 68 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 73 77 69 74 63 68 20 73 74 61 74 h".........."invalid.switch.stat
f560 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e ement")..(js2-msg."msg.no.colon.
f580 63 61 73 65 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 3a 20 61 66 74 65 72 20 case".........."missing.:.after.
f5a0 63 61 73 65 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 case.expression")..(js2-msg."msg
f5c0 2e 64 6f 75 62 6c 65 2e 73 77 69 74 63 68 2e 64 65 66 61 75 6c 74 22 0a 20 20 20 20 20 20 20 20 .double.switch.default".........
f5e0 20 22 64 6f 75 62 6c 65 20 64 65 66 61 75 6c 74 20 6c 61 62 65 6c 20 69 6e 20 74 68 65 20 73 77 ."double.default.label.in.the.sw
f600 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e itch.statement")..(js2-msg."msg.
f620 6e 6f 2e 77 68 69 6c 65 2e 64 6f 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 77 no.while.do".........."missing.w
f640 68 69 6c 65 20 61 66 74 65 72 20 64 6f 2d 6c 6f 6f 70 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d hile.after.do-loop.body")..(js2-
f660 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 0a 20 20 20 20 20 20 20 20 20 msg."msg.no.paren.for"..........
f680 22 6d 69 73 73 69 6e 67 20 28 20 61 66 74 65 72 20 66 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 "missing.(.after.for")..(js2-msg
f6a0 20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 ."msg.no.semi.for".........."mis
f6c0 73 69 6e 67 20 3b 20 61 66 74 65 72 20 66 6f 72 2d 6c 6f 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65 sing.;.after.for-loop.initialize
f6e0 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f 72 2e 63 r")..(js2-msg."msg.no.semi.for.c
f700 6f 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 3b 20 61 66 74 65 72 20 66 ond".........."missing.;.after.f
f720 6f 72 2d 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d or-loop.condition")..(js2-msg."m
f740 73 67 2e 69 6e 2e 61 66 74 65 72 2e 66 6f 72 2e 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 22 sg.in.after.for.name".........."
f760 6d 69 73 73 69 6e 67 20 69 6e 20 6f 72 20 6f 66 20 61 66 74 65 72 20 66 6f 72 22 29 0a 0a 28 6a missing.in.or.of.after.for")..(j
f780 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 2e 63 74 72 6c 22 0a 20 s2-msg."msg.no.paren.for.ctrl"..
f7a0 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 74 65 72 20 66 6f 72 2d 6c 6f 6f ........"missing.).after.for-loo
f7c0 70 20 63 6f 6e 74 72 6f 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 p.control")..(js2-msg."msg.no.pa
f7e0 72 65 6e 2e 77 69 74 68 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 62 65 ren.with".........."missing.(.be
f800 66 6f 72 65 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74 20 6f 62 6a 65 63 74 22 29 0a 0a 28 6a fore.with-statement.object")..(j
f820 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 77 69 74 68 22 s2-msg."msg.no.paren.after.with"
f840 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 74 65 72 20 77 69 74 68 2d .........."missing.).after.with-
f860 73 74 61 74 65 6d 65 6e 74 20 6f 62 6a 65 63 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 statement.object")..(js2-msg."ms
f880 67 2e 6e 6f 2e 77 69 74 68 2e 73 74 72 69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 77 69 74 68 g.no.with.strict".........."with
f8a0 20 73 74 61 74 65 6d 65 6e 74 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 73 74 72 69 63 .statements.not.allowed.in.stric
f8c0 74 20 6d 6f 64 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e t.mode")..(js2-msg."msg.no.paren
f8e0 2e 61 66 74 65 72 2e 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 .after.let".........."missing.(.
f900 61 66 74 65 72 20 6c 65 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 after.let")..(js2-msg."msg.no.pa
f920 72 65 6e 2e 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 74 ren.let".........."missing.).aft
f940 65 72 20 76 61 72 69 61 62 6c 65 20 6c 69 73 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 er.variable.list")..(js2-msg."ms
f960 67 2e 6e 6f 2e 63 75 72 6c 79 2e 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e g.no.curly.let".........."missin
f980 67 20 7d 20 61 66 74 65 72 20 6c 65 74 20 73 74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d g.}.after.let.statement")..(js2-
f9a0 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 72 65 74 75 72 6e 22 0a 20 20 20 20 20 20 20 20 20 22 69 msg."msg.bad.return".........."i
f9c0 6e 76 61 6c 69 64 20 72 65 74 75 72 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e nvalid.return")..(js2-msg."msg.n
f9e0 6f 2e 62 72 61 63 65 2e 62 6c 6f 63 6b 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 o.brace.block".........."missing
fa00 20 7d 20 69 6e 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 .}.in.compound.statement")..(js2
fa20 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6c 61 62 65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 69 -msg."msg.bad.label".........."i
fa40 6e 76 61 6c 69 64 20 6c 61 62 65 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 nvalid.label")..(js2-msg."msg.ba
fa60 64 2e 76 61 72 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 76 61 72 69 61 62 6c d.var".........."missing.variabl
fa80 65 20 6e 61 6d 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 76 61 72 2e e.name")..(js2-msg."msg.bad.var.
faa0 69 6e 69 74 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 76 61 72 69 61 62 6c 65 init".........."invalid.variable
fac0 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 .initialization")..(js2-msg."msg
fae0 2e 6e 6f 2e 63 6f 6c 6f 6e 2e 63 6f 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e .no.colon.cond".........."missin
fb00 67 20 3a 20 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a g.:.in.conditional.expression").
fb20 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6f 70 74 69 6f 6e 61 6c 2e 63 68 61 69 .(js2-msg."msg.bad.optional.chai
fb40 6e 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 70 72 6f 70 65 72 74 79 ning".........."missing.property
fb60 20 6e 61 6d 65 20 6f 72 20 5b 20 6f 72 20 28 20 61 66 74 65 72 20 6f 70 74 69 6f 6e 61 6c 20 63 .name.or.[.or.(.after.optional.c
fb80 68 61 69 6e 69 6e 67 20 6f 70 65 72 61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 haining.operator")..(js2-msg."ms
fba0 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 72 67 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e g.no.paren.arg".........."missin
fbc0 67 20 29 20 61 66 74 65 72 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 22 29 0a 0a 28 6a 73 32 2d g.).after.argument.list")..(js2-
fbe0 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e 61 72 67 22 0a 20 20 20 20 20 20 20 msg."msg.no.bracket.arg"........
fc00 20 20 22 6d 69 73 73 69 6e 67 20 5d 20 61 66 74 65 72 20 65 6c 65 6d 65 6e 74 20 6c 69 73 74 22 .."missing.].after.element.list"
fc20 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 70 72 6f 70 22 0a 20 20 20 20 20 )..(js2-msg."msg.bad.prop"......
fc40 20 20 20 20 22 69 6e 76 61 6c 69 64 20 70 72 6f 70 65 72 74 79 20 69 64 22 29 0a 0a 28 6a 73 32 ...."invalid.property.id")..(js2
fc60 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e 70 72 6f 70 22 0a 20 20 20 20 20 20 20 -msg."msg.no.colon.prop"........
fc80 20 20 22 6d 69 73 73 69 6e 67 20 3a 20 61 66 74 65 72 20 70 72 6f 70 65 72 74 79 20 69 64 22 29 .."missing.:.after.property.id")
fca0 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 70 72 6f 70 22 0a 20 ..(js2-msg."msg.no.brace.prop"..
fcc0 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 7d 20 61 66 74 65 72 20 70 72 6f 70 65 72 74 ........"missing.}.after.propert
fce0 79 20 6c 69 73 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e y.list")..(js2-msg."msg.no.paren
fd00 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 69 6e 20 70 61 72 65 6e 74 68 ".........."missing.).in.parenth
fd20 65 74 69 63 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 72 65 73 65 72 76 65 64 etical")..(js2-msg."msg.reserved
fd40 2e 69 64 22 0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27 20 69 73 20 61 20 72 65 73 65 72 76 65 .id".........."'%s'.is.a.reserve
fd60 64 20 69 64 65 6e 74 69 66 69 65 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f d.identifier")..(js2-msg."msg.no
fd80 2e 70 61 72 65 6e 2e 63 61 74 63 68 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 .paren.catch".........."missing.
fda0 28 20 62 65 66 6f 72 65 20 63 61 74 63 68 2d 62 6c 6f 63 6b 20 63 6f 6e 64 69 74 69 6f 6e 22 29 (.before.catch-block.condition")
fdc0 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 0a 20 ..(js2-msg."msg.bad.catchcond"..
fde0 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 63 61 74 63 68 20 62 6c 6f 63 6b 20 63 6f 6e ........"invalid.catch.block.con
fe00 64 69 74 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 74 63 68 2e 75 6e dition")..(js2-msg."msg.catch.un
fe20 72 65 61 63 68 61 62 6c 65 22 0a 20 20 20 20 20 20 20 20 20 22 61 6e 79 20 63 61 74 63 68 20 63 reachable".........."any.catch.c
fe40 6c 61 75 73 65 73 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 6e 20 75 6e 71 75 61 6c 69 66 69 65 64 20 lauses.following.an.unqualified.
fe60 63 61 74 63 68 20 61 72 65 20 75 6e 72 65 61 63 68 61 62 6c 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 catch.are.unreachable")..(js2-ms
fe80 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 74 72 79 22 0a 20 20 20 20 20 20 20 20 20 22 6d g."msg.no.brace.try".........."m
fea0 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20 74 72 79 20 62 6c 6f 63 6b 22 29 0a 0a 28 issing.'{'.before.try.block")..(
fec0 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 63 61 74 63 68 62 6c 6f 63 6b js2-msg."msg.no.brace.catchblock
fee0 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20 63 ".........."missing.'{'.before.c
ff00 61 74 63 68 2d 62 6c 6f 63 6b 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 atch-block.body")..(js2-msg."msg
ff20 2e 74 72 79 2e 6e 6f 2e 63 61 74 63 68 66 69 6e 61 6c 6c 79 22 0a 20 20 20 20 20 20 20 20 20 22 .try.no.catchfinally".........."
ff40 27 74 72 79 27 20 77 69 74 68 6f 75 74 20 27 63 61 74 63 68 27 20 6f 72 20 27 66 69 6e 61 6c 6c 'try'.without.'catch'.or.'finall
ff60 79 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61 y'")..(js2-msg."msg.no.return.va
ff80 6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 20 25 73 20 64 6f 65 73 20 lue".........."function.%s.does.
ffa0 6e 6f 74 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 22 29 0a 0a 28 6a 73 not.always.return.a.value")..(js
ffc0 32 2d 6d 73 67 20 22 6d 73 67 2e 61 6e 6f 6e 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61 6c 75 65 22 2-msg."msg.anon.no.return.value"
ffe0 0a 20 20 20 20 20 20 20 20 20 22 61 6e 6f 6e 79 6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f .........."anonymous.function.do
10000 65 73 20 6e 6f 74 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 22 29 0a 0a es.not.always.return.a.value")..
10020 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 72 65 74 75 72 6e 2e 69 6e 63 6f 6e 73 69 73 74 65 6e (js2-msg."msg.return.inconsisten
10040 74 22 0a 20 20 20 20 20 20 20 20 20 22 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 73 t".........."return.statement.is
10060 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 70 72 65 76 69 6f 75 73 20 75 73 61 67 .inconsistent.with.previous.usag
10080 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 67 65 6e 65 72 61 74 6f 72 2e 72 65 74 e")..(js2-msg."msg.generator.ret
100a0 75 72 6e 73 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65 45 72 72 6f 72 3a 20 6c 65 67 61 63 urns".........."TypeError:.legac
100c0 79 20 67 65 6e 65 72 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 27 25 73 27 20 72 65 74 75 72 6e y.generator.function.'%s'.return
100e0 73 20 61 20 76 61 6c 75 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 61 6e 6f 6e 2e s.a.value")..(js2-msg."msg.anon.
10100 67 65 6e 65 72 61 74 6f 72 2e 72 65 74 75 72 6e 73 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 generator.returns".........."Typ
10120 65 45 72 72 6f 72 3a 20 61 6e 6f 6e 79 6d 6f 75 73 20 6c 65 67 61 63 79 20 67 65 6e 65 72 61 74 eError:.anonymous.legacy.generat
10140 6f 72 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65 22 29 0a 0a 28 or.function.returns.a.value")..(
10160 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 0a 20 20 20 20 20 20 20 20 20 22 73 js2-msg."msg.syntax".........."s
10180 79 6e 74 61 78 20 65 72 72 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 65 yntax.error")..(js2-msg."msg.une
101a0 78 70 65 63 74 65 64 2e 65 6f 66 22 0a 20 20 20 20 20 20 20 20 20 22 55 6e 65 78 70 65 63 74 65 xpected.eof".........."Unexpecte
101c0 64 20 65 6e 64 20 6f 66 20 66 69 6c 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 58 d.end.of.file")..(js2-msg."msg.X
101e0 4d 4c 2e 62 61 64 2e 66 6f 72 6d 22 0a 20 20 20 20 20 20 20 20 20 22 69 6c 6c 65 67 61 6c 6c 79 ML.bad.form".........."illegally
10200 20 66 6f 72 6d 65 64 20 58 4d 4c 20 73 79 6e 74 61 78 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 .formed.XML.syntax")..(js2-msg."
10220 6d 73 67 2e 58 4d 4c 2e 6e 6f 74 2e 61 76 61 69 6c 61 62 6c 65 22 0a 20 20 20 20 20 20 20 20 20 msg.XML.not.available"..........
10240 22 58 4d 4c 20 72 75 6e 74 69 6d 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 22 29 0a 0a 28 6a "XML.runtime.not.available")..(j
10260 73 32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f 6f 2e 64 65 65 70 2e 70 61 72 73 65 72 2e 72 65 63 75 s2-msg."msg.too.deep.parser.recu
10280 72 73 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22 54 6f 6f 20 64 65 65 70 20 72 65 63 75 72 73 rsion".........."Too.deep.recurs
102a0 69 6f 6e 20 77 68 69 6c 65 20 70 61 72 73 69 6e 67 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d ion.while.parsing")..(js2-msg."m
102c0 73 67 2e 6e 6f 2e 73 69 64 65 2e 65 66 66 65 63 74 73 22 0a 20 20 20 20 20 20 20 20 20 22 43 6f sg.no.side.effects".........."Co
102e0 64 65 20 68 61 73 20 6e 6f 20 73 69 64 65 20 65 66 66 65 63 74 73 22 29 0a 0a 28 6a 73 32 2d 6d de.has.no.side.effects")..(js2-m
10300 73 67 20 22 6d 73 67 2e 65 78 74 72 61 2e 74 72 61 69 6c 69 6e 67 2e 63 6f 6d 6d 61 22 0a 20 20 sg."msg.extra.trailing.comma"...
10320 20 20 20 20 20 20 20 22 54 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 20 69 73 20 6e 6f 74 20 73 75 ......."Trailing.comma.is.not.su
10340 70 70 6f 72 74 65 64 20 69 6e 20 73 6f 6d 65 20 62 72 6f 77 73 65 72 73 22 29 0a 0a 28 6a 73 32 pported.in.some.browsers")..(js2
10360 2d 6d 73 67 20 22 6d 73 67 2e 61 72 72 61 79 2e 74 72 61 69 6c 69 6e 67 2e 63 6f 6d 6d 61 22 0a -msg."msg.array.trailing.comma".
10380 20 20 20 20 20 20 20 20 20 22 54 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 20 79 69 65 6c 64 73 20 ........."Trailing.comma.yields.
103a0 64 69 66 66 65 72 65 6e 74 20 62 65 68 61 76 69 6f 72 20 61 63 72 6f 73 73 20 62 72 6f 77 73 65 different.behavior.across.browse
103c0 72 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 71 75 61 6c 2e 61 73 2e 61 73 73 rs")..(js2-msg."msg.equal.as.ass
103e0 69 67 6e 22 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 54 65 73 74 20 66 6f 72 20 ign"..........(concat."Test.for.
10400 65 71 75 61 6c 69 74 79 20 28 3d 3d 29 20 6d 69 73 74 79 70 65 64 20 61 73 20 61 73 73 69 67 6e equality.(==).mistyped.as.assign
10420 6d 65 6e 74 20 28 3d 29 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 28 70 ment.(=)?"..................".(p
10440 61 72 65 6e 74 68 65 73 69 7a 65 20 74 6f 20 73 75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67 29 arenthesize.to.suppress.warning)
10460 22 29 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 76 61 72 2e 68 69 64 65 73 2e 61 72 67 "))..(js2-msg."msg.var.hides.arg
10480 22 0a 20 20 20 20 20 20 20 20 20 22 56 61 72 69 61 62 6c 65 20 25 73 20 68 69 64 65 73 20 61 72 ".........."Variable.%s.hides.ar
104a0 67 75 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 65 73 74 72 75 63 74 gument")..(js2-msg."msg.destruct
104c0 2e 61 73 73 69 67 6e 2e 6e 6f 2e 69 6e 69 74 22 0a 20 20 20 20 20 20 20 20 20 22 4d 69 73 73 69 .assign.no.init".........."Missi
104e0 6e 67 20 3d 20 69 6e 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 64 65 63 6c 61 72 61 74 69 6f ng.=.in.destructuring.declaratio
10500 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 69 74 2e 6e 6f 2e 64 65 73 74 72 n")..(js2-msg."msg.init.no.destr
10520 75 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 42 69 6e 64 69 6e 67 20 69 6e 69 74 69 61 6c 69 7a uct".........."Binding.initializ
10540 65 72 20 6e 6f 74 20 69 6e 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69 67 6e 6d 65 er.not.in.destructuring.assignme
10560 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 6f 63 74 61 6c 2e 73 74 72 nt")..(js2-msg."msg.no.octal.str
10580 69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 4f 63 74 61 6c 20 6e 75 6d 62 65 72 73 20 70 72 6f ict".........."Octal.numbers.pro
105a0 68 69 62 69 74 65 64 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2e 22 29 0a 0a 28 6a 73 32 2d hibited.in.strict.mode.")..(js2-
105c0 6d 73 67 20 22 6d 73 67 2e 64 75 70 2e 6f 62 6a 2e 6c 69 74 2e 70 72 6f 70 2e 73 74 72 69 63 74 msg."msg.dup.obj.lit.prop.strict
105e0 22 0a 20 20 20 20 20 20 20 20 20 22 50 72 6f 70 65 72 74 79 20 27 25 73 27 20 61 6c 72 65 61 64 ".........."Property.'%s'.alread
10600 79 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 69 73 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c y.defined.in.this.object.literal
10620 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 75 70 2e 70 61 72 61 6d 2e 73 74 72 .")..(js2-msg."msg.dup.param.str
10640 69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 50 61 72 61 6d 65 74 65 72 20 27 25 73 27 20 61 6c ict".........."Parameter.'%s'.al
10660 72 65 61 64 79 20 64 65 63 6c 61 72 65 64 20 69 6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e ready.declared.in.this.function.
10680 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 69 64 2e 73 74 72 69 63 74 22 ")..(js2-msg."msg.bad.id.strict"
106a0 0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 69 .........."'%s'.is.not.a.valid.i
106c0 64 65 6e 74 69 66 69 65 72 20 66 6f 72 20 74 68 69 73 20 75 73 65 20 69 6e 20 73 74 72 69 63 74 dentifier.for.this.use.in.strict
106e0 20 6d 6f 64 65 2e 22 29 0a 0a 3b 3b 20 53 63 72 69 70 74 52 75 6e 74 69 6d 65 0a 28 6a 73 32 2d .mode.")..;;.ScriptRuntime.(js2-
10700 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 72 6f 70 65 72 74 69 65 73 22 0a 20 20 20 20 20 20 20 20 msg."msg.no.properties".........
10720 20 22 25 73 20 68 61 73 20 6e 6f 20 70 72 6f 70 65 72 74 69 65 73 2e 22 29 0a 0a 28 6a 73 32 2d ."%s.has.no.properties.")..(js2-
10740 6d 73 67 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 69 74 65 72 61 74 6f 72 22 0a 20 20 20 20 20 msg."msg.invalid.iterator"......
10760 20 20 20 20 22 49 6e 76 61 6c 69 64 20 69 74 65 72 61 74 6f 72 20 76 61 6c 75 65 22 29 0a 0a 28 ...."Invalid.iterator.value")..(
10780 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 74 65 72 61 74 6f 72 2e 70 72 69 6d 69 74 69 76 65 22 js2-msg."msg.iterator.primitive"
107a0 0a 20 20 20 20 20 20 20 20 20 22 5f 5f 69 74 65 72 61 74 6f 72 5f 5f 20 72 65 74 75 72 6e 65 64 .........."__iterator__.returned
107c0 20 61 20 70 72 69 6d 69 74 69 76 65 20 76 61 6c 75 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 .a.primitive.value")..(js2-msg."
107e0 6d 73 67 2e 61 73 73 6e 2e 63 72 65 61 74 65 2e 73 74 72 69 63 74 22 0a 20 20 20 20 20 20 20 20 msg.assn.create.strict".........
10800 20 22 41 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 ."Assignment.to.undeclared.varia
10820 62 6c 65 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64 65 63 6c 61 72 ble.%s")..(js2-msg."msg.undeclar
10840 65 64 2e 76 61 72 69 61 62 6c 65 22 20 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 ed.variable"..;.added.by.js2-mod
10860 65 0a 20 20 20 20 20 20 20 20 20 22 55 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 e.........."Undeclared.variable.
10880 6f 72 20 66 75 6e 63 74 69 6f 6e 20 27 25 73 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 or.function.'%s'")..(js2-msg."ms
108a0 67 2e 75 6e 75 73 65 64 2e 76 61 72 69 61 62 6c 65 22 20 20 3b 20 61 64 64 65 64 20 62 79 20 6a g.unused.variable"..;.added.by.j
108c0 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 55 6e 75 73 65 64 20 76 61 72 69 61 62 6c s2-mode.........."Unused.variabl
108e0 65 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 27 25 73 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 e.or.function.'%s'")..(js2-msg."
10900 6d 73 67 2e 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 2e 76 61 72 69 61 62 6c 65 22 20 20 3b 20 61 msg.uninitialized.variable"..;.a
10920 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 56 61 72 69 61 dded.by.js2-mode.........."Varia
10940 62 6c 65 20 27 25 73 27 20 72 65 66 65 72 65 6e 63 65 64 20 62 75 74 20 6e 65 76 65 72 20 69 6e ble.'%s'.referenced.but.never.in
10960 69 74 69 61 6c 69 7a 65 64 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 72 65 66 2e 75 itialized")..(js2-msg."msg.ref.u
10980 6e 64 65 66 69 6e 65 64 2e 70 72 6f 70 22 0a 20 20 20 20 20 20 20 20 20 22 52 65 66 65 72 65 6e ndefined.prop".........."Referen
109a0 63 65 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 70 72 6f 70 65 72 74 79 20 27 25 73 27 22 29 0a ce.to.undefined.property.'%s'").
109c0 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 70 72 6f 70 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20 .(js2-msg."msg.prop.not.found"..
109e0 20 20 20 20 20 20 20 20 22 50 72 6f 70 65 72 74 79 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 ........"Property.%s.not.found."
10a00 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 74 79 70 65 22 0a 20 )..(js2-msg."msg.invalid.type"..
10a20 20 20 20 20 20 20 20 20 22 49 6e 76 61 6c 69 64 20 4a 61 76 61 53 63 72 69 70 74 20 76 61 6c 75 ........"Invalid.JavaScript.valu
10a40 65 20 6f 66 20 74 79 70 65 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 70 72 e.of.type.%s")..(js2-msg."msg.pr
10a60 69 6d 69 74 69 76 65 2e 65 78 70 65 63 74 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 50 72 69 6d imitive.expected".........."Prim
10a80 69 74 69 76 65 20 74 79 70 65 20 65 78 70 65 63 74 65 64 20 28 68 61 64 20 25 73 20 69 6e 73 74 itive.type.expected.(had.%s.inst
10aa0 65 61 64 29 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 61 6d 65 73 70 61 63 65 2e ead)")..(js2-msg."msg.namespace.
10ac0 65 78 70 65 63 74 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 4e 61 6d 65 73 70 61 63 65 20 6f 62 expected".........."Namespace.ob
10ae0 6a 65 63 74 20 65 78 70 65 63 74 65 64 20 74 6f 20 6c 65 66 74 20 6f 66 20 3a 3a 20 28 66 6f 75 ject.expected.to.left.of.::.(fou
10b00 6e 64 20 25 73 20 69 6e 73 74 65 61 64 29 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e nd.%s.instead)")..(js2-msg."msg.
10b20 6e 75 6c 6c 2e 74 6f 2e 6f 62 6a 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 null.to.object".........."Cannot
10b40 20 63 6f 6e 76 65 72 74 20 6e 75 6c 6c 20 74 6f 20 61 6e 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 .convert.null.to.an.object.")..(
10b60 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 74 6f 2e 6f 62 6a 65 63 74 22 0a 20 20 js2-msg."msg.undef.to.object"...
10b80 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 63 6f 6e 76 65 72 74 20 75 6e 64 65 66 69 6e 65 64 ......."Cannot.convert.undefined
10ba0 20 74 6f 20 61 6e 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e .to.an.object.")..(js2-msg."msg.
10bc0 63 79 63 6c 69 63 2e 76 61 6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 22 43 79 63 6c 69 63 20 25 cyclic.value".........."Cyclic.%
10be0 73 20 76 61 6c 75 65 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 s.value.not.allowed.")..(js2-msg
10c00 20 22 6d 73 67 2e 69 73 2e 6e 6f 74 2e 64 65 66 69 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 ."msg.is.not.defined".........."
10c20 27 25 73 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 '%s'.is.not.defined.")..(js2-msg
10c40 20 22 6d 73 67 2e 75 6e 64 65 66 2e 70 72 6f 70 2e 72 65 61 64 22 0a 20 20 20 20 20 20 20 20 20 ."msg.undef.prop.read"..........
10c60 22 43 61 6e 6e 6f 74 20 72 65 61 64 20 70 72 6f 70 65 72 74 79 20 27 25 73 27 20 66 72 6f 6d 20 "Cannot.read.property.'%s'.from.
10c80 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 70 72 6f 70 2e 77 %s")..(js2-msg."msg.undef.prop.w
10ca0 72 69 74 65 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 73 65 74 20 70 72 6f 70 65 rite".........."Cannot.set.prope
10cc0 72 74 79 20 27 25 73 27 20 6f 66 20 25 73 20 74 6f 20 27 25 73 27 22 29 0a 0a 28 6a 73 32 2d 6d rty.'%s'.of.%s.to.'%s'")..(js2-m
10ce0 73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 70 72 6f 70 2e 64 65 6c 65 74 65 22 0a 20 20 20 20 20 sg."msg.undef.prop.delete"......
10d00 20 20 20 20 22 43 61 6e 6e 6f 74 20 64 65 6c 65 74 65 20 70 72 6f 70 65 72 74 79 20 27 25 73 27 ...."Cannot.delete.property.'%s'
10d20 20 6f 66 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 6d 65 .of.%s")..(js2-msg."msg.undef.me
10d40 74 68 6f 64 2e 63 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 63 61 6c 6c thod.call".........."Cannot.call
10d60 20 6d 65 74 68 6f 64 20 27 25 73 27 20 6f 66 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 .method.'%s'.of.%s")..(js2-msg."
10d80 6d 73 67 2e 75 6e 64 65 66 2e 77 69 74 68 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 msg.undef.with".........."Cannot
10da0 20 61 70 70 6c 79 20 27 77 69 74 68 27 20 74 6f 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 .apply.'with'.to.%s")..(js2-msg.
10dc0 22 6d 73 67 2e 69 73 6e 74 2e 66 75 6e 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22 25 73 "msg.isnt.function".........."%s
10de0 20 69 73 20 6e 6f 74 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 74 20 69 73 20 25 73 2e 22 29 0a .is.not.a.function,.it.is.%s.").
10e00 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 73 6e 74 2e 66 75 6e 63 74 69 6f 6e 2e 69 6e 22 .(js2-msg."msg.isnt.function.in"
10e20 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 63 61 6c 6c 20 70 72 6f 70 65 72 74 79 20 .........."Cannot.call.property.
10e40 25 73 20 69 6e 20 6f 62 6a 65 63 74 20 25 73 2e 20 22 0a 20 20 20 20 20 20 20 20 20 22 49 74 20 %s.in.object.%s..".........."It.
10e60 69 73 20 6e 6f 74 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 74 20 69 73 20 27 25 73 27 2e 22 29 is.not.a.function,.it.is.'%s'.")
10e80 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 66 75 6e 63 74 69 6f 6e 2e 6e 6f 74 2e 66 6f 75 ..(js2-msg."msg.function.not.fou
10ea0 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 66 75 6e 63 74 69 nd".........."Cannot.find.functi
10ec0 6f 6e 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 66 75 6e 63 74 69 6f 6e on.%s.")..(js2-msg."msg.function
10ee0 2e 6e 6f 74 2e 66 6f 75 6e 64 2e 69 6e 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 .not.found.in".........."Cannot.
10f00 66 69 6e 64 20 66 75 6e 63 74 69 6f 6e 20 25 73 20 69 6e 20 6f 62 6a 65 63 74 20 25 73 2e 22 29 find.function.%s.in.object.%s.")
10f20 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 73 6e 74 2e 78 6d 6c 2e 6f 62 6a 65 63 74 22 ..(js2-msg."msg.isnt.xml.object"
10f40 0a 20 20 20 20 20 20 20 20 20 22 25 73 20 69 73 20 6e 6f 74 20 61 6e 20 78 6d 6c 20 6f 62 6a 65 .........."%s.is.not.an.xml.obje
10f60 63 74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72 65 66 2e 74 6f 2e 67 ct.")..(js2-msg."msg.no.ref.to.g
10f80 65 74 22 0a 20 20 20 20 20 20 20 20 20 22 25 73 20 69 73 20 6e 6f 74 20 61 20 72 65 66 65 72 65 et".........."%s.is.not.a.refere
10fa0 6e 63 65 20 74 6f 20 72 65 61 64 20 72 65 66 65 72 65 6e 63 65 20 76 61 6c 75 65 2e 22 29 0a 0a nce.to.read.reference.value.")..
10fc0 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72 65 66 2e 74 6f 2e 73 65 74 22 0a 20 20 20 (js2-msg."msg.no.ref.to.set"....
10fe0 20 20 20 20 20 20 22 25 73 20 69 73 20 6e 6f 74 20 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 ......"%s.is.not.a.reference.to.
11000 73 65 74 20 72 65 66 65 72 65 6e 63 65 20 76 61 6c 75 65 20 74 6f 20 25 73 2e 22 29 0a 0a 28 6a set.reference.value.to.%s.")..(j
11020 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72 65 66 2e 66 72 6f 6d 2e 66 75 6e 63 74 69 6f 6e s2-msg."msg.no.ref.from.function
11040 22 0a 20 20 20 20 20 20 20 20 20 22 46 75 6e 63 74 69 6f 6e 20 25 73 20 63 61 6e 20 6e 6f 74 20 ".........."Function.%s.can.not.
11060 62 65 20 75 73 65 64 20 61 73 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 20 22 0a 20 20 20 20 20 be.used.as.the.left-hand."......
11080 20 20 20 20 22 73 69 64 65 20 6f 66 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 72 20 61 73 20 61 6e ...."side.of.assignment.or.as.an
110a0 20 6f 70 65 72 61 6e 64 20 6f 66 20 2b 2b 20 6f 72 20 2d 2d 20 6f 70 65 72 61 74 6f 72 2e 22 29 .operand.of.++.or.--.operator.")
110c0 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 64 65 66 61 75 6c 74 2e 76 61 6c 75 ..(js2-msg."msg.bad.default.valu
110e0 65 22 0a 20 20 20 20 20 20 20 20 20 22 4f 62 6a 65 63 74 27 73 20 67 65 74 44 65 66 61 75 6c 74 e".........."Object's.getDefault
11100 56 61 6c 75 65 28 29 20 6d 65 74 68 6f 64 20 72 65 74 75 72 6e 65 64 20 61 6e 20 6f 62 6a 65 63 Value().method.returned.an.objec
11120 74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 73 74 61 6e 63 65 6f 66 2e 6e t.")..(js2-msg."msg.instanceof.n
11140 6f 74 2e 6f 62 6a 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 27 74 20 75 73 65 20 69 ot.object".........."Can't.use.i
11160 6e 73 74 61 6e 63 65 6f 66 20 6f 6e 20 61 20 6e 6f 6e 2d 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a nstanceof.on.a.non-object.")..(j
11180 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 73 74 61 6e 63 65 6f 66 2e 62 61 64 2e 70 72 6f 74 6f s2-msg."msg.instanceof.bad.proto
111a0 74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 22 27 70 72 6f 74 6f 74 79 70 65 27 20 70 72 6f 70 type".........."'prototype'.prop
111c0 65 72 74 79 20 6f 66 20 25 73 20 69 73 20 6e 6f 74 20 61 6e 20 6f 62 6a 65 63 74 2e 22 29 0a 0a erty.of.%s.is.not.an.object.")..
111e0 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 72 61 64 69 78 22 0a 20 20 20 20 20 20 20 (js2-msg."msg.bad.radix"........
11200 20 20 22 69 6c 6c 65 67 61 6c 20 72 61 64 69 78 20 25 73 2e 22 29 0a 0a 3b 3b 20 53 63 72 69 70 .."illegal.radix.%s.")..;;.Scrip
11220 74 61 62 6c 65 4f 62 6a 65 63 74 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64 65 66 61 75 6c tableObject.(js2-msg."msg.defaul
11240 74 2e 76 61 6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 64 t.value".........."Cannot.find.d
11260 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a 73 32 efault.value.for.object.")..(js2
11280 2d 6d 73 67 20 22 6d 73 67 2e 7a 65 72 6f 2e 61 72 67 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 -msg."msg.zero.arg.ctor"........
112a0 20 20 22 43 61 6e 6e 6f 74 20 6c 6f 61 64 20 63 6c 61 73 73 20 27 25 73 27 20 77 68 69 63 68 20 .."Cannot.load.class.'%s'.which.
112c0 68 61 73 20 6e 6f 20 7a 65 72 6f 2d 70 61 72 61 6d 65 74 65 72 20 63 6f 6e 73 74 72 75 63 74 6f has.no.zero-parameter.constructo
112e0 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 74 6f 72 2e 6d 75 6c 74 69 70 6c r.")..(js2-msg."msg.ctor.multipl
11300 65 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 27 74 20 64 65 66 69 6e 65 20 e.parms".........."Can't.define.
11320 63 6f 6e 73 74 72 75 63 74 6f 72 20 6f 72 20 63 6c 61 73 73 20 25 73 20 73 69 6e 63 65 20 6d 6f constructor.or.class.%s.since.mo
11340 72 65 20 74 68 61 6e 20 22 0a 20 20 20 20 20 20 20 20 20 22 6f 6e 65 20 63 6f 6e 73 74 72 75 63 re.than.".........."one.construc
11360 74 6f 72 20 68 61 73 20 6d 75 6c 74 69 70 6c 65 20 70 61 72 61 6d 65 74 65 72 73 2e 22 29 0a 0a tor.has.multiple.parameters.")..
11380 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 78 74 65 6e 64 2e 73 63 72 69 70 74 61 62 6c 65 22 (js2-msg."msg.extend.scriptable"
113a0 0a 20 20 20 20 20 20 20 20 20 22 25 73 20 6d 75 73 74 20 65 78 74 65 6e 64 20 53 63 72 69 70 74 .........."%s.must.extend.Script
113c0 61 62 6c 65 4f 62 6a 65 63 74 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 64 65 66 69 6e 65 20 70 72 ableObject.in.order.to.define.pr
113e0 6f 70 65 72 74 79 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e operty.%s.")..(js2-msg."msg.bad.
11400 67 65 74 74 65 72 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 49 6e 20 6f 72 64 65 72 getter.parms".........."In.order
11420 20 74 6f 20 64 65 66 69 6e 65 20 61 20 70 72 6f 70 65 72 74 79 2c 20 67 65 74 74 65 72 20 25 73 .to.define.a.property,.getter.%s
11440 20 6d 75 73 74 20 68 61 76 65 20 7a 65 72 6f 20 22 0a 20 20 20 20 20 20 20 20 20 22 70 61 72 61 .must.have.zero.".........."para
11460 6d 65 74 65 72 73 20 6f 72 20 61 20 73 69 6e 67 6c 65 20 53 63 72 69 70 74 61 62 6c 65 4f 62 6a meters.or.a.single.ScriptableObj
11480 65 63 74 20 70 61 72 61 6d 65 74 65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e ect.parameter.")..(js2-msg."msg.
114a0 6f 62 6a 2e 67 65 74 74 65 72 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 45 78 70 65 obj.getter.parms".........."Expe
114c0 63 74 65 64 20 73 74 61 74 69 63 20 6f 72 20 64 65 6c 65 67 61 74 65 64 20 67 65 74 74 65 72 20 cted.static.or.delegated.getter.
114e0 25 73 20 74 6f 20 74 61 6b 65 20 22 0a 20 20 20 20 20 20 20 20 20 22 61 20 53 63 72 69 70 74 61 %s.to.take.".........."a.Scripta
11500 62 6c 65 4f 62 6a 65 63 74 20 70 61 72 61 6d 65 74 65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 bleObject.parameter.")..(js2-msg
11520 20 22 6d 73 67 2e 67 65 74 74 65 72 2e 73 74 61 74 69 63 22 0a 20 20 20 20 20 20 20 20 20 22 47 ."msg.getter.static".........."G
11540 65 74 74 65 72 20 61 6e 64 20 73 65 74 74 65 72 20 6d 75 73 74 20 62 6f 74 68 20 62 65 20 73 74 etter.and.setter.must.both.be.st
11560 61 74 69 63 20 6f 72 20 6e 65 69 74 68 65 72 20 62 65 20 73 74 61 74 69 63 2e 22 29 0a 0a 28 6a atic.or.neither.be.static.")..(j
11580 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 65 72 2e 72 65 74 75 72 6e 22 0a 20 20 20 20 20 s2-msg."msg.setter.return"......
115a0 20 20 20 20 22 53 65 74 74 65 72 20 6d 75 73 74 20 68 61 76 65 20 76 6f 69 64 20 72 65 74 75 72 ...."Setter.must.have.void.retur
115c0 6e 20 74 79 70 65 3a 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 n.type:.%s")..(js2-msg."msg.sett
115e0 65 72 32 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 54 77 6f 2d 70 61 72 61 6d 65 74 er2.parms".........."Two-paramet
11600 65 72 20 73 65 74 74 65 72 20 6d 75 73 74 20 74 61 6b 65 20 61 20 53 63 72 69 70 74 61 62 6c 65 er.setter.must.take.a.Scriptable
11620 4f 62 6a 65 63 74 20 61 73 20 22 0a 20 20 20 20 20 20 20 20 20 22 69 74 73 20 66 69 72 73 74 20 Object.as.".........."its.first.
11640 70 61 72 61 6d 65 74 65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 parameter.")..(js2-msg."msg.sett
11660 65 72 31 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 45 78 70 65 63 74 65 64 20 73 69 er1.parms".........."Expected.si
11680 6e 67 6c 65 20 70 61 72 61 6d 65 74 65 72 20 73 65 74 74 65 72 20 66 6f 72 20 25 73 22 29 0a 0a ngle.parameter.setter.for.%s")..
116a0 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 65 72 32 2e 65 78 70 65 63 74 65 64 22 0a (js2-msg."msg.setter2.expected".
116c0 20 20 20 20 20 20 20 20 20 22 45 78 70 65 63 74 65 64 20 73 74 61 74 69 63 20 6f 72 20 64 65 6c ........."Expected.static.or.del
116e0 65 67 61 74 65 64 20 73 65 74 74 65 72 20 25 73 20 74 6f 20 74 61 6b 65 20 74 77 6f 20 70 61 72 egated.setter.%s.to.take.two.par
11700 61 6d 65 74 65 72 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 65 72 ameters.")..(js2-msg."msg.setter
11720 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20 20 22 45 78 70 65 63 74 65 64 20 65 69 74 68 65 .parms".........."Expected.eithe
11740 72 20 6f 6e 65 20 6f 72 20 74 77 6f 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 73 65 74 74 r.one.or.two.parameters.for.sett
11760 65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 65 72 2e 62 61 64 2e er.")..(js2-msg."msg.setter.bad.
11780 74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 70 61 72 61 type".........."Unsupported.para
117a0 6d 65 74 65 72 20 74 79 70 65 20 27 25 73 27 20 69 6e 20 73 65 74 74 65 72 20 27 25 73 27 2e 22 meter.type.'%s'.in.setter.'%s'."
117c0 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 61 64 64 2e 73 65 61 6c 65 64 22 0a 20 20 20 )..(js2-msg."msg.add.sealed"....
117e0 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 70 72 6f 70 65 72 74 79 20 74 6f 20 ......"Cannot.add.a.property.to.
11800 61 20 73 65 61 6c 65 64 20 6f 62 6a 65 63 74 3a 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 a.sealed.object:.%s.")..(js2-msg
11820 20 22 6d 73 67 2e 72 65 6d 6f 76 65 2e 73 65 61 6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 43 ."msg.remove.sealed".........."C
11840 61 6e 6e 6f 74 20 72 65 6d 6f 76 65 20 61 20 70 72 6f 70 65 72 74 79 20 66 72 6f 6d 20 61 20 73 annot.remove.a.property.from.a.s
11860 65 61 6c 65 64 20 6f 62 6a 65 63 74 3a 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d ealed.object:.%s.")..(js2-msg."m
11880 73 67 2e 6d 6f 64 69 66 79 2e 73 65 61 6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e sg.modify.sealed".........."Cann
118a0 6f 74 20 6d 6f 64 69 66 79 20 61 20 70 72 6f 70 65 72 74 79 20 6f 66 20 61 20 73 65 61 6c 65 64 ot.modify.a.property.of.a.sealed
118c0 20 6f 62 6a 65 63 74 3a 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f .object:.%s.")..(js2-msg."msg.mo
118e0 64 69 66 79 2e 72 65 61 64 6f 6e 6c 79 22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 dify.readonly".........."Cannot.
11900 6d 6f 64 69 66 79 20 72 65 61 64 6f 6e 6c 79 20 70 72 6f 70 65 72 74 79 3a 20 25 73 2e 22 29 0a modify.readonly.property:.%s.").
11920 0a 3b 3b 20 54 6f 6b 65 6e 53 74 72 65 61 6d 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 .;;.TokenStream.(js2-msg."msg.mi
11940 73 73 69 6e 67 2e 65 78 70 6f 6e 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e ssing.exponent".........."missin
11960 67 20 65 78 70 6f 6e 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 75 67 g.exponent")..(js2-msg."msg.caug
11980 68 74 2e 6e 66 65 22 0a 20 20 20 20 20 20 20 20 20 22 6e 75 6d 62 65 72 20 66 6f 72 6d 61 74 20 ht.nfe".........."number.format.
119a0 65 72 72 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61 error")..(js2-msg."msg.untermina
119c0 74 65 64 2e 73 74 72 69 6e 67 2e 6c 69 74 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 74 65 72 6d ted.string.lit".........."unterm
119e0 69 6e 61 74 65 64 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 inated.string.literal")..(js2-ms
11a00 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61 74 65 64 2e 63 6f 6d 6d 65 6e 74 22 0a 20 20 20 g."msg.unterminated.comment"....
11a20 20 20 20 20 20 20 22 75 6e 74 65 72 6d 69 6e 61 74 65 64 20 63 6f 6d 6d 65 6e 74 22 29 0a 0a 28 ......"unterminated.comment")..(
11a40 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61 74 65 64 2e 72 65 2e 6c 69 74 js2-msg."msg.unterminated.re.lit
11a60 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 74 65 72 6d 69 6e 61 74 65 64 20 72 65 67 75 6c 61 72 ".........."unterminated.regular
11a80 20 65 78 70 72 65 73 73 69 6f 6e 20 6c 69 74 65 72 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 .expression.literal")..(js2-msg.
11aa0 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 72 65 2e 66 6c 61 67 22 0a 20 20 20 20 20 20 20 20 20 22 "msg.invalid.re.flag".........."
11ac0 69 6e 76 61 6c 69 64 20 66 6c 61 67 20 61 66 74 65 72 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 invalid.flag.after.regular.expre
11ae0 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72 65 2e 69 6e 70 ssion")..(js2-msg."msg.no.re.inp
11b00 75 74 2e 66 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 6e 6f 20 69 6e 70 75 74 20 66 6f 72 20 25 ut.for".........."no.input.for.%
11b20 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6c 6c 65 67 61 6c 2e 63 68 61 72 61 s")..(js2-msg."msg.illegal.chara
11b40 63 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22 69 6c 6c 65 67 61 6c 20 63 68 61 72 61 63 74 65 cter".........."illegal.characte
11b60 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 65 73 63 61 70 r")..(js2-msg."msg.invalid.escap
11b80 65 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64 20 55 6e 69 63 6f 64 65 20 65 73 63 e".........."invalid.Unicode.esc
11ba0 61 70 65 20 73 65 71 75 65 6e 63 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 ape.sequence")..(js2-msg."msg.ba
11bc0 64 2e 6e 61 6d 65 73 70 61 63 65 22 0a 20 20 20 20 20 20 20 20 20 22 6e 6f 74 20 61 20 76 61 6c d.namespace".........."not.a.val
11be0 69 64 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 73 70 61 63 65 20 73 74 61 74 65 6d 65 6e 74 2e 20 id.default.namespace.statement..
11c00 22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78 20 69 73 3a 20 64 65 66 61 75 6c 74 20 78 ".........."Syntax.is:.default.x
11c20 6d 6c 20 6e 61 6d 65 73 70 61 63 65 20 3d 20 45 58 50 52 45 53 53 49 4f 4e 3b 22 29 0a 0a 28 6a ml.namespace.=.EXPRESSION;")..(j
11c40 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 74 72 61 69 6c 69 6e 67 2e 6e 75 6d 65 72 69 63 2e s2-msg."msg.no.trailing.numeric.
11c60 6c 69 74 65 72 61 6c 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 64 65 72 73 63 6f 72 65 20 63 61 literal".........."underscore.ca
11c80 6e 6e 6f 74 20 61 70 70 65 61 72 20 61 66 74 65 72 20 6c 61 73 74 20 64 69 67 69 74 22 29 0a 0a nnot.appear.after.last.digit")..
11ca0 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6e 73 65 63 75 74 69 76 65 2e 6e 75 6d (js2-msg."msg.no.consecutive.num
11cc0 65 72 69 63 2e 6c 69 74 65 72 61 6c 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 64 65 72 73 63 6f eric.literal".........."undersco
11ce0 72 65 73 20 63 61 6e 6e 6f 74 20 62 65 20 6e 65 78 74 20 74 6f 20 65 61 63 68 20 6f 74 68 65 72 res.cannot.be.next.to.each.other
11d00 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 6e 75 6d 65 72 69 63 2e 73 65 70 ")..(js2-msg."msg.no.numeric.sep
11d20 61 72 61 74 6f 72 2e 61 66 74 65 72 2e 6c 65 61 64 69 6e 67 2e 7a 65 72 6f 22 0a 20 20 20 20 20 arator.after.leading.zero"......
11d40 20 20 20 20 22 75 6e 64 65 72 73 63 6f 72 65 20 63 61 6e 6e 6f 74 20 61 70 70 65 61 72 20 61 66 ...."underscore.cannot.appear.af
11d60 74 65 72 20 6c 65 61 64 69 6e 67 20 7a 65 72 6f 22 29 0a 0a 3b 3b 20 54 6f 6b 65 6e 73 53 74 72 ter.leading.zero")..;;.TokensStr
11d80 65 61 6d 20 77 61 72 6e 69 6e 67 73 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6f eam.warnings.(js2-msg."msg.bad.o
11da0 63 74 61 6c 2e 6c 69 74 65 72 61 6c 22 0a 20 20 20 20 20 20 20 20 20 22 69 6c 6c 65 67 61 6c 20 ctal.literal".........."illegal.
11dc0 6f 63 74 61 6c 20 6c 69 74 65 72 61 6c 20 64 69 67 69 74 20 25 73 3b 20 22 0a 20 20 20 20 20 20 octal.literal.digit.%s;.".......
11de0 20 20 20 22 69 6e 74 65 72 70 72 65 74 69 6e 67 20 69 74 20 61 73 20 61 20 64 65 63 69 6d 61 6c ..."interpreting.it.as.a.decimal
11e00 20 64 69 67 69 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e .digit")..(js2-msg."msg.missing.
11e20 68 65 78 2e 64 69 67 69 74 73 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 68 65 hex.digits".........."missing.he
11e40 78 61 64 65 63 69 6d 61 6c 20 64 69 67 69 74 73 20 61 66 74 65 72 20 27 30 78 27 22 29 0a 0a 28 xadecimal.digits.after.'0x'")..(
11e60 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 62 69 6e 61 72 79 2e 64 69 67 69 js2-msg."msg.missing.binary.digi
11e80 74 73 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 62 69 6e 61 72 79 20 64 69 67 ts".........."missing.binary.dig
11ea0 69 74 73 20 61 66 74 65 72 20 27 30 62 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e its.after.'0b'")..(js2-msg."msg.
11ec0 6d 69 73 73 69 6e 67 2e 6f 63 74 61 6c 2e 64 69 67 69 74 73 22 0a 20 20 20 20 20 20 20 20 20 22 missing.octal.digits".........."
11ee0 6d 69 73 73 69 6e 67 20 6f 63 74 61 6c 20 64 69 67 69 74 73 20 61 66 74 65 72 20 27 30 6f 27 22 missing.octal.digits.after.'0o'"
11f00 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 63 72 69 70 74 2e 69 73 2e 6e 6f 74 2e 63 )..(js2-msg."msg.script.is.not.c
11f20 6f 6e 73 74 72 75 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20 20 22 53 63 72 69 70 74 20 6f 62 6a onstructor".........."Script.obj
11f40 65 63 74 73 20 61 72 65 20 6e 6f 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 2e 22 29 0a 0a 3b 3b ects.are.not.constructors.")..;;
11f60 20 41 72 72 61 79 73 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 61 72 72 61 79 6c 65 6e 67 74 .Arrays.(js2-msg."msg.arraylengt
11f80 68 2e 62 61 64 22 0a 20 20 20 20 20 20 20 20 20 22 49 6e 61 70 70 72 6f 70 72 69 61 74 65 20 61 h.bad".........."Inappropriate.a
11fa0 72 72 61 79 20 6c 65 6e 67 74 68 2e 22 29 0a 0a 3b 3b 20 41 72 72 61 79 73 0a 28 6a 73 32 2d 6d rray.length.")..;;.Arrays.(js2-m
11fc0 73 67 20 22 6d 73 67 2e 61 72 72 61 79 6c 65 6e 67 74 68 2e 74 6f 6f 2e 62 69 67 22 0a 20 20 20 sg."msg.arraylength.too.big"....
11fe0 20 20 20 20 20 20 22 41 72 72 61 79 20 6c 65 6e 67 74 68 20 25 73 20 65 78 63 65 65 64 73 20 73 ......"Array.length.%s.exceeds.s
12000 75 70 70 6f 72 74 65 64 20 63 61 70 61 63 69 74 79 20 6c 69 6d 69 74 2e 22 29 0a 0a 3b 3b 20 55 upported.capacity.limit.")..;;.U
12020 52 49 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 75 72 69 22 0a 20 20 20 20 20 20 RI.(js2-msg."msg.bad.uri".......
12040 20 20 20 22 4d 61 6c 66 6f 72 6d 65 64 20 55 52 49 20 73 65 71 75 65 6e 63 65 2e 22 29 0a 0a 3b ..."Malformed.URI.sequence.")..;
12060 3b 20 4e 75 6d 62 65 72 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 70 72 65 63 69 ;.Number.(js2-msg."msg.bad.preci
12080 73 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22 50 72 65 63 69 73 69 6f 6e 20 25 73 20 6f 75 74 sion".........."Precision.%s.out
120a0 20 6f 66 20 72 61 6e 67 65 2e 22 29 0a 0a 3b 3b 20 4e 61 74 69 76 65 47 65 6e 65 72 61 74 6f 72 .of.range.")..;;.NativeGenerator
120c0 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 6e 64 2e 6e 65 77 62 6f 72 6e 22 0a 20 20 20 .(js2-msg."msg.send.newborn"....
120e0 20 20 20 20 20 20 22 41 74 74 65 6d 70 74 20 74 6f 20 73 65 6e 64 20 76 61 6c 75 65 20 74 6f 20 ......"Attempt.to.send.value.to.
12100 6e 65 77 62 6f 72 6e 20 67 65 6e 65 72 61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d newborn.generator")..(js2-msg."m
12120 73 67 2e 61 6c 72 65 61 64 79 2e 65 78 65 63 2e 67 65 6e 22 0a 20 20 20 20 20 20 20 20 20 22 41 sg.already.exec.gen".........."A
12140 6c 72 65 61 64 79 20 65 78 65 63 75 74 69 6e 67 20 67 65 6e 65 72 61 74 6f 72 22 29 0a 0a 28 6a lready.executing.generator")..(j
12160 73 32 2d 6d 73 67 20 22 6d 73 67 2e 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 2e 69 6e 76 61 6c 69 s2-msg."msg.StopIteration.invali
12180 64 22 0a 20 20 20 20 20 20 20 20 20 22 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 20 6d 61 79 20 6e d".........."StopIteration.may.n
121a0 6f 74 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 61 6e 20 61 72 62 69 74 72 61 72 79 20 6f 62 ot.be.changed.to.an.arbitrary.ob
121c0 6a 65 63 74 2e 22 29 0a 0a 3b 3b 20 49 6e 74 65 72 70 72 65 74 65 72 0a 28 6a 73 32 2d 6d 73 67 ject.")..;;.Interpreter.(js2-msg
121e0 20 22 6d 73 67 2e 79 69 65 6c 64 2e 63 6c 6f 73 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 22 59 ."msg.yield.closing".........."Y
12200 69 65 6c 64 20 66 72 6f 6d 20 63 6c 6f 73 69 6e 67 20 67 65 6e 65 72 61 74 6f 72 22 29 0a 0a 3b ield.from.closing.generator")..;
12220 3b 20 43 6c 61 73 73 65 73 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 6e 61 6d 65 64 2e ;.Classes.(js2-msg."msg.unnamed.
12240 63 6c 61 73 73 2e 73 74 6d 74 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a class.stmt".;.added.by.js2-mode.
12260 20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 20 73 74 61 74 65 6d 65 6e 74 20 72 65 71 75 69 72 ........."class.statement.requir
12280 65 73 20 61 20 6e 61 6d 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 6c 61 73 73 es.a.name")..(js2-msg."msg.class
122a0 2e 75 6e 65 78 70 65 63 74 65 64 2e 63 6f 6d 6d 61 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 .unexpected.comma".;.added.by.js
122c0 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 75 6e 65 78 70 65 63 74 65 64 20 27 2c 27 20 2-mode.........."unexpected.','.
122e0 62 65 74 77 65 65 6e 20 63 6c 61 73 73 20 70 72 6f 70 65 72 74 69 65 73 22 29 0a 0a 28 6a 73 32 between.class.properties")..(js2
12300 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 65 78 70 65 63 74 65 64 2e 73 74 61 74 69 63 22 20 3b 20 61 -msg."msg.unexpected.static".;.a
12320 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 75 6e 65 78 70 dded.by.js2-mode.........."unexp
12340 65 63 74 65 64 20 27 73 74 61 74 69 63 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e ected.'static'")..(js2-msg."msg.
12360 6d 69 73 73 69 6e 67 2e 65 78 74 65 6e 64 73 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d missing.extends".;.added.by.js2-
12380 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 20 69 73 20 72 65 71 75 69 72 65 64 20 mode.........."name.is.required.
123a0 61 66 74 65 72 20 65 78 74 65 6e 64 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e after.extends")..(js2-msg."msg.n
123c0 6f 2e 62 72 61 63 65 2e 63 6c 61 73 73 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f o.brace.class".;.added.by.js2-mo
123e0 64 65 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20 de.........."missing.'{'.before.
12400 63 6c 61 73 73 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 73 73 class.body")..(js2-msg."msg.miss
12420 69 6e 67 2e 63 6f 6d 70 75 74 65 64 2e 72 62 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d ing.computed.rb".;.added.by.js2-
12440 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27 5d 27 20 61 66 74 65 72 mode.........."missing.']'.after
12460 20 63 6f 6d 70 75 74 65 64 20 70 72 6f 70 65 72 74 79 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a .computed.property.expression").
12480 0a 3b 3b 3b 20 54 6f 6b 65 6e 73 20 42 75 66 66 65 72 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 .;;;.Tokens.Buffer..(defconst.js
124a0 32 2d 74 69 2d 6d 61 78 2d 6c 6f 6f 6b 61 68 65 61 64 20 32 29 0a 28 64 65 66 63 6f 6e 73 74 20 2-ti-max-lookahead.2).(defconst.
124c0 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 20 28 31 2b 20 6a 73 32 2d 74 69 2d 6d 61 78 2d 6c 6f js2-ti-ntokens.(1+.js2-ti-max-lo
124e0 6f 6b 61 68 65 61 64 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20 okahead))..(defun.js2-new-token.
12500 28 6f 66 66 73 65 74 29 0a 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 6d 61 6b 65 2d 6a 73 (offset)...(let.((token.(make-js
12520 32 2d 74 6f 6b 65 6e 20 28 2b 20 6f 66 66 73 65 74 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 2-token.(+.offset.js2-ts-cursor)
12540 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 ))).....(setq.js2-ti-tokens-curs
12560 6f 72 20 28 6d 6f 64 20 28 31 2b 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 or.(mod.(1+.js2-ti-tokens-cursor
12580 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 28 61 73 65 74 20 6a 73 32 ).js2-ti-ntokens)).....(aset.js2
125a0 2d 74 69 2d 74 6f 6b 65 6e 73 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20 -ti-tokens.js2-ti-tokens-cursor.
125c0 74 6f 6b 65 6e 29 0a 20 20 20 20 74 6f 6b 65 6e 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 token).....token))..(defsubst.js
125e0 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 28 61 72 65 66 20 6a 73 32 2d 74 2-current-token.()...(aref.js2-t
12600 69 2d 74 6f 6b 65 6e 73 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 29 29 0a i-tokens.js2-ti-tokens-cursor)).
12620 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 .(defsubst.js2-current-token-str
12640 69 6e 67 20 28 29 0a 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 28 6a 73 32 2d ing.()...(js2-token-string.(js2-
12660 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d current-token)))..(defsubst.js2-
12680 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 28 29 0a 20 20 28 6a 73 32 2d 74 6f 6b current-token-type.()...(js2-tok
126a0 65 6e 2d 74 79 70 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 0a 28 en-type.(js2-current-token)))..(
126c0 64 65 66 73 75 62 73 74 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 20 28 defsubst.js2-current-token-beg.(
126e0 29 0a 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d )...(js2-token-beg.(js2-current-
12700 74 6f 6b 65 6e 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d token)))..(defsubst.js2-current-
12720 74 6f 6b 65 6e 2d 65 6e 64 20 28 29 0a 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 28 6a token-end.()...(js2-token-end.(j
12740 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d s2-current-token)))..(defun.js2-
12760 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 20 28 29 0a 20 20 28 6c 65 74 20 28 28 74 6f current-token-len.()...(let.((to
12780 6b 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 2d ken.(js2-current-token))).....(-
127a0 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 28 6a .(js2-token-end.token)........(j
127c0 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a s2-token-beg.token))))..(defun.j
127e0 73 32 2d 74 73 2d 73 65 65 6b 20 28 73 74 61 74 65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 74 s2-ts-seek.(state)...(setq.js2-t
12800 73 2d 6c 69 6e 65 6e 6f 20 28 6a 73 32 2d 74 73 2d 73 74 61 74 65 2d 6c 69 6e 65 6e 6f 20 73 74 s-lineno.(js2-ts-state-lineno.st
12820 61 74 65 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d ate).........js2-ts-cursor.(js2-
12840 74 73 2d 73 74 61 74 65 2d 63 75 72 73 6f 72 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 6a ts-state-cursor.state).........j
12860 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 28 6a 73 32 2d 74 73 2d 73 74 61 74 65 2d 74 6f 6b 65 6e s2-ti-tokens.(js2-ts-state-token
12880 73 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 s.state).........js2-ti-tokens-c
128a0 75 72 73 6f 72 20 28 6a 73 32 2d 74 73 2d 73 74 61 74 65 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f ursor.(js2-ts-state-tokens-curso
128c0 72 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 r.state).........js2-ti-lookahea
128e0 64 20 28 6a 73 32 2d 74 73 2d 73 74 61 74 65 2d 6c 6f 6f 6b 61 68 65 61 64 20 73 74 61 74 65 29 d.(js2-ts-state-lookahead.state)
12900 29 29 0a 0a 3b 3b 3b 20 55 74 69 6c 69 74 69 65 73 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 65 ))..;;;.Utilities..(defun.js2-de
12920 6c 65 74 65 2d 69 66 20 28 70 72 65 64 69 63 61 74 65 20 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f lete-if.(predicate.list)..."Remo
12940 76 65 20 61 6c 6c 20 69 74 65 6d 73 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 49 43 41 54 ve.all.items.satisfying.PREDICAT
12960 45 20 69 6e 20 4c 49 53 54 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 69 74 65 6d 20 E.in.LIST."...(cl-loop.for.item.
12980 69 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6e 6f 74 20 28 66 75 6e 63 in.list............if.(not.(func
129a0 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 69 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 all.predicate.item))............
129c0 63 6f 6c 6c 65 63 74 20 69 74 65 6d 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 6f 73 69 74 collect.item))..(defun.js2-posit
129e0 69 6f 6e 20 28 65 6c 65 6d 65 6e 74 20 6c 69 73 74 29 0a 20 20 22 46 69 6e 64 20 30 2d 69 6e 64 ion.(element.list)..."Find.0-ind
12a00 65 78 65 64 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 45 4c 45 4d 45 4e 54 20 69 6e 20 4c 49 53 54 exed.position.of.ELEMENT.in.LIST
12a20 20 63 6f 6d 70 61 72 69 6e 67 20 77 69 74 68 20 60 65 71 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69 .comparing.with.`eq'..Returns.ni
12a40 6c 20 69 66 20 65 6c 65 6d 65 6e 74 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 l.if.element.is.not.found.in.the
12a60 20 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 .list."...(let.((count.0).......
12a80 20 20 66 6f 75 6e 64 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6c 69 73 74 20 28 6e ..found).....(while.(and.list.(n
12aa0 6f 74 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 65 6c 65 6d 65 6e 74 ot.found)).......(if.(eq.element
12ac0 20 28 63 61 72 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 75 .(car.list))...........(setq.fou
12ae0 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 28 31 2b 20 63 6f nd.t).........(setq.count.(1+.co
12b00 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 20 28 63 64 72 20 6c 69 73 unt)...............list.(cdr.lis
12b20 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 66 6f 75 6e 64 20 63 6f 75 6e 74 29 29 29 0a 0a 28 64 t)))).....(if.found.count)))..(d
12b40 65 66 75 6e 20 6a 73 32 2d 66 69 6e 64 2d 69 66 20 28 70 72 65 64 69 63 61 74 65 20 6c 69 73 74 efun.js2-find-if.(predicate.list
12b60 29 0a 20 20 22 46 69 6e 64 20 66 69 72 73 74 20 69 74 65 6d 20 73 61 74 69 73 66 79 69 6e 67 20 )..."Find.first.item.satisfying.
12b80 50 52 45 44 49 43 41 54 45 20 69 6e 20 4c 49 53 54 2e 22 0a 20 20 28 6c 65 74 20 28 72 65 73 75 PREDICATE.in.LIST."...(let.(resu
12ba0 6c 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6c 69 73 74 20 28 6e 6f 74 20 72 65 lt).....(while.(and.list.(not.re
12bc0 73 75 6c 74 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 sult)).......(if.(funcall.predic
12be0 61 74 65 20 28 63 61 72 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 ate.(car.list))...........(setq.
12c00 72 65 73 75 6c 74 20 28 63 61 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 result.(car.list))).......(setq.
12c20 6c 69 73 74 20 28 63 64 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a list.(cdr.list))).....result))..
12c40 28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 74 69 6d 65 20 28 66 6f 72 6d 29 0a 20 20 22 45 76 61 (defmacro.js2-time.(form)..."Eva
12c60 6c 75 61 74 65 20 46 4f 52 4d 2c 20 64 69 73 63 61 72 64 20 72 65 73 75 6c 74 2c 20 61 6e 64 20 luate.FORM,.discard.result,.and.
12c80 72 65 74 75 72 6e 20 65 6c 61 70 73 65 64 20 74 69 6d 65 20 69 6e 20 73 65 63 2e 22 0a 20 20 28 return.elapsed.time.in.sec."...(
12ca0 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 62 65 67 20 declare.(debug.t))...(let.((beg.
12cc0 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 2d 2d 6a 73 32 2d 74 69 6d 65 2d 62 65 67 2d 2d 22 29 (make-symbol."--js2-time-beg--")
12ce0 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 62 65 67 20 28 63 75 72 72 65 6e 74 2d 74 69 6d )).....`(let.((,beg.(current-tim
12d00 65 29 29 29 0a 20 20 20 20 20 20 20 2c 66 6f 72 6d 0a 20 20 20 20 20 20 20 28 2f 20 28 74 72 75 e)))........,form........(/.(tru
12d20 6e 63 61 74 65 20 28 2a 20 28 2d 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 ncate.(*.(-.(float-time.(current
12d40 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -time)).........................
12d60 20 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 2c 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ..(float-time.,beg))............
12d80 20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 31 30 ............10000))...........10
12da0 30 30 30 2e 30 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 73 61 6d 65 2d 6c 69 000.0))))..(defsubst.js2-same-li
12dc0 6e 65 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 4f 53 20 69 73 20 6f ne.(pos)..."Return.t.if.POS.is.o
12de0 6e 20 74 68 65 20 73 61 6d 65 20 6c 69 6e 65 20 61 73 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 n.the.same.line.as.current.point
12e00 2e 22 0a 20 20 28 61 6e 64 20 28 3e 3d 20 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 ."...(and.(>=.pos.(point-at-bol)
12e20 29 0a 20 20 20 20 20 20 20 28 3c 3d 20 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 29 )........(<=.pos.(point-at-eol))
12e40 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f 64 65 2d 62 75 67 20 28 29 0a 20 20 22 53 69 ))..(defun.js2-code-bug.()..."Si
12e60 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 77 68 65 6e 20 77 65 20 65 6e 63 6f 75 6e 74 65 72 20 gnal.an.error.when.we.encounter.
12e80 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 63 6f 64 65 20 70 61 74 68 2e 22 0a 20 20 28 65 72 72 an.unexpected.code.path."...(err
12ea0 6f 72 20 22 66 61 69 6c 65 64 20 61 73 73 65 72 74 69 6f 6e 22 29 29 0a 0a 28 64 65 66 73 75 62 or."failed.assertion"))..(defsub
12ec0 73 74 20 6a 73 32 2d 72 65 63 6f 72 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 62 65 67 st.js2-record-text-property.(beg
12ee0 20 65 6e 64 20 70 72 6f 70 20 76 61 6c 75 65 29 0a 20 20 22 52 65 63 6f 72 64 20 61 20 74 65 78 .end.prop.value)..."Record.a.tex
12f00 74 20 70 72 6f 70 65 72 74 79 20 74 6f 20 73 65 74 20 77 68 65 6e 20 70 61 72 73 69 6e 67 20 66 t.property.to.set.when.parsing.f
12f20 69 6e 69 73 68 65 73 2e 22 0a 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 62 65 67 20 65 6e 64 20 inishes."...(push.(list.beg.end.
12f40 70 72 6f 70 20 76 61 6c 75 65 29 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d 70 72 prop.value).js2-mode-deferred-pr
12f60 6f 70 65 72 74 69 65 73 29 29 0a 0a 3b 3b 20 49 27 64 20 6c 69 6b 65 20 74 6f 20 61 73 73 6f 63 operties))..;;.I'd.like.to.assoc
12f80 69 61 74 65 20 65 72 72 6f 72 73 20 77 69 74 68 20 6e 6f 64 65 73 2c 20 62 75 74 20 66 6f 72 20 iate.errors.with.nodes,.but.for.
12fa0 6e 6f 77 20 74 68 65 0a 3b 3b 20 65 61 73 69 65 73 74 20 74 68 69 6e 67 20 74 6f 20 64 6f 20 69 now.the.;;.easiest.thing.to.do.i
12fc0 73 20 67 65 74 20 74 68 65 20 63 6f 6e 74 65 78 74 20 69 6e 66 6f 20 66 72 6f 6d 20 74 68 65 20 s.get.the.context.info.from.the.
12fe0 6c 61 73 74 20 74 6f 6b 65 6e 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 70 61 last.token..(defun.js2-record-pa
13000 72 73 65 2d 65 72 72 6f 72 20 28 6d 73 67 20 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 70 6f 73 rse-error.(msg.&optional.arg.pos
13020 20 6c 65 6e 29 0a 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 6c 69 73 74 20 6d 73 67 20 61 72 .len)...(push.(list.(list.msg.ar
13040 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 70 6f 73 20 28 6a 73 32 2d 63 75 g)...............(or.pos.(js2-cu
13060 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrent-token-beg))...............
13080 28 6f 72 20 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 29 29 (or.len.(js2-current-token-len))
130a0 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 29 29 0a 0a 28 ).........js2-parsed-errors))..(
130c0 64 65 66 75 6e 20 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 28 6d 73 67 20 26 6f 70 74 defun.js2-report-error.(msg.&opt
130e0 69 6f 6e 61 6c 20 6d 73 67 2d 61 72 67 20 70 6f 73 20 6c 65 6e 29 0a 20 20 22 53 69 67 6e 61 6c ional.msg-arg.pos.len)..."Signal
13100 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20 6f 72 20 72 65 63 6f 72 64 20 61 20 70 61 72 73 .a.syntax.error.or.record.a.pars
13120 65 20 65 72 72 6f 72 2e 22 0a 20 20 28 69 66 20 6a 73 32 2d 72 65 63 6f 76 65 72 2d 66 72 6f 6d e.error."...(if.js2-recover-from
13140 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d -parse-errors.......(js2-record-
13160 70 61 72 73 65 2d 65 72 72 6f 72 20 6d 73 67 20 6d 73 67 2d 61 72 67 20 70 6f 73 20 6c 65 6e 29 parse-error.msg.msg-arg.pos.len)
13180 0a 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 6a 73 32 2d 73 79 6e 74 61 78 2d 65 72 72 6f 72 .......(signal.'js2-syntax-error
131a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6d 73 67 0a 20 20 20 20 20 20 20 ...............(list.msg........
131c0 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 0a 20 20 20 20 20 .............js2-ts-lineno......
131e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 ...............(save-excursion..
13200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6a ....................(goto-char.j
13220 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ts-cursor)...................
13240 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(current-column))............
13260 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 68 69 74 2d 65 6f 66 29 29 29 29 0a 0a 28 64 65 .........js2-ts-hit-eof))))..(de
13280 66 75 6e 20 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 28 6d 73 67 20 26 6f 70 74 fun.js2-report-warning.(msg.&opt
132a0 69 6f 6e 61 6c 20 6d 73 67 2d 61 72 67 20 70 6f 73 20 6c 65 6e 20 66 61 63 65 29 0a 20 20 28 69 ional.msg-arg.pos.len.face)...(i
132c0 66 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 2d 61 73 f.js2-compiler-report-warning-as
132e0 2d 65 72 72 6f 72 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d -error.......(js2-report-error.m
13300 73 67 20 6d 73 67 2d 61 72 67 20 70 6f 73 20 6c 65 6e 29 0a 20 20 20 20 28 70 75 73 68 20 28 6c sg.msg-arg.pos.len).....(push.(l
13320 69 73 74 20 28 6c 69 73 74 20 6d 73 67 20 6d 73 67 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 ist.(list.msg.msg-arg)..........
13340 20 20 20 20 20 20 20 28 6f 72 20 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 .......(or.pos.(js2-current-toke
13360 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 6c 65 6e 20 n-beg)).................(or.len.
13380 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 (js2-current-token-len))........
133a0 20 20 20 20 20 20 20 20 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 .........face)...........js2-par
133c0 73 65 64 2d 77 61 72 6e 69 6e 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 64 64 2d sed-warnings)))..(defun.js2-add-
133e0 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 28 6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e 61 6c strict-warning.(msg-id.&optional
13400 20 6d 73 67 2d 61 72 67 20 62 65 67 20 65 6e 64 29 0a 20 20 28 69 66 20 6a 73 32 2d 63 6f 6d 70 .msg-arg.beg.end)...(if.js2-comp
13420 69 6c 65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f iler-strict-mode.......(js2-repo
13440 72 74 2d 77 61 72 6e 69 6e 67 20 6d 73 67 2d 69 64 20 6d 73 67 2d 61 72 67 20 62 65 67 0a 20 20 rt-warning.msg-id.msg-arg.beg...
13460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 62 65 67 ........................(and.beg
13480 20 65 6e 64 20 28 2d 20 65 6e 64 20 62 65 67 29 29 29 29 29 0a 0a 28 70 75 74 20 27 6a 73 32 2d .end.(-.end.beg)))))..(put.'js2-
134a0 73 79 6e 74 61 78 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d 63 6f 6e 64 69 74 69 6f 6e 73 0a 20 syntax-error.'error-conditions..
134c0 20 20 20 20 27 28 65 72 72 6f 72 20 73 79 6e 74 61 78 2d 65 72 72 6f 72 20 6a 73 32 2d 73 79 6e ....'(error.syntax-error.js2-syn
134e0 74 61 78 2d 65 72 72 6f 72 29 29 0a 28 70 75 74 20 27 6a 73 32 2d 73 79 6e 74 61 78 2d 65 72 72 tax-error)).(put.'js2-syntax-err
13500 6f 72 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 20 22 53 79 6e 74 61 78 20 65 72 72 6f 72 22 or.'error-message."Syntax.error"
13520 29 0a 0a 28 70 75 74 20 27 6a 73 32 2d 70 61 72 73 65 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d )..(put.'js2-parse-error.'error-
13540 63 6f 6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20 27 28 65 72 72 6f 72 20 70 61 72 73 65 2d 65 72 conditions......'(error.parse-er
13560 72 6f 72 20 6a 73 32 2d 70 61 72 73 65 2d 65 72 72 6f 72 29 29 0a 28 70 75 74 20 27 6a 73 32 2d ror.js2-parse-error)).(put.'js2-
13580 70 61 72 73 65 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 20 22 50 61 72 73 parse-error.'error-message."Pars
135a0 65 20 65 72 72 6f 72 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 63 6c 65 61 72 2d 66 e.error")..(defmacro.js2-clear-f
135c0 6c 61 67 20 28 66 6c 61 67 73 20 66 6c 61 67 29 0a 20 20 60 28 73 65 74 71 20 2c 66 6c 61 67 73 lag.(flags.flag)...`(setq.,flags
135e0 20 28 6c 6f 67 61 6e 64 20 2c 66 6c 61 67 73 20 28 6c 6f 67 6e 6f 74 20 2c 66 6c 61 67 29 29 29 .(logand.,flags.(lognot.,flag)))
13600 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 28 66 6c 61 67 73 )..(defmacro.js2-set-flag.(flags
13620 20 66 6c 61 67 29 0a 20 20 22 4c 6f 67 69 63 61 6c 2d 6f 72 20 46 4c 41 47 20 69 6e 74 6f 20 46 .flag)..."Logical-or.FLAG.into.F
13640 4c 41 47 53 2e 22 0a 20 20 60 28 73 65 74 71 20 2c 66 6c 61 67 73 20 28 6c 6f 67 69 6f 72 20 2c LAGS."...`(setq.,flags.(logior.,
13660 66 6c 61 67 73 20 2c 66 6c 61 67 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 66 6c flags.,flag)))..(defsubst.js2-fl
13680 61 67 2d 73 65 74 2d 70 20 28 66 6c 61 67 73 20 66 6c 61 67 29 0a 20 20 28 2f 3d 20 30 20 28 6c ag-set-p.(flags.flag)...(/=.0.(l
136a0 6f 67 61 6e 64 20 66 6c 61 67 73 20 66 6c 61 67 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a ogand.flags.flag)))..(defsubst.j
136c0 73 32 2d 66 6c 61 67 2d 6e 6f 74 2d 73 65 74 2d 70 20 28 66 6c 61 67 73 20 66 6c 61 67 29 0a 20 s2-flag-not-set-p.(flags.flag)..
136e0 20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20 66 6c 61 67 73 20 66 6c 61 67 29 29 29 0a 0a 3b .(zerop.(logand.flags.flag)))..;
13700 3b 3b 20 41 53 54 20 73 74 72 75 63 74 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e ;;.AST.struct.and.function.defin
13720 69 74 69 6f 6e 73 0a 0a 3b 3b 20 66 6c 61 67 73 20 66 6f 72 20 61 73 74 20 6e 6f 64 65 20 70 72 itions..;;.flags.for.ast.node.pr
13740 6f 70 65 72 74 79 20 27 6d 65 6d 62 65 72 2d 74 79 70 65 20 28 75 73 65 64 20 66 6f 72 20 65 34 operty.'member-type.(used.for.e4
13760 78 20 6f 70 65 72 61 74 6f 72 73 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 70 72 6f 70 65 72 74 x.operators).(defvar.js2-propert
13780 79 2d 66 6c 61 67 20 20 20 20 23 78 31 20 22 50 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 3a 20 y-flag....#x1."Property.access:.
137a0 65 6c 65 6d 65 6e 74 20 69 73 20 76 61 6c 69 64 20 6e 61 6d 65 2e 22 29 0a 28 64 65 66 76 61 72 element.is.valid.name.").(defvar
137c0 20 6a 73 32 2d 61 74 74 72 69 62 75 74 65 2d 66 6c 61 67 20 20 20 23 78 32 20 22 78 2e 40 79 20 .js2-attribute-flag...#x2."x.@y.
137e0 6f 72 20 78 2e 2e 40 79 2e 22 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 64 65 73 63 65 6e 64 61 or.x..@y.").(defvar.js2-descenda
13800 6e 74 73 2d 66 6c 61 67 20 23 78 34 20 22 78 2e 2e 79 20 6f 72 20 78 2e 2e 40 69 2e 22 29 0a 0a nts-flag.#x4."x..y.or.x..@i.")..
13820 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 72 65 6c 70 6f 73 20 28 70 6f 73 20 61 6e 63 68 6f 72 (defsubst.js2-relpos.(pos.anchor
13840 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 50 4f 53 20 74 6f 20 62 65 20 72 65 6c 61 74 69 76 65 20 )..."Convert.POS.to.be.relative.
13860 74 6f 20 41 4e 43 48 4f 52 2e 0a 49 66 20 50 4f 53 20 69 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e to.ANCHOR..If.POS.is.nil,.return
13880 73 20 6e 69 6c 2e 22 0a 20 20 28 61 6e 64 20 70 6f 73 20 28 2d 20 70 6f 73 20 61 6e 63 68 6f 72 s.nil."...(and.pos.(-.pos.anchor
138a0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 28 69 6e 64 65 6e 74 )))..(defun.js2-make-pad.(indent
138c0 29 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 69 6e 64 65 6e 74 29 0a 20 20 20 20 20 20 22 22 0a )...(if.(zerop.indent)......."".
138e0 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2a 20 69 6e 64 65 6e 74 20 6a 73 32 2d 62 ....(make-string.(*.indent.js2-b
13900 61 73 69 63 2d 6f 66 66 73 65 74 29 20 3f 20 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 asic-offset).?.)))..(defun.js2-v
13920 69 73 69 74 2d 61 73 74 20 28 6e 6f 64 65 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 56 69 73 69 isit-ast.(node.callback)..."Visi
13940 74 20 65 76 65 72 79 20 6e 6f 64 65 20 69 6e 20 61 73 74 20 4e 4f 44 45 20 77 69 74 68 20 76 69 t.every.node.in.ast.NODE.with.vi
13960 73 69 74 6f 72 20 43 41 4c 4c 42 41 43 4b 2e 0a 0a 43 41 4c 4c 42 41 43 4b 20 69 73 20 61 20 66 sitor.CALLBACK...CALLBACK.is.a.f
13980 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 unction.that.takes.two.arguments
139a0 3a 20 20 28 4e 4f 44 45 20 45 4e 44 2d 50 29 2e 20 20 49 74 20 69 73 0a 63 61 6c 6c 65 64 20 74 :..(NODE.END-P)...It.is.called.t
139c0 77 69 63 65 3a 20 20 6f 6e 63 65 20 74 6f 20 76 69 73 69 74 20 74 68 65 20 6e 6f 64 65 2c 20 61 wice:..once.to.visit.the.node,.a
139e0 6e 64 20 61 67 61 69 6e 20 61 66 74 65 72 20 61 6c 6c 20 74 68 65 20 6e 6f 64 65 27 73 0a 63 68 nd.again.after.all.the.node's.ch
13a00 69 6c 64 72 65 6e 20 68 61 76 65 20 62 65 65 6e 20 70 72 6f 63 65 73 73 65 64 2e 20 20 54 68 65 ildren.have.been.processed...The
13a20 20 45 4e 44 2d 50 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 69 6c 20 6f 6e 20 74 68 65 20 66 69 .END-P.argument.is.nil.on.the.fi
13a40 72 73 74 0a 63 61 6c 6c 20 61 6e 64 20 6e 6f 6e 2d 6e 69 6c 20 6f 6e 20 74 68 65 20 73 65 63 6f rst.call.and.non-nil.on.the.seco
13a60 6e 64 20 63 61 6c 6c 2e 20 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 74 68 nd.call...The.return.value.of.th
13a80 65 20 63 61 6c 6c 62 61 63 6b 0a 61 66 66 65 63 74 73 20 74 68 65 20 74 72 61 76 65 72 73 61 6c e.callback.affects.the.traversal
13aa0 3a 20 20 69 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 4e :..if.non-nil,.the.children.of.N
13ac0 4f 44 45 20 61 72 65 20 70 72 6f 63 65 73 73 65 64 2e 0a 49 66 20 74 68 65 20 63 61 6c 6c 62 61 ODE.are.processed..If.the.callba
13ae0 63 6b 20 72 65 74 75 72 6e 73 20 6e 69 6c 2c 20 6f 72 20 69 66 20 74 68 65 20 6e 6f 64 65 20 68 ck.returns.nil,.or.if.the.node.h
13b00 61 73 20 6e 6f 20 63 68 69 6c 64 72 65 6e 2c 20 74 68 65 6e 20 74 68 65 0a 63 61 6c 6c 62 61 63 as.no.children,.then.the.callbac
13b20 6b 20 69 73 20 63 61 6c 6c 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 77 69 74 68 20 61 20 6e k.is.called.immediately.with.a.n
13b40 6f 6e 2d 6e 69 6c 20 45 4e 44 2d 50 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 54 68 65 20 6e 6f 64 65 on-nil.END-P.argument...The.node
13b60 20 74 72 61 76 65 72 73 61 6c 20 69 73 20 61 70 70 72 6f 78 69 6d 61 74 65 6c 79 20 6c 65 78 69 .traversal.is.approximately.lexi
13b80 63 61 6c 2d 6f 72 64 65 72 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 72 65 0a 61 72 65 20 63 75 cal-order,.although.there.are.cu
13ba0 72 72 65 6e 74 6c 79 20 6e 6f 20 67 75 61 72 61 6e 74 65 65 73 20 61 72 6f 75 6e 64 20 74 68 69 rrently.no.guarantees.around.thi
13bc0 73 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 64 65 0a 20 20 20 20 28 6c 65 74 20 28 28 76 66 75 6e s."...(when.node.....(let.((vfun
13be0 63 20 28 67 65 74 20 28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 27 6a 73 32 2d 76 69 73 69 74 6f c.(get.(aref.node.0).'js2-visito
13c00 72 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 r))).......;;.visit.the.node....
13c20 20 20 20 28 77 68 65 6e 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 6e 6f 64 65 ...(when..(funcall.callback.node
13c40 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 20 74 68 65 20 6b 69 64 73 0a .nil).........;;.visit.the.kids.
13c60 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 76 66 75 6e ........(cond..........((eq.vfun
13c80 63 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c c.'js2-visit-none)...........nil
13ca0 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 )............................;.d
13cc0 6f 6e 27 74 20 65 76 65 6e 20 62 6f 74 68 65 72 20 63 61 6c 6c 69 6e 67 20 69 74 0a 20 20 20 20 on't.even.bother.calling.it.....
13ce0 20 20 20 20 20 3b 3b 20 45 61 63 68 20 41 53 54 20 6e 6f 64 65 20 74 79 70 65 20 68 61 73 20 74 .....;;.Each.AST.node.type.has.t
13d00 6f 20 64 65 66 69 6e 65 20 61 20 60 6a 73 32 2d 76 69 73 69 74 6f 72 27 20 66 75 6e 63 74 69 6f o.define.a.`js2-visitor'.functio
13d20 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 6e 6f 64 65 20 n..........;;.that.takes.a.node.
13d40 61 6e 64 20 61 20 63 61 6c 6c 62 61 63 6b 2c 20 61 6e 64 20 63 61 6c 6c 73 20 60 6a 73 32 2d 76 and.a.callback,.and.calls.`js2-v
13d60 69 73 69 74 2d 61 73 74 27 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 20 65 61 63 68 20 63 68 isit-ast'..........;;.on.each.ch
13d80 69 6c 64 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 20 28 76 66 75 6e 63 ild.of.the.node...........(vfunc
13da0 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 76 66 75 6e 63 20 6e 6f 64 65 20 63 ...........(funcall.vfunc.node.c
13dc0 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 allback))..........(t...........
13de0 28 65 72 72 6f 72 20 22 25 73 20 64 6f 65 73 20 6e 6f 74 20 64 65 66 69 6e 65 20 61 20 76 69 73 (error."%s.does.not.define.a.vis
13e00 69 74 6f 72 2d 74 72 61 76 65 72 73 61 6c 20 66 75 6e 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 itor-traversal.function"........
13e20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6e 6f 64 65 20 30 29 29 29 29 29 0a 20 20 20 20 ..........(aref.node.0))))).....
13e40 20 20 3b 3b 20 63 61 6c 6c 20 74 68 65 20 65 6e 64 2d 76 69 73 69 74 0a 20 20 20 20 20 20 28 66 ..;;.call.the.end-visit.......(f
13e60 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 6e 6f 64 65 20 74 29 29 29 29 0a 0a 28 63 6c 2d uncall.callback.node.t))))..(cl-
13e80 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 defstruct.(js2-node.............
13ea0 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6e 69 6c 29 29 20 20 3b 20 61 62 73 74 72 61 ...(:constructor.nil))..;.abstra
13ec0 63 74 0a 20 20 22 42 61 73 65 20 41 53 54 20 6e 6f 64 65 20 74 79 70 65 2e 22 0a 20 20 28 74 79 ct..."Base.AST.node.type."...(ty
13ee0 70 65 20 2d 31 29 20 20 3b 20 74 6f 6b 65 6e 20 74 79 70 65 0a 20 20 28 70 6f 73 20 2d 31 29 20 pe.-1)..;.token.type...(pos.-1).
13f00 20 20 3b 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 41 53 54 20 6e ..;.start.position.of.this.AST.n
13f20 6f 64 65 20 69 6e 20 70 61 72 73 65 64 20 69 6e 70 75 74 0a 20 20 28 6c 65 6e 20 31 29 20 20 20 ode.in.parsed.input...(len.1)...
13f40 20 3b 20 6e 75 6d 20 63 68 61 72 61 63 74 65 72 73 20 73 70 61 6e 6e 65 64 20 62 79 20 74 68 65 .;.num.characters.spanned.by.the
13f60 20 6e 6f 64 65 0a 20 20 70 72 6f 70 73 20 20 20 20 20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 6e 6f .node...props......;.optional.no
13f80 64 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74 20 28 61 6e 20 61 6c 69 73 74 29 0a 20 20 70 61 de.property.list.(an.alist)...pa
13fa0 72 65 6e 74 29 20 20 20 20 3b 20 6c 69 6e 6b 20 74 6f 20 70 61 72 65 6e 74 20 6e 6f 64 65 3b 20 rent)....;.link.to.parent.node;.
13fc0 6e 75 6c 6c 20 66 6f 72 20 72 6f 6f 74 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 null.for.root..(defsubst.js2-nod
13fe0 65 2d 67 65 74 2d 70 72 6f 70 20 28 6e 6f 64 65 20 70 72 6f 70 20 26 6f 70 74 69 6f 6e 61 6c 20 e-get-prop.(node.prop.&optional.
14000 64 65 66 61 75 6c 74 29 0a 20 20 28 6f 72 20 28 63 61 64 72 20 28 61 73 73 6f 63 20 70 72 6f 70 default)...(or.(cadr.(assoc.prop
14020 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 72 6f 70 73 20 6e 6f 64 65 29 29 29 20 64 65 66 61 75 6c 74 .(js2-node-props.node))).default
14040 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70 72 6f 70 20 ))..(defsubst.js2-node-set-prop.
14060 28 6e 6f 64 65 20 70 72 6f 70 20 76 61 6c 75 65 29 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e (node.prop.value)...(setf.(js2-n
14080 6f 64 65 2d 70 72 6f 70 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c ode-props.node).........(cons.(l
140a0 69 73 74 20 70 72 6f 70 20 76 61 6c 75 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 72 6f 70 73 20 ist.prop.value).(js2-node-props.
140c0 6e 6f 64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 69 78 75 70 2d 73 74 61 72 74 node))))..(defun.js2-fixup-start
140e0 73 20 28 6e 20 6e 6f 64 65 73 29 0a 20 20 22 41 64 6a 75 73 74 20 74 68 65 20 73 74 61 72 74 20 s.(n.nodes)..."Adjust.the.start.
14100 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 4e 4f 44 45 53 20 74 6f 20 62 65 20 72 65 6c 61 74 69 76 positions.of.NODES.to.be.relativ
14120 65 20 74 6f 20 4e 2e 0a 41 6e 79 20 6e 6f 64 65 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 61 79 e.to.N..Any.node.in.the.list.may
14140 20 62 65 20 6e 69 6c 2c 20 66 6f 72 20 63 6f 6e 76 65 6e 69 65 6e 63 65 2e 22 0a 20 20 28 64 6f .be.nil,.for.convenience."...(do
14160 6c 69 73 74 20 28 6e 6f 64 65 20 6e 6f 64 65 73 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65 list.(node.nodes).....(when.node
14180 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 .......(setf.(js2-node-pos.node)
141a0 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 .(-.(js2-node-pos.node).........
141c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
141e0 6e 6f 64 65 2d 70 6f 73 20 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 node-pos.n))))))..(defun.js2-nod
14200 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 28 70 61 72 65 6e 74 20 26 72 65 73 74 20 6e 6f 64 e-add-children.(parent.&rest.nod
14220 65 73 29 0a 20 20 22 53 65 74 20 70 61 72 65 6e 74 20 6e 6f 64 65 20 6f 66 20 4e 4f 44 45 53 20 es)..."Set.parent.node.of.NODES.
14240 74 6f 20 50 41 52 45 4e 54 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 50 41 52 45 4e 54 2e 0a 44 6f to.PARENT,.and.return.PARENT..Do
14260 65 73 20 6e 6f 74 68 69 6e 67 20 69 66 20 77 65 27 72 65 20 6e 6f 74 20 72 65 63 6f 72 64 69 6e es.nothing.if.we're.not.recordin
14280 67 20 70 61 72 65 6e 74 20 6c 69 6e 6b 73 2e 0a 49 66 20 61 6e 79 20 67 69 76 65 6e 20 6e 6f 64 g.parent.links..If.any.given.nod
142a0 65 20 69 6e 20 4e 4f 44 45 53 20 69 73 20 6e 69 6c 2c 20 64 6f 65 73 6e 27 74 20 72 65 63 6f 72 e.in.NODES.is.nil,.doesn't.recor
142c0 64 20 74 68 61 74 20 6c 69 6e 6b 2e 22 0a 20 20 28 6a 73 32 2d 66 69 78 75 70 2d 73 74 61 72 74 d.that.link."...(js2-fixup-start
142e0 73 20 70 61 72 65 6e 74 20 6e 6f 64 65 73 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6e 6f 64 65 20 s.parent.nodes)...(dolist.(node.
14300 6e 6f 64 65 73 29 0a 20 20 20 20 28 61 6e 64 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 73 nodes).....(and.node..........(s
14320 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 20 70 61 72 65 6e etf.(js2-node-parent.node).paren
14340 74 29 29 29 29 0a 0a 3b 3b 20 4e 6f 6e 2d 72 65 63 75 72 73 69 76 65 20 73 69 6e 63 65 20 69 74 t))))..;;.Non-recursive.since.it
14360 27 73 20 63 61 6c 6c 65 64 20 61 20 66 72 69 67 68 74 65 6e 69 6e 67 20 6e 75 6d 62 65 72 20 6f 's.called.a.frightening.number.o
14380 66 20 74 69 6d 65 73 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 f.times..(defun.js2-node-abs-pos
143a0 20 28 6e 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 .(n)...(let.((pos.(js2-node-pos.
143c0 6e 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 6e 20 28 6a 73 32 2d 6e 6f 64 n))).....(while.(setq.n.(js2-nod
143e0 65 2d 70 61 72 65 6e 74 20 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 2b 20 e-parent.n)).......(setq.pos.(+.
14400 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 29 29 29 29 0a 20 20 20 20 70 6f 73 29 pos.(js2-node-pos.n)))).....pos)
14420 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 28 6e )..(defsubst.js2-node-abs-end.(n
14440 29 0a 20 20 22 52 65 74 75 72 6e 20 61 62 73 6f 6c 75 74 65 20 62 75 66 66 65 72 20 70 6f 73 69 )..."Return.absolute.buffer.posi
14460 74 69 6f 6e 20 6f 66 20 65 6e 64 20 6f 66 20 4e 2e 22 0a 20 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 tion.of.end.of.N."...(+.(js2-nod
14480 65 2d 61 62 73 2d 70 6f 73 20 6e 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 29 29 29 0a e-abs-pos.n).(js2-node-len.n))).
144a0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 28 6e 61 6d 65 20 6b 65 .(defun.js2--struct-put.(name.ke
144c0 79 20 76 61 6c 75 65 29 0a 20 20 28 70 75 74 20 6e 61 6d 65 20 6b 65 79 20 76 61 6c 75 65 29 0a y.value)...(put.name.key.value).
144e0 20 20 28 70 75 74 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 22 63 6c 2d 73 74 72 75 63 ..(put.(intern.(format."cl-struc
14500 74 2d 25 73 22 20 6e 61 6d 65 29 29 20 6b 65 79 20 76 61 6c 75 65 29 29 0a 0a 3b 3b 20 49 74 27 t-%s".name)).key.value))..;;.It'
14520 73 20 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 62 6c 6f 63 6b 20 6e s.important.to.make.sure.block.n
14540 6f 64 65 73 20 68 61 76 65 20 61 20 4c 69 73 70 20 6c 69 73 74 20 66 6f 72 20 74 68 65 0a 3b 3b odes.have.a.Lisp.list.for.the.;;
14560 20 63 68 69 6c 64 20 6e 6f 64 65 73 2c 20 74 6f 20 6c 69 6d 69 74 20 70 72 69 6e 74 69 6e 67 20 .child.nodes,.to.limit.printing.
14580 72 65 63 75 72 73 69 6f 6e 20 64 65 70 74 68 20 69 6e 20 61 6e 20 41 53 54 20 74 68 61 74 0a 3b recursion.depth.in.an.AST.that.;
145a0 3b 20 6f 74 68 65 72 77 69 73 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 64 65 66 73 74 72 75 63 ;.otherwise.consists.of.defstruc
145c0 74 20 76 65 63 74 6f 72 73 2e 20 20 45 6d 61 63 73 20 77 69 6c 6c 20 63 72 61 73 68 20 70 72 69 t.vectors...Emacs.will.crash.pri
145e0 6e 74 69 6e 67 0a 3b 3b 20 61 20 73 75 66 66 69 63 69 65 6e 74 6c 79 20 6c 61 72 67 65 20 76 65 nting.;;.a.sufficiently.large.ve
14600 63 74 6f 72 20 74 72 65 65 2e 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 62 ctor.tree...(cl-defstruct.(js2-b
14620 6c 6f 63 6b 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 lock-node................(:inclu
14640 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f de.js2-node)................(:co
14660 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 20 28 26 nstructor.make-js2-block-node.(&
14680 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 42 4c 4f 43 4b 29 0a 20 20 20 20 20 20 20 20 20 20 20 key.(type.js2-BLOCK)............
146a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
146c0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f ............(pos.(js2-current-to
146e0 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ken-beg)).......................
14700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14720 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .len............................
14740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 ............................prop
14760 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
14780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 29 29 29 .........................kids)))
147a0 0a 20 20 22 41 20 62 6c 6f 63 6b 20 6f 66 20 73 74 61 74 65 6d 65 6e 74 73 2e 22 0a 20 20 6b 69 ..."A.block.of.statements."...ki
147c0 64 73 29 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 74 68 65 20 63 68 69 6c 64 20 ds)..;.a.Lisp.list.of.the.child.
147e0 73 74 61 74 65 6d 65 6e 74 20 6e 6f 64 65 73 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 statement.nodes..(js2--struct-pu
14800 74 20 27 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 t.'js2-block-node.'js2-visitor.'
14820 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 js2-visit-block).(js2--struct-pu
14840 74 20 27 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 t.'js2-block-node.'js2-printer.'
14860 6a 73 32 2d 70 72 69 6e 74 2d 62 6c 6f 63 6b 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 js2-print-block)..(defun.js2-vis
14880 69 74 2d 62 6c 6f 63 6b 20 28 61 73 74 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 56 69 73 69 74 it-block.(ast.callback)..."Visit
148a0 20 74 68 65 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 27 20 63 68 69 6c 64 72 65 6e 20 6f .the.`js2-block-node'.children.o
148c0 66 20 41 53 54 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63 f.AST."...(dolist.(kid.(js2-bloc
148e0 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 61 73 74 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 k-node-kids.ast)).....(js2-visit
14900 2d 61 73 74 20 6b 69 64 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 -ast.kid.callback)))..(defun.js2
14920 2d 70 72 69 6e 74 2d 62 6c 6f 63 6b 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 -print-block.(n.i)...(let.((pad.
14940 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 (js2-make-pad.i))).....(insert.p
14960 61 64 20 22 7b 5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d ad."{\n").....(dolist.(kid.(js2-
14980 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 block-node-kids.n)).......(js2-p
149a0 72 69 6e 74 2d 61 73 74 20 6b 69 64 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 rint-ast.kid.(1+.i))).....(inser
149c0 74 20 70 61 64 20 22 7d 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 t.pad."}")))..(cl-defstruct.(js2
149e0 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 -scope................(:include.
14a00 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 js2-block-node)................(
14a20 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 73 63 6f 70 65 20 28 26 6b 65 :constructor.make-js2-scope.(&ke
14a40 79 20 28 74 79 70 65 20 6a 73 32 2d 42 4c 4f 43 4b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 y.(type.js2-BLOCK)..............
14a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14a80 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 .....(pos.(js2-current-token-beg
14aa0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..............................
14ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 .....................len........
14ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14b00 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 29 29 29 0a 20 20 3b 3b 20 54 68 65 20 73 79 6d 62 ...........kids)))...;;.The.symb
14b20 6f 6c 2d 74 61 62 6c 65 20 69 73 20 61 20 4c 69 6e 6b 65 64 48 61 73 68 4d 61 70 3c 53 74 72 69 ol-table.is.a.LinkedHashMap<Stri
14b40 6e 67 2c 53 79 6d 62 6f 6c 3e 20 69 6e 20 52 68 69 6e 6f 2e 0a 20 20 3b 3b 20 49 20 64 6f 6e 27 ng,Symbol>.in.Rhino....;;.I.don'
14b60 74 20 68 61 76 65 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 68 61 6e 64 79 2c 20 73 6f 20 49 27 t.have.one.of.those.handy,.so.I'
14b80 6c 6c 20 75 73 65 20 61 6e 20 61 6c 69 73 74 20 66 6f 72 20 6e 6f 77 2e 0a 20 20 3b 3b 20 49 74 ll.use.an.alist.for.now....;;.It
14ba0 27 73 20 61 73 20 66 61 73 74 20 61 73 20 61 6e 20 65 6d 61 63 73 20 68 61 73 68 74 61 62 6c 65 's.as.fast.as.an.emacs.hashtable
14bc0 20 66 6f 72 20 75 70 20 74 6f 20 61 62 6f 75 74 20 35 30 20 65 6c 65 6d 65 6e 74 73 2c 0a 20 20 .for.up.to.about.50.elements,...
14be0 3b 3b 20 61 6e 64 20 69 73 20 6d 75 63 68 20 6c 69 67 68 74 65 72 2d 77 65 69 67 68 74 20 74 6f ;;.and.is.much.lighter-weight.to
14c00 20 63 6f 6e 73 74 72 75 63 74 20 28 62 6f 74 68 20 43 50 55 20 61 6e 64 20 6d 65 6d 29 2e 0a 20 .construct.(both.CPU.and.mem)...
14c20 20 3b 3b 20 54 68 65 20 6b 65 79 73 20 61 72 65 20 69 6e 74 65 72 6e 65 64 20 73 74 72 69 6e 67 .;;.The.keys.are.interned.string
14c40 73 20 28 73 79 6d 62 6f 6c 73 29 20 66 6f 72 20 66 61 73 74 65 72 20 6c 6f 6f 6b 75 70 2e 0a 20 s.(symbols).for.faster.lookup...
14c60 20 3b 3b 20 53 68 6f 75 6c 64 20 73 77 69 74 63 68 20 74 6f 20 68 79 62 72 69 64 20 61 6c 69 73 .;;.Should.switch.to.hybrid.alis
14c80 74 2f 68 61 73 68 74 61 62 6c 65 20 65 76 65 6e 74 75 61 6c 6c 79 2e 0a 20 20 73 79 6d 62 6f 6c t/hashtable.eventually....symbol
14ca0 2d 74 61 62 6c 65 20 20 3b 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 28 73 79 6d 62 6f 6c 20 2e 20 -table..;.an.alist.of.(symbol...
14cc0 6a 73 32 2d 73 79 6d 62 6f 6c 29 0a 20 20 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 20 3b 20 61 20 js2-symbol)...parent-scope..;.a.
14ce0 60 6a 73 32 2d 73 63 6f 70 65 27 0a 20 20 74 6f 70 29 20 20 20 20 20 20 20 20 20 20 3b 20 74 6f `js2-scope'...top)..........;.to
14d00 70 2d 6c 65 76 65 6c 20 60 6a 73 32 2d 73 63 6f 70 65 27 20 28 73 63 72 69 70 74 2f 66 75 6e 63 p-level.`js2-scope'.(script/func
14d20 74 69 6f 6e 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 63 6f tion)..(js2--struct-put.'js2-sco
14d40 70 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b pe.'js2-visitor.'js2-visit-block
14d60 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 63 6f 70 65 20 27 6a ).(js2--struct-put.'js2-scope.'j
14d80 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 62 6c 6f 63 6b 29 0a 0a 28 64 s2-printer.'js2-print-block)..(d
14da0 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70 efun.js2-node-get-enclosing-scop
14dc0 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 e.(node)..."Return.the.innermost
14de0 20 60 6a 73 32 2d 73 63 6f 70 65 27 20 6e 6f 64 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 4e 4f .`js2-scope'.node.surrounding.NO
14e00 44 45 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 65 DE..Returns.nil.if.there.is.no.e
14e20 6e 63 6c 6f 73 69 6e 67 20 73 63 6f 70 65 20 6e 6f 64 65 2e 22 0a 20 20 3b 3b 20 77 68 65 6e 20 nclosing.scope.node."...;;.when.
14e40 6e 6f 64 65 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 73 node.is.the.name.of.a.function.s
14e60 74 61 74 65 6d 65 6e 74 2c 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 0a 20 20 3b 3b 20 73 63 6f tatement,.the.enclosing...;;.sco
14e80 70 65 20 69 73 20 6e 6f 74 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 20 69 74 73 65 6c 66 20 62 pe.is.not.that.function.itself.b
14ea0 75 74 20 74 68 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 73 63 6f 70 65 2e 0a 20 20 28 6c 65 74 ut.the.surrounding.scope....(let
14ec0 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 .((parent.(js2-node-parent.node)
14ee0 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 )).....(when.(and.(js2-name-node
14f00 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e -p.node)................(js2-fun
14f20 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ction-node-p.parent)............
14f40 20 20 20 20 28 65 71 20 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 20 28 6a 73 32 ....(eq.'FUNCTION_STATEMENT.(js2
14f60 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66 6f 72 6d 20 70 61 72 65 6e 74 29 29 0a 20 20 20 -function-node-form.parent))....
14f80 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 ............(eq.node.(js2-functi
14fa0 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 on-node-name.parent))).......(se
14fc0 74 71 20 6e 6f 64 65 20 70 61 72 65 6e 74 29 29 29 0a 20 20 3b 3b 20 64 69 67 20 75 70 20 74 6f tq.node.parent)))...;;.dig.up.to
14fe0 20 66 69 6e 64 20 74 68 65 20 63 6c 6f 73 65 73 74 20 73 63 6f 70 65 20 70 61 72 65 6e 74 0a 20 .find.the.closest.scope.parent..
15000 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 .(while.(and.(setq.node.(js2-nod
15020 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e e-parent.node))...............(n
15040 6f 74 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 20 6e 6f 64 65 29 29 29 29 0a 20 20 6e 6f 64 65 29 ot.(js2-scope-p.node))))...node)
15060 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 ..(defun.js2-get-defining-scope.
15080 28 73 63 6f 70 65 20 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 29 0a 20 20 22 (scope.name.&optional.point)..."
150a0 53 65 61 72 63 68 20 75 70 20 73 63 6f 70 65 20 63 68 61 69 6e 20 66 72 6f 6d 20 53 43 4f 50 45 Search.up.scope.chain.from.SCOPE
150c0 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 4e 41 4d 45 2c 20 61 20 73 74 72 69 6e 67 20 6f 72 20 73 .looking.for.NAME,.a.string.or.s
150e0 79 6d 62 6f 6c 2e 0a 52 65 74 75 72 6e 73 20 60 6a 73 32 2d 73 63 6f 70 65 27 20 69 6e 20 77 68 ymbol..Returns.`js2-scope'.in.wh
15100 69 63 68 20 4e 41 4d 45 20 69 73 20 64 65 66 69 6e 65 64 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e ich.NAME.is.defined,.or.nil.if.n
15120 6f 74 20 66 6f 75 6e 64 2e 0a 0a 49 66 20 50 4f 49 4e 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 ot.found...If.POINT.is.non-nil,.
15140 61 6e 64 20 69 66 20 74 68 65 20 66 6f 75 6e 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 79 70 and.if.the.found.declaration.typ
15160 65 20 69 73 0a 60 6a 73 32 2d 4c 45 54 27 2c 20 61 6c 73 6f 20 63 68 65 63 6b 20 74 68 61 74 20 e.is.`js2-LET',.also.check.that.
15180 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6e 6f 64 65 20 69 73 20 62 65 66 6f 72 65 20 50 the.declaration.node.is.before.P
151a0 4f 49 4e 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 OINT."...(let.((sym.(if.(symbolp
151c0 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 20 20 .name)..................name....
151e0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 ............(intern.name))).....
15200 20 20 20 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29 ....result.........(continue.t))
15220 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 73 63 6f 70 65 20 63 6f 6e 74 69 6e 75 65 29 .....(while.(and.scope.continue)
15240 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 .......(if.(or............(let.(
15260 28 65 6e 74 72 79 20 28 63 64 72 20 28 61 73 73 71 20 73 79 6d 20 28 6a 73 32 2d 73 63 6f 70 65 (entry.(cdr.(assq.sym.(js2-scope
15280 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63 6f 70 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 -symbol-table.scope)))))........
152a0 20 20 20 20 20 20 28 61 6e 64 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(and.entry................
152c0 20 20 20 28 6f 72 20 28 6e 6f 74 20 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(or.(not.point)..............
152e0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 73 .........(not.(eq.js2-LET.(js2-s
15300 79 6d 62 6f 6c 2d 64 65 63 6c 2d 74 79 70 65 20 65 6e 74 72 79 29 29 29 0a 20 20 20 20 20 20 20 ymbol-decl-type.entry)))........
15320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 ...............(>=.point........
15340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 ...................(js2-node-abs
15360 2d 70 6f 73 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 61 73 74 2d 6e 6f 64 65 20 65 6e 74 72 79 29 -pos.(js2-symbol-ast-node.entry)
15380 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 73 79 6d 20 27 61 )))))............(and.(eq.sym.'a
153a0 72 67 75 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 rguments).................(js2-f
153c0 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 73 63 6f 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 unction-node-p.scope))).........
153e0 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 ..(setq.continue.nil............
15400 20 20 20 20 20 72 65 73 75 6c 74 20 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 .....result.scope).........(setq
15420 20 73 63 6f 70 65 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 73 .scope.(js2-scope-parent-scope.s
15440 63 6f 70 65 29 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 cope)))).....result))..(defun.js
15460 32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 28 73 63 6f 70 65 20 6e 61 6d 65 29 0a 2-scope-get-symbol.(scope.name).
15480 20 20 22 52 65 74 75 72 6e 20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 20 65 6e 74 72 79 20 66 6f 72 .."Return.symbol.table.entry.for
154a0 20 4e 41 4d 45 20 69 6e 20 53 43 4f 50 45 2e 0a 4e 41 4d 45 20 63 61 6e 20 62 65 20 61 20 73 74 .NAME.in.SCOPE..NAME.can.be.a.st
154c0 72 69 6e 67 20 6f 72 20 73 79 6d 62 6f 6c 2e 20 20 20 52 65 74 75 72 6e 73 20 61 20 60 6a 73 32 ring.or.symbol....Returns.a.`js2
154e0 2d 73 79 6d 62 6f 6c 27 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 0a 20 -symbol'.or.nil.if.not.found."..
15500 20 28 61 6e 64 20 28 6a 73 32 2d 73 63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63 .(and.(js2-scope-symbol-table.sc
15520 6f 70 65 29 0a 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 71 20 28 69 66 20 28 73 79 6d 62 ope)........(cdr.(assq.(if.(symb
15540 6f 6c 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 olp.name).......................
15560 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e name.....................(intern
15580 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 .name))...................(js2-s
155a0 63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63 6f 70 65 29 29 29 29 29 0a 0a 28 64 cope-symbol-table.scope)))))..(d
155c0 65 66 75 6e 20 6a 73 32 2d 73 63 6f 70 65 2d 70 75 74 2d 73 79 6d 62 6f 6c 20 28 73 63 6f 70 65 efun.js2-scope-put-symbol.(scope
155e0 20 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 0a 20 20 22 45 6e 74 65 72 20 53 59 4d 42 4f 4c 20 69 6e .name.symbol)..."Enter.SYMBOL.in
15600 74 6f 20 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 66 6f 72 20 53 43 4f 50 45 20 75 6e 64 65 72 20 to.symbol-table.for.SCOPE.under.
15620 4e 41 4d 45 2e 0a 4e 41 4d 45 20 63 61 6e 20 62 65 20 61 20 4c 69 73 70 20 73 79 6d 62 6f 6c 20 NAME..NAME.can.be.a.Lisp.symbol.
15640 6f 72 20 73 74 72 69 6e 67 2e 20 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 60 6a 73 32 2d 73 79 6d or.string...SYMBOL.is.a.`js2-sym
15660 62 6f 6c 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 61 62 6c 65 20 28 6a 73 32 2d 73 63 6f 70 bol'."...(let*.((table.(js2-scop
15680 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63 6f 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 e-symbol-table.scope))..........
156a0 28 73 79 6d 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 6e 61 6d 65 29 20 6e 61 6d 65 20 28 69 6e (sym.(if.(symbolp.name).name.(in
156c0 74 65 72 6e 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 20 28 61 73 tern.name)))..........(entry.(as
156e0 73 71 20 73 79 6d 20 74 61 62 6c 65 29 29 29 0a 20 20 20 20 28 69 66 20 65 6e 74 72 79 0a 20 20 sq.sym.table))).....(if.entry...
15700 20 20 20 20 20 20 28 73 65 74 63 64 72 20 65 6e 74 72 79 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 ......(setcdr.entry.symbol).....
15720 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 73 79 6d 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 ..(push.(cons.sym.symbol).......
15740 20 20 20 20 20 20 28 6a 73 32 2d 73 63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63 ......(js2-scope-symbol-table.sc
15760 6f 70 65 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 73 79 6d ope)))))..(cl-defstruct.(js2-sym
15780 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 bol................(:constructor
157a0 20 6d 61 6b 65 2d 6a 73 32 2d 73 79 6d 62 6f 6c 20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65 .make-js2-symbol.(decl-type.name
157c0 20 26 6f 70 74 69 6f 6e 61 6c 20 61 73 74 2d 6e 6f 64 65 29 29 29 0a 20 20 22 41 20 73 79 6d 62 .&optional.ast-node)))..."A.symb
157e0 6f 6c 20 74 61 62 6c 65 20 65 6e 74 72 79 2e 22 0a 20 20 3b 3b 20 4f 6e 65 20 6f 66 20 6a 73 32 ol.table.entry."...;;.One.of.js2
15800 2d 46 55 4e 43 54 49 4f 4e 2c 20 6a 73 32 2d 4c 50 20 28 66 6f 72 20 70 61 72 61 6d 65 74 65 72 -FUNCTION,.js2-LP.(for.parameter
15820 73 29 2c 20 6a 73 32 2d 56 41 52 2c 0a 20 20 3b 3b 20 6a 73 32 2d 4c 45 54 2c 20 6f 72 20 6a 73 s),.js2-VAR,...;;.js2-LET,.or.js
15840 32 2d 43 4f 4e 53 54 0a 20 20 64 65 63 6c 2d 74 79 70 65 0a 20 20 6e 61 6d 65 20 20 3b 20 73 74 2-CONST...decl-type...name..;.st
15860 72 69 6e 67 0a 20 20 61 73 74 2d 6e 6f 64 65 29 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a ring...ast-node).;.a.`js2-node'.
15880 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 0a 20 .(cl-defstruct.(js2-error-node..
158a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 ..............(:include.js2-node
158c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d )................(:constructor.m
158e0 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a ake-js2-error-node.(&key.(type.j
15900 73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ERROR).......................
15920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15940 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 .(pos.(js2-current-token-beg))..
15960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20 20 22 ......................len)))..."
159a0 41 53 54 20 6e 6f 64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 70 61 72 73 65 20 65 72 AST.node.representing.a.parse.er
159c0 72 6f 72 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 72 ror.")..(js2--struct-put.'js2-er
159e0 72 6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 ror-node.'js2-visitor.'js2-visit
15a00 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 72 72 -none).(js2--struct-put.'js2-err
15a20 6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d or-node.'js2-printer.'js2-print-
15a40 6e 6f 6e 65 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 73 63 72 69 70 74 none)..(cl-defstruct.(js2-script
15a60 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a -node................(:include.j
15a80 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 s2-scope)................(:const
15aa0 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 20 28 26 6b 65 ructor.make-js2-script-node.(&ke
15ac0 79 20 28 74 79 70 65 20 6a 73 32 2d 53 43 52 49 50 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 y.(type.js2-SCRIPT).............
15ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15b00 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f ............(pos.(js2-current-to
15b20 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ken-beg)).......................
15b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15b60 20 20 6c 65 6e 29 29 29 0a 20 20 66 75 6e 63 74 69 6f 6e 73 20 20 20 3b 20 4c 69 73 70 20 6c 69 ..len)))...functions...;.Lisp.li
15b80 73 74 20 6f 66 20 6e 65 73 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 72 65 67 65 78 70 73 st.of.nested.functions...regexps
15ba0 20 20 20 20 20 3b 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 28 73 74 72 69 6e 67 20 2e 20 66 6c .....;.Lisp.list.of.(string...fl
15bc0 61 67 73 29 0a 20 20 73 79 6d 62 6f 6c 73 20 20 20 20 20 3b 20 61 6c 69 73 74 20 28 65 76 65 72 ags)...symbols.....;.alist.(ever
15be0 79 20 73 79 6d 62 6f 6c 20 67 65 74 73 20 75 6e 69 71 75 65 20 69 6e 64 65 78 29 0a 20 20 28 70 y.symbol.gets.unique.index)...(p
15c00 61 72 61 6d 2d 63 6f 75 6e 74 20 30 29 0a 20 20 76 61 72 2d 6e 61 6d 65 73 20 20 20 3b 20 76 65 aram-count.0)...var-names...;.ve
15c20 63 74 6f 72 20 6f 66 20 73 74 72 69 6e 67 20 6e 61 6d 65 73 0a 20 20 63 6f 6e 73 74 73 20 20 20 ctor.of.string.names...consts...
15c40 20 20 20 3b 20 62 6f 6f 6c 2d 76 65 63 74 6f 72 20 6d 61 74 63 68 69 6e 67 20 76 61 72 2d 64 65 ...;.bool-vector.matching.var-de
15c60 63 6c 73 0a 20 20 28 74 65 6d 70 2d 6e 75 6d 62 65 72 20 30 29 29 20 20 3b 20 66 6f 72 20 67 65 cls...(temp-number.0))..;.for.ge
15c80 6e 65 72 61 74 69 6e 67 20 74 65 6d 70 20 76 61 72 69 61 62 6c 65 73 0a 0a 28 6a 73 32 2d 2d 73 nerating.temp.variables..(js2--s
15ca0 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 20 27 6a 73 32 2d truct-put.'js2-script-node.'js2-
15cc0 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b 29 0a 28 6a 73 32 2d 2d visitor.'js2-visit-block).(js2--
15ce0 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 20 27 6a 73 32 struct-put.'js2-script-node.'js2
15d00 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 73 63 72 69 70 74 29 0a 0a 28 64 65 -printer.'js2-print-script)..(de
15d20 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 73 63 72 69 70 74 20 28 6e 6f 64 65 20 69 6e 64 65 6e fun.js2-print-script.(node.inden
15d40 74 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 t)...(dolist.(kid.(js2-block-nod
15d60 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 e-kids.node)).....(js2-print-ast
15d80 20 6b 69 64 20 69 6e 64 65 6e 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a .kid.indent)))..(cl-defstruct.(j
15da0 73 32 2d 61 73 74 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 s2-ast-root................(:inc
15dc0 6c 75 64 65 20 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 lude.js2-script-node)...........
15de0 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 73 74 2d .....(:constructor.make-js2-ast-
15e00 72 6f 6f 74 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 53 43 52 49 50 54 29 0a 20 20 20 root.(&key.(type.js2-SCRIPT)....
15e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 ..................(pos.(js2-curr
15e60 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent-token-beg)).................
15e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15ea0 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....len........................
15ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 ..............................bu
15ee0 66 66 65 72 29 29 29 0a 20 20 22 54 68 65 20 72 6f 6f 74 20 6e 6f 64 65 20 6f 66 20 61 20 6a 73 ffer)))..."The.root.node.of.a.js
15f00 32 20 41 53 54 2e 22 0a 20 20 62 75 66 66 65 72 20 20 20 20 20 20 20 20 20 3b 20 74 68 65 20 73 2.AST."...buffer.........;.the.s
15f20 6f 75 72 63 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 63 6f 64 65 ource.buffer.from.which.the.code
15f40 20 77 61 73 20 70 61 72 73 65 64 0a 20 20 63 6f 6d 6d 65 6e 74 73 20 20 20 20 20 20 20 3b 20 61 .was.parsed...comments.......;.a
15f60 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 65 6e 74 73 2c 20 6f 72 64 65 72 65 64 20 .Lisp.list.of.comments,.ordered.
15f80 62 79 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 65 72 72 6f 72 73 20 20 20 20 20 20 by.start.position...errors......
15fa0 20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 65 72 72 6f 72 73 20 66 6f 75 6e 64 ...;.a.Lisp.list.of.errors.found
15fc0 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 0a 20 20 77 61 72 6e 69 6e 67 73 20 20 20 20 20 20 .during.parsing...warnings......
15fe0 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 77 61 72 6e 69 6e 67 73 20 66 6f 75 6e 64 .;.a.Lisp.list.of.warnings.found
16000 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 0a 20 20 6e 6f 64 65 2d 63 6f 75 6e 74 29 20 20 20 .during.parsing...node-count)...
16020 20 3b 20 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 74 68 65 20 74 72 65 65 2c 20 .;.number.of.nodes.in.the.tree,.
16040 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 72 6f 6f 74 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 including.the.root..(js2--struct
16060 2d 70 75 74 20 27 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 -put.'js2-ast-root.'js2-visitor.
16080 27 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 2d 72 6f 6f 74 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 'js2-visit-ast-root).(js2--struc
160a0 74 2d 70 75 74 20 27 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 t-put.'js2-ast-root.'js2-printer
160c0 20 27 6a 73 32 2d 70 72 69 6e 74 2d 73 63 72 69 70 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d .'js2-print-script)..(defun.js2-
160e0 76 69 73 69 74 2d 61 73 74 2d 72 6f 6f 74 20 28 61 73 74 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 visit-ast-root.(ast.callback)...
16100 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 6b 69 64 73 20 (dolist.(kid.(js2-ast-root-kids.
16120 61 73 74 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6b 69 64 20 63 61 6c ast)).....(js2-visit-ast.kid.cal
16140 6c 62 61 63 6b 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 28 6a 73 32 2d lback))...(dolist.(comment.(js2-
16160 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20 61 73 74 29 29 0a 20 20 20 20 28 6a 73 32 ast-root-comments.ast)).....(js2
16180 2d 76 69 73 69 74 2d 61 73 74 20 63 6f 6d 6d 65 6e 74 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a -visit-ast.comment.callback)))..
161a0 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 0a (cl-defstruct.(js2-comment-node.
161c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 ...............(:include.js2-nod
161e0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 e)................(:constructor.
16200 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 make-js2-comment-node.(&key.(typ
16220 65 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.js2-COMMENT)..................
16240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16260 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d ........(pos.(js2-current-token-
16280 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 beg))...........................
162a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c ...............................l
162c0 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en..............................
162e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d ............................form
16300 61 74 29 29 29 0a 20 20 66 6f 72 6d 61 74 29 20 20 3b 20 27 6c 69 6e 65 2c 20 27 62 6c 6f 63 6b at)))...format)..;.'line,.'block
16320 2c 20 27 6a 73 64 6f 63 20 6f 72 20 27 68 74 6d 6c 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d ,.'jsdoc.or.'html..(js2--struct-
16340 70 75 74 20 27 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 put.'js2-comment-node.'js2-visit
16360 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 or.'js2-visit-none).(js2--struct
16380 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e -put.'js2-comment-node.'js2-prin
163a0 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 6d 65 6e 74 29 0a 0a 28 64 65 66 75 6e 20 ter.'js2-print-comment)..(defun.
163c0 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 6d 65 6e 74 20 28 6e 20 69 29 0a 20 20 3b 3b 20 57 65 20 js2-print-comment.(n.i)...;;.We.
163e0 72 65 61 6c 6c 79 20 6f 75 67 68 74 20 74 6f 20 6c 69 6e 6b 20 65 6e 64 2d 6f 66 2d 6c 69 6e 65 really.ought.to.link.end-of-line
16400 20 63 6f 6d 6d 65 6e 74 73 20 74 6f 20 74 68 65 69 72 20 6e 6f 64 65 73 2e 0a 20 20 3b 3b 20 4f .comments.to.their.nodes....;;.O
16420 72 20 6d 61 79 62 65 20 77 65 20 63 6f 75 6c 64 20 61 64 64 20 61 20 6e 65 77 20 63 6f 6d 6d 65 r.maybe.we.could.add.a.new.comme
16440 6e 74 20 74 79 70 65 2c 20 27 65 6e 64 6c 69 6e 65 2e 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 nt.type,.'endline....(insert.(js
16460 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 2-make-pad.i)...........(js2-nod
16480 65 2d 73 74 72 69 6e 67 20 6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 e-string.n)))..(cl-defstruct.(js
164a0 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-expr-stmt-node................
164c0 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (:include.js2-node).............
164e0 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72 2d 73 ...(:constructor.make-js2-expr-s
16500 74 6d 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 45 58 50 52 5f 56 4f tmt-node.(&key.(type.js2-EXPR_VO
16520 49 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ID).............................
16540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
16560 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.js2-ts-cursor)..............
16580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
165a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............len...............
165c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
165e0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 29 29 29 0a 20 20 22 41 6e 20 65 78 70 72 65 .............expr)))..."An.expre
16600 73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 65 78 70 72 29 0a 0a 28 64 65 66 73 ssion.statement."...expr)..(defs
16620 75 62 73 74 20 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 65 74 2d 68 61 73 2d ubst.js2-expr-stmt-node-set-has-
16640 72 65 73 75 6c 74 20 28 6e 6f 64 65 29 0a 20 20 22 43 68 61 6e 67 65 20 4e 4f 44 45 20 74 79 70 result.(node)..."Change.NODE.typ
16660 65 20 74 6f 20 60 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 27 2e 20 20 55 73 65 64 20 66 6f e.to.`js2-EXPR_RESULT'...Used.fo
16680 72 20 63 6f 64 65 20 67 65 6e 65 72 61 74 69 6f 6e 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32 r.code.generation."...(setf.(js2
166a0 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f 64 65 29 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 -node-type.node).js2-EXPR_RESULT
166c0 29 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 78 70 72 2d 73 ))..(js2--struct-put.'js2-expr-s
166e0 74 6d 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 tmt-node.'js2-visitor.'js2-visit
16700 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 -expr-stmt-node).(js2--struct-pu
16720 74 20 27 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 t.'js2-expr-stmt-node.'js2-print
16740 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 29 0a 0a 28 er.'js2-print-expr-stmt-node)..(
16760 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 28 defun.js2-visit-expr-stmt-node.(
16780 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 65 78 70 72 2d n.v)...(js2-visit-ast.(js2-expr-
167a0 73 74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 stmt-node-expr.n).v))..(defun.js
167c0 32 2d 70 72 69 6e 74 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 28 6e 20 69 6e 64 65 6e 74 2-print-expr-stmt-node.(n.indent
167e0 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d )...(js2-print-ast.(js2-expr-stm
16800 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 69 6e 64 65 6e 74 29 0a 20 20 28 69 6e 73 65 72 74 t-node-expr.n).indent)...(insert
16820 20 22 3b 5c 6e 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6c 6f 6f .";\n"))..(cl-defstruct.(js2-loo
16840 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 p-node................(:include.
16860 6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 js2-scope)................(:cons
16880 74 72 75 63 74 6f 72 20 6e 69 6c 29 29 0a 20 20 22 41 62 73 74 72 61 63 74 20 73 75 70 65 72 74 tructor.nil))..."Abstract.supert
168a0 79 70 65 20 6f 66 20 6c 6f 6f 70 20 6e 6f 64 65 73 2e 22 0a 20 20 62 6f 64 79 20 20 20 20 20 20 ype.of.loop.nodes."...body......
168c0 3b 20 61 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 27 0a 20 20 6c 70 20 20 20 20 20 20 20 ;.a.`js2-block-node'...lp.......
168e0 20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 .;.position.of.left-paren,.nil.i
16900 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 29 20 20 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e f.omitted...rp).......;.position
16920 20 6f 66 20 72 69 67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a .of.right-paren,.nil.if.omitted.
16940 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 0a 20 20 20 20 .(cl-defstruct.(js2-do-node.....
16960 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f ...........(:include.js2-loop-no
16980 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 de)................(:constructor
169a0 20 6d 61 6b 65 2d 6a 73 32 2d 64 6f 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 .make-js2-do-node.(&key.(type.js
169c0 32 2d 44 4f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-DO)...........................
169e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 ..........................(pos.(
16a00 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 js2-current-token-beg)).........
16a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16a40 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............len.................
16a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16a80 20 20 20 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....body........................
16aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e .............................con
16ac0 64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dition..........................
16ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 ...........................while
16b00 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pos............................
16b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 0a 20 20 20 20 .........................lp.....
16b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 ................rp)))..."AST.nod
16b80 65 20 66 6f 72 20 64 6f 2d 6c 6f 6f 70 2e 22 0a 20 20 63 6f 6e 64 69 74 69 6f 6e 20 20 3b 20 77 e.for.do-loop."...condition..;.w
16ba0 68 69 6c 65 20 28 65 78 70 72 65 73 73 69 6f 6e 29 0a 20 20 77 68 69 6c 65 2d 70 6f 73 29 20 3b hile.(expression)...while-pos).;
16bc0 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 77 68 69 6c 65 27 20 6b 65 79 77 .buffer.position.of.'while'.keyw
16be0 6f 72 64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 64 6f 2d 6e 6f ord..(js2--struct-put.'js2-do-no
16c00 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 64 6f 2d 6e 6f de.'js2-visitor.'js2-visit-do-no
16c20 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 64 6f 2d 6e 6f 64 de).(js2--struct-put.'js2-do-nod
16c40 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 64 6f 2d 6e 6f 64 e.'js2-printer.'js2-print-do-nod
16c60 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 64 6f 2d 6e 6f 64 65 20 28 6e 20 e)..(defun.js2-visit-do-node.(n.
16c80 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 v)...(js2-visit-ast.(js2-do-node
16ca0 2d 62 6f 64 79 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 -body.n).v)...(js2-visit-ast.(js
16cc0 32 2d 64 6f 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 2-do-node-condition.n).v))..(def
16ce0 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 64 6f 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 un.js2-print-do-node.(n.i)...(le
16d00 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28 t.((pad.(js2-make-pad.i))).....(
16d20 69 6e 73 65 72 74 20 70 61 64 20 22 64 6f 20 7b 5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 insert.pad."do.{\n").....(dolist
16d40 20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 28 6a 73 32 2d .(kid.(js2-block-node-kids.(js2-
16d60 64 6f 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 do-node-body.n))).......(js2-pri
16d80 6e 74 2d 61 73 74 20 6b 69 64 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 nt-ast.kid.(1+.i))).....(insert.
16da0 70 61 64 20 22 7d 20 77 68 69 6c 65 20 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d pad."}.while.(").....(js2-print-
16dc0 61 73 74 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 29 20 30 29 ast.(js2-do-node-condition.n).0)
16de0 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 3b 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 .....(insert.");\n")))..(cl-defs
16e00 74 72 75 63 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 truct.(js2-export-node..........
16e20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 ......(:include.js2-node).......
16e40 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d .........(:constructor.make-js2-
16e60 65 78 70 6f 72 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 45 58 50 4f export-node.(&key.(type.js2-EXPO
16e80 52 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RT).............................
16ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 ............................(pos
16ec0 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 .(js2-current-token-beg)).......
16ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ..................len...........
16f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a 20 20 20 20 20 ..............exports-list......
16f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 ...................from-clause..
16fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 .......................declarati
16fe0 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on..............................
17000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 ...........................defau
17020 6c 74 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 65 78 70 6f 72 74 20 lt)))..."AST.node.for.an.export.
17040 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 65 72 65 20 61 72 65 20 6d 61 6e 79 20 74 68 69 6e 67 73 statement..There.are.many.things
17060 20 74 68 61 74 20 63 61 6e 20 62 65 20 65 78 70 6f 72 74 65 64 2c 0a 73 6f 20 6d 61 6e 79 20 6f .that.can.be.exported,.so.many.o
17080 66 20 69 74 73 20 70 72 6f 70 65 72 74 69 65 73 20 77 69 6c 6c 20 62 65 20 6e 69 6c 2e 0a 22 0a f.its.properties.will.be.nil..".
170a0 20 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 3b 20 6c 69 73 70 20 6c 69 73 74 20 6f 66 20 6a 73 ..exports-list.;.lisp.list.of.js
170c0 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 74 6f 20 65 78 70 6f 72 74 0a 2-export-binding-node.to.export.
170e0 20 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 3b 20 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d ..from-clause.;.js2-from-clause-
17100 6e 6f 64 65 20 66 6f 72 20 72 65 2d 65 78 70 6f 72 74 69 6e 67 20 73 79 6d 62 6f 6c 73 20 66 72 node.for.re-exporting.symbols.fr
17120 6f 6d 20 61 6e 6f 74 68 65 72 20 6d 6f 64 75 6c 65 0a 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 om.another.module...declaration.
17140 3b 20 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 20 28 76 61 72 2c 20 6c 65 74 2c 20 63 ;.js2-var-decl-node.(var,.let,.c
17160 6f 6e 73 74 29 20 6f 72 20 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 0a 20 20 64 65 66 61 75 6c onst).or.js2-class-node...defaul
17180 74 29 20 3b 20 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 6f 72 20 6a 73 32 2d 61 73 t).;.js2-function-node.or.js2-as
171a0 73 69 67 6e 2d 6e 6f 64 65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 sign-node..(js2--struct-put.'js2
171c0 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 -export-node.'js2-visitor.'js2-v
171e0 69 73 69 74 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 isit-export-node).(js2--struct-p
17200 75 74 20 27 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 ut.'js2-export-node.'js2-printer
17220 20 27 6a 73 32 2d 70 72 69 6e 74 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e .'js2-print-export-node)..(defun
17240 20 6a 73 32 2d 76 69 73 69 74 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 .js2-visit-export-node.(n.v)...(
17260 6c 65 74 20 28 28 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e let.((exports-list.(js2-export-n
17280 6f 64 65 2d 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 72 ode-exports-list.n)).........(fr
172a0 6f 6d 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 20 om.(js2-export-node-from-clause.
172c0 6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 65 78 n)).........(declaration.(js2-ex
172e0 70 6f 72 74 2d 6e 6f 64 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 20 6e 29 29 0a 20 20 20 20 20 20 port-node-declaration.n)).......
17300 20 20 28 64 65 66 61 75 6c 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 64 65 66 61 ..(default.(js2-export-node-defa
17320 75 6c 74 20 6e 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a ult.n))).....(when.exports-list.
17340 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 78 70 6f 72 74 20 65 78 70 6f 72 74 73 2d 6c 69 ......(dolist.(export.exports-li
17360 73 74 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 65 78 70 6f 72 st).........(js2-visit-ast.expor
17380 74 20 76 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 66 72 6f 6d 0a 20 20 20 20 20 20 28 6a 73 32 t.v))).....(when.from.......(js2
173a0 2d 76 69 73 69 74 2d 61 73 74 20 66 72 6f 6d 20 76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 -visit-ast.from.v)).....(when.de
173c0 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 64 claration.......(js2-visit-ast.d
173e0 65 63 6c 61 72 61 74 69 6f 6e 20 76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 eclaration.v)).....(when.default
17400 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 64 65 66 61 75 6c 74 20 76 29 .......(js2-visit-ast.default.v)
17420 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 65 78 70 6f 72 74 2d 6e 6f 64 )))..(defun.js2-print-export-nod
17440 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 e.(n.i)...(let.((pad.(js2-make-p
17460 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 28 6a 73 ad.i)).........(exports-list.(js
17480 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 6e 29 29 0a 20 2-export-node-exports-list.n))..
174a0 20 20 20 20 20 20 20 28 66 72 6f 6d 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 66 72 .......(from.(js2-export-node-fr
174c0 6f 6d 2d 63 6c 61 75 73 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 63 6c 61 72 61 74 69 om-clause.n)).........(declarati
174e0 6f 6e 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 20 on.(js2-export-node-declaration.
17500 6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 n)).........(default.(js2-export
17520 2d 6e 6f 64 65 2d 64 65 66 61 75 6c 74 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 -node-default.n))).....(insert.p
17540 61 64 20 22 65 78 70 6f 72 74 20 22 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 64 65 ad."export.").....(cond......(de
17560 66 61 75 6c 74 0a 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 64 65 66 61 75 6c 74 20 22 29 fault........(insert."default.")
17580 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64 65 66 61 75 6c 74 20 69 ........(js2-print-ast.default.i
175a0 29 29 0a 20 20 20 20 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 6a 73 32 ))......(declaration........(js2
175c0 2d 70 72 69 6e 74 2d 61 73 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 29 29 0a 20 20 20 20 20 -print-ast.declaration.i))......
175e0 28 28 61 6e 64 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 66 72 6f 6d 29 0a 20 20 20 20 20 20 28 ((and.exports-list.from).......(
17600 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 65 78 70 6f 72 74 73 2d js2-print-named-imports.exports-
17620 6c 69 73 74 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 20 20 28 list).......(insert.".").......(
17640 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 20 66 72 6f 6d 29 29 0a 20 20 20 js2-print-from-clause.from))....
17660 20 20 28 66 72 6f 6d 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 20 22 29 0a 20 20 20 20 ..(from.......(insert."*.").....
17680 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 20 66 72 6f 6d 29 29 0a ..(js2-print-from-clause.from)).
176a0 20 20 20 20 20 28 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 .....(exports-list.......(js2-pr
176c0 69 6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 29 29 int-named-imports.exports-list))
176e0 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 61 6e 64 20 64 65 66 61 75 6c 74 20 28 ).....(unless.(or.(and.default.(
17700 6e 6f 74 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 29 not.(js2-assign-node-p.default))
17720 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 64 65 63 6c 61 72 61 74 69 ).................(and.declarati
17740 6f 6e 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 64 65 63 6c on.(or.(js2-function-node-p.decl
17760 61 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aration)........................
17780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 70 20 ..............(js2-class-node-p.
177a0 64 65 63 6c 61 72 61 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3b declaration)))).......(insert.";
177c0 5c 6e 22 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 77 68 69 6c \n"))))..(cl-defstruct.(js2-whil
177e0 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 e-node................(:include.
17800 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a js2-loop-node)................(:
17820 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 constructor.make-js2-while-node.
17840 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 57 48 49 4c 45 29 0a 20 20 20 20 20 20 20 20 20 (&key.(type.js2-WHILE)..........
17860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d ..............(pos.(js2-current-
178a0 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 token-beg)).....................
178c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
178e0 20 20 20 6c 65 6e 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...len.body.....................
17900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17920 20 20 20 63 6f 6e 64 69 74 69 6f 6e 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...condition.lp.................
17940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17960 20 20 20 20 20 20 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 77 68 69 .......rp)))..."AST.node.for.whi
17980 6c 65 2d 6c 6f 6f 70 2e 22 0a 20 20 63 6f 6e 64 69 74 69 6f 6e 29 20 20 20 20 3b 20 77 68 69 6c le-loop."...condition)....;.whil
179a0 65 2d 63 6f 6e 64 69 74 69 6f 6e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a e-condition..(js2--struct-put.'j
179c0 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d s2-while-node.'js2-visitor.'js2-
179e0 76 69 73 69 74 2d 77 68 69 6c 65 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 visit-while-node).(js2--struct-p
17a00 75 74 20 27 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 ut.'js2-while-node.'js2-printer.
17a20 27 6a 73 32 2d 70 72 69 6e 74 2d 77 68 69 6c 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 'js2-print-while-node)..(defun.j
17a40 73 32 2d 76 69 73 69 74 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 s2-visit-while-node.(n.v)...(js2
17a60 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69 -visit-ast.(js2-while-node-condi
17a80 74 69 6f 6e 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 tion.n).v)...(js2-visit-ast.(js2
17aa0 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 -while-node-body.n).v))..(defun.
17ac0 6a 73 32 2d 70 72 69 6e 74 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 js2-print-while-node.(n.i)...(le
17ae0 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28 t.((pad.(js2-make-pad.i))).....(
17b00 69 6e 73 65 72 74 20 70 61 64 20 22 77 68 69 6c 65 20 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 insert.pad."while.(").....(js2-p
17b20 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 rint-ast.(js2-while-node-conditi
17b40 6f 6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20 on.n).0).....(insert.").{\n")...
17b60 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 ..(js2-print-body.(js2-while-nod
17b80 65 2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 e-body.n).(1+.i)).....(insert.pa
17ba0 64 20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 d."}\n")))..(cl-defstruct.(js2-f
17bc0 6f 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 or-node................(:include
17be0 20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .js2-loop-node)................(
17c00 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 28 :constructor.make-js2-for-node.(
17c20 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 &key.(type.js2-FOR).............
17c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17c60 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 .........(pos.js2-ts-cursor)....
17c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 62 6f 64 79 20 69 6e 69 74 0a ..................len.body.init.
17cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 0a 20 .....................condition..
17d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 70 64 61 74 65 20 6c 70 20 72 70 ....................update.lp.rp
17d40 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 43 2d 73 74 79 6c 65 20 66 6f )))..."AST.node.for.a.C-style.fo
17d60 72 2d 6c 6f 6f 70 2e 22 0a 20 20 69 6e 69 74 20 20 20 20 20 20 20 3b 20 69 6e 69 74 69 61 6c 69 r-loop."...init.......;.initiali
17d80 7a 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 63 6f 6e 64 69 74 69 6f 6e 20 20 3b zation.expression...condition..;
17da0 20 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e 0a 20 20 75 70 64 61 74 65 29 20 20 20 20 3b 20 75 .loop.condition...update)....;.u
17dc0 70 64 61 74 65 20 63 6c 61 75 73 65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 pdate.clause..(js2--struct-put.'
17de0 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 js2-for-node.'js2-visitor.'js2-v
17e00 69 73 69 74 2d 66 6f 72 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 isit-for-node).(js2--struct-put.
17e20 27 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 'js2-for-node.'js2-printer.'js2-
17e40 70 72 69 6e 74 2d 66 6f 72 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 print-for-node)..(defun.js2-visi
17e60 74 2d 66 6f 72 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 t-for-node.(n.v)...(js2-visit-as
17e80 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 69 6e 69 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 t.(js2-for-node-init.n).v)...(js
17ea0 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 2-visit-ast.(js2-for-node-condit
17ec0 69 6f 6e 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ion.n).v)...(js2-visit-ast.(js2-
17ee0 66 6f 72 2d 6e 6f 64 65 2d 75 70 64 61 74 65 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 for-node-update.n).v)...(js2-vis
17f00 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 it-ast.(js2-for-node-body.n).v))
17f20 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 66 6f 72 2d 6e 6f 64 65 20 28 6e 20 69 ..(defun.js2-print-for-node.(n.i
17f40 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 )...(let.((pad.(js2-make-pad.i))
17f60 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 66 6f 72 20 28 22 29 0a 20 20 20 20 28 ).....(insert.pad."for.(").....(
17f80 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 69 6e 69 74 js2-print-ast.(js2-for-node-init
17fa0 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 3b 20 22 29 0a 20 20 20 20 28 6a 73 .n).0).....(insert.";.").....(js
17fc0 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 2-print-ast.(js2-for-node-condit
17fe0 69 6f 6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 3b 20 22 29 0a 20 20 20 20 ion.n).0).....(insert.";.").....
18000 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 75 70 64 (js2-print-ast.(js2-for-node-upd
18020 61 74 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 ate.n).0).....(insert.").{\n")..
18040 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 ...(js2-print-body.(js2-for-node
18060 2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 -body.n).(1+.i)).....(insert.pad
18080 20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 6f ."}\n")))..(cl-defstruct.(js2-fo
180a0 72 2d 69 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 r-in-node................(:inclu
180c0 64 65 20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de.js2-loop-node)...............
180e0 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e .(:constructor.make-js2-for-in-n
18100 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20 ode.(&key.(type.js2-FOR)........
18120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 .................(pos.js2-ts-cur
18160 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sor)............................
18180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e .............................len
181a0 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .body...........................
181c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 74 ..............................it
181e0 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erator..........................
18200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f ...............................o
18220 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bject...........................
18240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e ..............................in
18260 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pos............................
18280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 .............................eac
182a0 68 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-pos...........................
182c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 77 ..............................aw
182e0 61 69 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ait-pos.........................
18300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18320 66 6f 72 65 61 63 68 2d 70 20 66 6f 72 6f 66 2d 70 20 66 6f 72 61 77 61 69 74 2d 70 0a 20 20 20 foreach-p.forof-p.forawait-p....
18340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 .....................lp.rp)))...
18380 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 66 6f 72 2e 2e 69 6e 20 6c 6f 6f 70 2e 22 0a 20 "AST.node.for.a.for..in.loop."..
183a0 20 69 74 65 72 61 74 6f 72 20 20 3b 20 5b 76 61 72 5d 20 66 6f 6f 20 69 6e 20 2e 2e 2e 0a 20 20 .iterator..;.[var].foo.in.......
183c0 6f 62 6a 65 63 74 20 20 20 20 3b 20 6f 62 6a 65 63 74 20 6f 76 65 72 20 77 68 69 63 68 20 77 65 object....;.object.over.which.we
183e0 27 72 65 20 69 74 65 72 61 74 69 6e 67 0a 20 20 69 6e 2d 70 6f 73 20 20 20 20 3b 20 62 75 66 66 're.iterating...in-pos....;.buff
18400 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 69 6e 27 20 6b 65 79 77 6f 72 64 0a 20 20 65 61 er.position.of.'in'.keyword...ea
18420 63 68 2d 70 6f 73 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 65 61 ch-pos..;.buffer.position.of.'ea
18440 63 68 27 20 6b 65 79 77 6f 72 64 2c 20 69 66 20 66 6f 72 65 61 63 68 2d 70 0a 20 20 61 77 61 69 ch'.keyword,.if.foreach-p...awai
18460 74 2d 70 6f 73 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 61 77 61 t-pos..;.buffer.position.of.'awa
18480 69 74 27 20 6b 65 79 77 6f 72 64 2c 20 69 66 20 66 6f 72 61 77 61 69 74 2d 70 0a 20 20 66 6f 72 it'.keyword,.if.forawait-p...for
184a0 65 61 63 68 2d 70 20 3b 20 74 20 69 66 20 69 74 27 73 20 61 20 66 6f 72 2d 65 61 63 68 20 6c 6f each-p.;.t.if.it's.a.for-each.lo
184c0 6f 70 0a 20 20 66 6f 72 61 77 61 69 74 2d 70 20 3b 20 74 20 69 66 20 69 74 27 73 20 61 20 66 6f op...forawait-p.;.t.if.it's.a.fo
184e0 72 2d 61 77 61 69 74 20 6c 6f 6f 70 0a 20 20 66 6f 72 6f 66 2d 70 29 20 20 3b 20 74 20 69 66 20 r-await.loop...forof-p)..;.t.if.
18500 69 74 27 73 20 61 20 66 6f 72 2d 6f 66 20 6c 6f 6f 70 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 it's.a.for-of.loop..(js2--struct
18520 2d 70 75 74 20 27 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 -put.'js2-for-in-node.'js2-visit
18540 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d or.'js2-visit-for-in-node).(js2-
18560 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20 27 6a 73 -struct-put.'js2-for-in-node.'js
18580 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2-printer.'js2-print-for-in-node
185a0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20 )..(defun.js2-visit-for-in-node.
185c0 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d (n.v)...(js2-visit-ast.(js2-for-
185e0 69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 in-node-iterator.n).v)...(js2-vi
18600 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 6f 62 6a 65 63 74 20 sit-ast.(js2-for-in-node-object.
18620 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d n).v)...(js2-visit-ast.(js2-for-
18640 69 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d in-node-body.n).v))..(defun.js2-
18660 70 72 69 6e 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 print-for-in-node.(n.i)...(let.(
18680 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 (pad.(js2-make-pad.i)).........(
186a0 66 6f 72 65 61 63 68 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 65 61 63 68 foreach.(js2-for-in-node-foreach
186c0 2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 61 77 61 69 74 20 28 6a 73 32 2d 66 6f -p.n)).........(forawait.(js2-fo
186e0 72 2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 61 77 61 69 74 2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20 r-in-node-forawait-p.n))........
18700 20 28 66 6f 72 6f 66 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 6f 66 2d 70 .(forof.(js2-for-in-node-forof-p
18720 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 66 6f 72 20 22 29 0a 20 20 .n))).....(insert.pad."for.")...
18740 20 20 28 69 66 20 66 6f 72 65 61 63 68 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 65 ..(if.foreach.........(insert."e
18760 61 63 68 20 22 29 29 0a 20 20 20 20 28 69 66 20 66 6f 72 61 77 61 69 74 0a 20 20 20 20 20 20 20 ach.")).....(if.forawait........
18780 20 28 69 6e 73 65 72 74 20 22 61 77 61 69 74 20 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 .(insert."await.")).....(insert.
187a0 22 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 "(").....(js2-print-ast.(js2-for
187c0 2d 69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 -in-node-iterator.n).0).....(ins
187e0 65 72 74 20 28 69 66 20 66 6f 72 6f 66 20 22 20 6f 66 20 22 20 22 20 69 6e 20 22 29 29 0a 20 20 ert.(if.forof.".of.".".in."))...
18800 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 ..(js2-print-ast.(js2-for-in-nod
18820 65 2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c e-object.n).0).....(insert.").{\
18840 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 66 6f 72 n").....(js2-print-body.(js2-for
18860 2d 69 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e -in-node-body.n).(1+.i)).....(in
18880 73 65 72 74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 sert.pad."}\n")))..(cl-defstruct
188a0 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(js2-return-node...............
188c0 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(:include.js2-node)............
188e0 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 72 65 74 75 72 ....(:constructor.make-js2-retur
18900 6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 52 45 54 55 52 4e 29 0a 20 n-node.(&key.(type.js2-RETURN)..
18920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d .......................(pos.js2-
18960 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ts-cursor)......................
18980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
189a0 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...len..........................
189c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ...............................r
189e0 65 74 76 61 6c 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 72 65 74 75 72 etval)))..."AST.node.for.a.retur
18a00 6e 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 72 65 74 76 61 6c 29 20 20 3b 20 65 78 70 72 65 n.statement."...retval)..;.expre
18a20 73 73 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 2c 20 6f 72 20 27 75 6e 64 65 66 69 6e 65 64 0a 0a ssion.to.return,.or.'undefined..
18a40 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 (js2--struct-put.'js2-return-nod
18a60 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 72 65 74 75 72 6e e.'js2-visitor.'js2-visit-return
18a80 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 72 65 74 -node).(js2--struct-put.'js2-ret
18aa0 75 72 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 urn-node.'js2-printer.'js2-print
18ac0 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d -return-node)..(defun.js2-visit-
18ae0 72 65 74 75 72 6e 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 return-node.(n.v)...(js2-visit-a
18b00 73 74 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 2d 72 65 74 76 61 6c 20 6e 29 20 76 29 st.(js2-return-node-retval.n).v)
18b20 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 20 )..(defun.js2-print-return-node.
18b40 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 (n.i)...(insert.(js2-make-pad.i)
18b60 20 22 72 65 74 75 72 6e 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e ."return")...(when.(js2-return-n
18b80 6f 64 65 2d 72 65 74 76 61 6c 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 ode-retval.n).....(insert.".")..
18ba0 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f ...(js2-print-ast.(js2-return-no
18bc0 64 65 2d 72 65 74 76 61 6c 20 6e 29 20 30 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e 22 de-retval.n).0))...(insert.";\n"
18be0 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 0a 20 ))..(cl-defstruct.(js2-if-node..
18c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 ..............(:include.js2-node
18c20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d )................(:constructor.m
18c40 61 6b 65 2d 6a 73 32 2d 69 66 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d ake-js2-if-node.(&key.(type.js2-
18c60 49 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 IF).............................
18c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 ........................(pos.js2
18ca0 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ts-cursor).....................
18cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18ce0 6c 65 6e 20 63 6f 6e 64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 len.condition...................
18d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18d20 20 20 74 68 65 6e 2d 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..then-part.....................
18d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18d60 65 6c 73 65 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 else-pos........................
18d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 .............................els
18da0 65 2d 70 61 72 74 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-part.lp.......................
18dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 70 ..............................rp
18de0 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 69 66 2d 73 74 61 74 65 6d )))..."AST.node.for.an.if-statem
18e00 65 6e 74 2e 22 0a 20 20 63 6f 6e 64 69 74 69 6f 6e 20 20 20 3b 20 65 78 70 72 65 73 73 69 6f 6e ent."...condition...;.expression
18e20 0a 20 20 74 68 65 6e 2d 70 61 72 74 20 20 20 3b 20 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 62 6c ...then-part...;.statement.or.bl
18e40 6f 63 6b 0a 20 20 65 6c 73 65 2d 70 6f 73 20 20 20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 62 75 66 ock...else-pos....;.optional.buf
18e60 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 65 6c 73 65 27 20 6b 65 79 77 6f 72 64 0a 20 fer.position.of.'else'.keyword..
18e80 20 65 6c 73 65 2d 70 61 72 74 20 20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 73 74 61 74 65 6d 65 6e .else-part...;.optional.statemen
18ea0 74 20 6f 72 20 62 6c 6f 63 6b 0a 20 20 6c 70 20 20 20 20 20 20 20 20 20 20 3b 20 70 6f 73 69 74 t.or.block...lp..........;.posit
18ec0 69 6f 6e 20 6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 ion.of.left-paren,.nil.if.omitte
18ee0 64 0a 20 20 72 70 29 20 20 20 20 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 72 69 d...rp).........;.position.of.ri
18f00 67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73 32 2d ght-paren,.nil.if.omitted..(js2-
18f20 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 -struct-put.'js2-if-node.'js2-vi
18f40 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 66 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d sitor.'js2-visit-if-node).(js2--
18f60 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 struct-put.'js2-if-node.'js2-pri
18f80 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 69 66 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e nter.'js2-print-if-node)..(defun
18fa0 20 6a 73 32 2d 76 69 73 69 74 2d 69 66 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d .js2-visit-if-node.(n.v)...(js2-
18fc0 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f 6e visit-ast.(js2-if-node-condition
18fe0 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d .n).v)...(js2-visit-ast.(js2-if-
19000 6e 6f 64 65 2d 74 68 65 6e 2d 70 61 72 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 node-then-part.n).v)...(js2-visi
19020 74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 65 6c 73 65 2d 70 61 72 74 20 6e 29 20 t-ast.(js2-if-node-else-part.n).
19040 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 69 66 2d 6e 6f 64 65 20 28 6e v))..(defun.js2-print-if-node.(n
19060 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 .i)...(let.((pad.(js2-make-pad.i
19080 29 29 0a 20 20 20 20 20 20 20 20 28 74 68 65 6e 2d 70 61 72 74 20 28 6a 73 32 2d 69 66 2d 6e 6f )).........(then-part.(js2-if-no
190a0 64 65 2d 74 68 65 6e 2d 70 61 72 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 6c 73 65 2d 70 de-then-part.n)).........(else-p
190c0 61 72 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 65 6c 73 65 2d 70 61 72 74 20 6e 29 29 29 0a art.(js2-if-node-else-part.n))).
190e0 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 69 66 20 28 22 29 0a 20 20 20 20 28 6a 73 32 ....(insert.pad."if.(").....(js2
19100 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f -print-ast.(js2-if-node-conditio
19120 6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20 20 n.n).0).....(insert.").{\n")....
19140 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 74 68 65 6e 2d 70 61 72 74 20 28 31 2b 20 69 .(js2-print-body.then-part.(1+.i
19160 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d 22 29 0a 20 20 20 20 28 63 6f 6e )).....(insert.pad."}").....(con
19180 64 0a 20 20 20 20 20 28 28 6e 6f 74 20 65 6c 73 65 2d 70 61 72 74 29 0a 20 20 20 20 20 20 28 69 d......((not.else-part).......(i
191a0 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d nsert."\n"))......((js2-if-node-
191c0 70 20 65 6c 73 65 2d 70 61 72 74 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 65 6c 73 p.else-part).......(insert.".els
191e0 65 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 65 6c 73 65 2d e.").......(js2-print-body.else-
19200 70 61 72 74 20 69 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 part.i))......(t.......(insert."
19220 20 65 6c 73 65 20 7b 5c 6e 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 .else.{\n").......(js2-print-bod
19240 79 20 65 6c 73 65 2d 70 61 72 74 20 28 31 2b 20 69 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 y.else-part.(1+.i)).......(inser
19260 74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 t.pad."}\n")))))..(cl-defstruct.
19280 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 (js2-export-binding-node........
192a0 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 ........(:include.js2-node).....
192c0 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 ...........(:constructor.make-js
192e0 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 2-export-binding-node.(&key.(typ
19300 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.-1)...........................
19320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19340 20 20 20 20 20 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......pos.......................
19360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19380 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........len...................
193a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
193c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 ..............local-name........
193e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65 72 6e 2d .........................extern-
19420 6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 65 78 74 65 72 name)))..."AST.node.for.an.exter
19440 6e 61 6c 20 73 79 6d 62 6f 6c 20 62 69 6e 64 69 6e 67 2e 0a 49 74 20 63 6f 6e 74 61 69 6e 73 20 nal.symbol.binding..It.contains.
19460 61 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 6f 64 65 20 77 68 69 63 68 20 69 73 20 74 68 65 20 6e a.local-name.node.which.is.the.n
19480 61 6d 65 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20 ame.of.the.value.in.the.current.
194a0 73 63 6f 70 65 2c 20 61 6e 64 20 65 78 74 65 72 6e 2d 6e 61 6d 65 20 77 68 69 63 68 20 69 73 20 scope,.and.extern-name.which.is.
194c0 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65 0a 69 6d 70 the.name.of.the.value.in.the.imp
194e0 6f 72 74 65 64 20 6f 72 20 65 78 70 6f 72 74 65 64 20 73 63 6f 70 65 2e 20 42 79 20 64 65 66 61 orted.or.exported.scope..By.defa
19500 75 6c 74 20 74 68 65 73 65 20 61 72 65 20 74 68 65 20 73 61 6d 65 2c 20 62 75 74 20 69 66 20 74 ult.these.are.the.same,.but.if.t
19520 68 65 0a 6e 61 6d 65 20 69 73 20 61 6c 69 61 73 65 64 20 61 73 20 69 6e 20 7b 66 6f 6f 20 61 73 he.name.is.aliased.as.in.{foo.as
19540 20 62 61 72 7d 2c 20 69 74 20 77 6f 75 6c 64 20 68 61 76 65 20 61 6e 20 65 78 74 65 72 6e 2d 6e .bar},.it.would.have.an.extern-n
19560 61 6d 65 20 6e 6f 64 65 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 60 66 6f 6f 27 20 61 6e 64 20 61 20 ame.node.containing.`foo'.and.a.
19580 6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 6f 64 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 60 62 61 72 27 local-name.node.containing.`bar'
195a0 2e 22 0a 20 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 3b 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 ."...local-name.;.js2-name-node.
195c0 77 69 74 68 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 6e 20 74 68 69 73 20 73 with.the.variable.name.in.this.s
195e0 63 6f 70 65 0a 20 20 65 78 74 65 72 6e 2d 6e 61 6d 65 29 20 20 20 3b 20 6a 73 32 2d 6e 61 6d 65 cope...extern-name)...;.js2-name
19600 2d 6e 6f 64 65 20 77 69 74 68 20 74 68 65 20 76 61 6c 75 65 20 6e 61 6d 65 20 69 6e 20 74 68 65 -node.with.the.value.name.in.the
19620 20 65 78 70 6f 72 74 69 6e 67 20 6d 6f 64 75 6c 65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d .exporting.module..(js2--struct-
19640 70 75 74 20 27 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 27 6a 73 put.'js2-export-binding-node.'js
19660 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 65 78 74 65 72 6e 2d 62 69 6e 64 2-printer.'js2-print-extern-bind
19680 69 6e 67 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 78 70 6f 72 ing).(js2--struct-put.'js2-expor
196a0 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 t-binding-node.'js2-visitor.'js2
196c0 2d 76 69 73 69 74 2d 65 78 74 65 72 6e 2d 62 69 6e 64 69 6e 67 29 0a 0a 28 64 65 66 75 6e 20 6a -visit-extern-binding)..(defun.j
196e0 73 32 2d 76 69 73 69 74 2d 65 78 74 65 72 6e 2d 62 69 6e 64 69 6e 67 20 28 6e 20 76 29 0a 20 20 s2-visit-extern-binding.(n.v)...
19700 22 56 69 73 69 74 20 61 6e 20 65 78 74 65 72 6e 20 62 69 6e 64 69 6e 67 20 6e 6f 64 65 2e 20 46 "Visit.an.extern.binding.node..F
19720 69 72 73 74 20 76 69 73 69 74 20 74 68 65 20 6c 6f 63 61 6c 2d 6e 61 6d 65 2c 20 61 6e 64 2c 20 irst.visit.the.local-name,.and,.
19740 69 66 0a 64 69 66 66 65 72 65 6e 74 2c 20 76 69 73 69 74 20 74 68 65 20 65 78 74 65 72 6e 2d 6e if.different,.visit.the.extern-n
19760 61 6d 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6e 61 6d 65 20 28 6a 73 32 2d 65 ame."...(let.((local-name.(js2-e
19780 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 29 xport-binding-node-local-name.n)
197a0 29 0a 20 20 20 20 20 20 20 20 28 65 78 74 65 72 6e 2d 6e 61 6d 65 20 28 6a 73 32 2d 65 78 70 6f ).........(extern-name.(js2-expo
197c0 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d 65 20 6e 29 29 29 rt-binding-node-extern-name.n)))
197e0 0a 20 20 20 20 28 77 68 65 6e 20 6c 6f 63 61 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 6a 73 32 .....(when.local-name.......(js2
19800 2d 76 69 73 69 74 2d 61 73 74 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 76 29 29 0a 20 20 20 20 28 77 -visit-ast.local-name.v)).....(w
19820 68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 65 78 74 65 72 hen.(not.(equal.local-name.exter
19840 6e 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 65 78 n-name)).......(js2-visit-ast.ex
19860 74 65 72 6e 2d 6e 61 6d 65 20 76 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e tern-name.v))))..(defun.js2-prin
19880 74 2d 65 78 74 65 72 6e 2d 62 69 6e 64 69 6e 67 20 28 6e 20 5f 69 29 0a 20 20 22 50 72 69 6e 74 t-extern-binding.(n._i)..."Print
198a0 20 61 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 73 69 6e 67 6c 65 20 65 78 .a.representation.of.a.single.ex
198c0 74 65 72 6e 20 62 69 6e 64 69 6e 67 2e 20 45 2e 67 2e 20 60 66 6f 6f 27 20 6f 72 0a 60 66 6f 6f tern.binding..E.g..`foo'.or.`foo
198e0 20 61 73 20 62 61 72 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 6e 61 6d 65 20 28 .as.bar'."...(let.((local-name.(
19900 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 js2-export-binding-node-local-na
19920 6d 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 78 74 65 72 6e 2d 6e 61 6d 65 20 28 6a 73 32 me.n)).........(extern-name.(js2
19940 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d 65 -export-binding-node-extern-name
19960 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 .n))).....(insert.(js2-name-node
19980 2d 6e 61 6d 65 20 65 78 74 65 72 6e 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e -name.extern-name)).....(when.(n
199a0 6f 74 20 28 65 71 75 61 6c 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 65 78 74 65 72 6e 2d 6e 61 6d 65 ot.(equal.local-name.extern-name
199c0 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 61 73 20 22 29 0a 20 20 20 20 20 20 28 )).......(insert.".as.").......(
199e0 69 6e 73 65 72 74 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6c 6f 63 61 6c insert.(js2-name-node-name.local
19a00 2d 6e 61 6d 65 29 29 29 29 29 0a 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d -name)))))...(cl-defstruct.(js2-
19a20 69 6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 import-node................(:inc
19a40 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a lude.js2-node)................(:
19a60 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 constructor.make-js2-import-node
19a80 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 49 4d 50 4f 52 54 29 0a 20 20 20 20 20 20 20 .(&key.(type.js2-IMPORT)........
19aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 .................(pos.(js2-curre
19ae0 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-token-beg))..................
19b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19b20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......len......................
19b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19b60 20 20 20 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...import.......................
19b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19ba0 20 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..from..........................
19bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d ...............................m
19be0 6f 64 75 6c 65 2d 69 64 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 69 odule-id)))..."AST.node.for.an.i
19c00 6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e 20 49 74 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 mport.statement..It.follows.the.
19c20 66 6f 72 6d 0a 0a 69 6d 70 6f 72 74 20 4d 6f 64 75 6c 65 53 70 65 63 69 66 69 65 72 3b 0a 69 6d form..import.ModuleSpecifier;.im
19c40 70 6f 72 74 20 49 6d 70 6f 72 74 43 6c 61 75 73 65 20 46 72 6f 6d 43 6c 61 75 73 65 3b 22 0a 20 port.ImportClause.FromClause;"..
19c60 20 69 6d 70 6f 72 74 20 20 20 20 20 3b 20 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d .import.....;.js2-import-clause-
19c80 6e 6f 64 65 20 73 70 65 63 69 66 79 69 6e 67 20 77 68 69 63 68 20 6e 61 6d 65 73 20 61 72 65 20 node.specifying.which.names.are.
19ca0 74 6f 20 69 6d 70 6f 72 74 65 64 2e 0a 20 20 66 72 6f 6d 20 20 20 20 20 20 20 3b 20 6a 73 32 2d to.imported....from.......;.js2-
19cc0 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20 from-clause-node.indicating.the.
19ce0 6d 6f 64 75 6c 65 20 66 72 6f 6d 20 77 68 69 63 68 20 74 6f 20 69 6d 70 6f 72 74 2e 0a 20 20 6d module.from.which.to.import....m
19d00 6f 64 75 6c 65 2d 69 64 29 20 3b 20 6d 6f 64 75 6c 65 2d 69 64 20 6f 66 20 74 68 65 20 69 6d 70 odule-id).;.module-id.of.the.imp
19d20 6f 72 74 2e 20 45 2e 67 2e 20 27 73 72 63 2f 6d 79 6c 69 62 27 2e 0a 0a 28 6a 73 32 2d 2d 73 74 ort..E.g..'src/mylib'...(js2--st
19d40 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 ruct-put.'js2-import-node.'js2-p
19d60 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 69 6d 70 6f 72 74 29 0a 28 6a 73 32 2d 2d rinter.'js2-print-import).(js2--
19d80 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 struct-put.'js2-import-node.'js2
19da0 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 6d 70 6f 72 74 29 0a 0a 28 64 65 -visitor.'js2-visit-import)..(de
19dc0 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 69 6d 70 6f 72 74 20 28 6e 20 76 29 0a 20 20 28 6c 65 fun.js2-visit-import.(n.v)...(le
19de0 74 20 28 28 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f t.((import-clause.(js2-import-no
19e00 64 65 2d 69 6d 70 6f 72 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 72 6f 6d 2d 63 6c 61 75 de-import.n)).........(from-clau
19e20 73 65 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 66 72 6f 6d 20 6e 29 29 29 0a 20 20 se.(js2-import-node-from.n)))...
19e40 20 20 28 77 68 65 6e 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 28 6a 73 32 ..(when.import-clause.......(js2
19e60 2d 76 69 73 69 74 2d 61 73 74 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 76 29 29 0a 20 20 20 -visit-ast.import-clause.v))....
19e80 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 .(when.from-clause.......(js2-vi
19ea0 73 69 74 2d 61 73 74 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 76 29 29 29 29 0a 0a 28 64 65 66 75 sit-ast.from-clause.v))))..(defu
19ec0 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 69 6d 70 6f 72 74 20 28 6e 20 69 29 0a 20 20 22 50 72 69 6e n.js2-print-import.(n.i)..."Prin
19ee0 74 73 20 61 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 69 6d 70 6f 72 ts.a.representation.of.the.impor
19f00 74 20 6e 6f 64 65 22 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 t.node"...(let.((pad.(js2-make-p
19f20 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a ad.i)).........(import-clause.(j
19f40 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 69 6d 70 6f 72 74 20 6e 29 29 0a 20 20 20 20 20 20 s2-import-node-import.n)).......
19f60 20 20 28 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d ..(from-clause.(js2-import-node-
19f80 66 72 6f 6d 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 64 75 6c 65 2d 69 64 20 28 6a 73 32 from.n)).........(module-id.(js2
19fa0 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6d 6f 64 75 6c 65 2d 69 64 20 6e 29 29 29 0a 20 20 20 20 -import-node-module-id.n))).....
19fc0 28 69 6e 73 65 72 74 20 70 61 64 20 22 69 6d 70 6f 72 74 20 22 29 0a 20 20 20 20 28 69 66 20 69 (insert.pad."import.").....(if.i
19fe0 6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 mport-clause.........(progn.....
1a000 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 69 ......(js2-print-import-clause.i
1a020 6d 70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 mport-clause)...........(insert.
1a040 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63 ".")...........(js2-print-from-c
1a060 6c 61 75 73 65 20 66 72 6f 6d 2d 63 6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 lause.from-clause)).......(inser
1a080 74 20 22 27 22 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6d 6f 64 75 6c 65 2d 69 64 29 0a t."'").......(insert.module-id).
1a0a0 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 27 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 ......(insert."'")).....(insert.
1a0c0 22 3b 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 69 6d 70 ";\n")))..(cl-defstruct.(js2-imp
1a0e0 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ort-clause-node................(
1a100 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :include.js2-node)..............
1a120 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 69 6d 70 6f 72 74 2d ..(:constructor.make-js2-import-
1a140 63 6c 61 75 73 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 2d 31 29 0a 20 20 20 20 clause-node.(&key.(type.-1).....
1a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 0a 20 ...........................pos..
1a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 ..............................le
1a1e0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n...............................
1a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a220 20 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .namespace-import...............
1a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 0a 20 .................named-imports..
1a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 ..............................de
1a2c0 66 61 75 6c 74 2d 62 69 6e 64 69 6e 67 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 63 6f 72 fault-binding)))..."AST.node.cor
1a2e0 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 69 6d 70 6f 72 74 20 63 6c 61 75 73 65 20 responding.to.the.import.clause.
1a300 6f 66 20 61 6e 20 69 6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 69 73 20 69 73 0a of.an.import.statement..This.is.
1a320 74 68 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 69 6d 70 6f 72 74 20 74 68 61 74 20 62 the.portion.of.the.import.that.b
1a340 69 6e 64 69 6e 67 73 20 6e 61 6d 65 73 20 66 72 6f 6d 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 indings.names.from.the.external.
1a360 63 6f 6e 74 65 78 74 20 74 6f 20 74 68 65 0a 6c 6f 63 61 6c 20 63 6f 6e 74 65 78 74 2e 22 0a 20 context.to.the.local.context."..
1a380 20 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 3b 20 6a 73 32 2d 6e 61 6d 65 73 70 61 63 .namespace-import.;.js2-namespac
1a3a0 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2e 20 45 2e 67 2e 20 27 2a 20 61 73 20 6c 69 62 27 0a 20 e-import-node..E.g..'*.as.lib'..
1a3c0 20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 20 20 20 3b 20 6c 69 73 70 20 6c 69 73 74 20 6f 66 .named-imports....;.lisp.list.of
1a3e0 20 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 66 6f 72 20 61 6c 6c .js2-export-binding-node.for.all
1a400 20 6e 61 6d 65 64 20 69 6d 70 6f 72 74 73 2e 0a 20 20 64 65 66 61 75 6c 74 2d 62 69 6e 64 69 6e .named.imports....default-bindin
1a420 67 29 20 3b 20 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 66 6f 72 g).;.js2-export-binding-node.for
1a440 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6d 70 6f 72 74 20 62 69 6e 64 69 6e 67 0a 0a 28 6a 73 .the.default.import.binding..(js
1a460 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2--struct-put.'js2-import-clause
1a480 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 6d -node.'js2-visitor.'js2-visit-im
1a4a0 70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a port-clause).(js2--struct-put.'j
1a4c0 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 s2-import-clause-node.'js2-print
1a4e0 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 0a 28 64 er.'js2-print-import-clause)..(d
1a500 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6e 20 efun.js2-visit-import-clause.(n.
1a520 76 29 0a 20 20 28 6c 65 74 20 28 28 6e 73 2d 69 6d 70 6f 72 74 20 28 6a 73 32 2d 69 6d 70 6f 72 v)...(let.((ns-import.(js2-impor
1a540 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e t-clause-node-namespace-import.n
1a560 29 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 28 6a 73 32 2d 69 )).........(named-imports.(js2-i
1a580 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 mport-clause-node-named-imports.
1a5a0 6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74 n)).........(default.(js2-import
1a5c0 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 64 65 66 61 75 6c 74 2d 62 69 6e 64 69 6e 67 20 6e 29 29 -clause-node-default-binding.n))
1a5e0 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 ).....(when.default.......(js2-v
1a600 69 73 69 74 2d 61 73 74 20 64 65 66 61 75 6c 74 20 76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e isit-ast.default.v)).....(when.n
1a620 73 2d 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6e 73 s-import.......(js2-visit-ast.ns
1a640 2d 69 6d 70 6f 72 74 20 76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 64 2d 69 6d 70 6f -import.v)).....(when.named-impo
1a660 72 74 73 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 6d 70 6f 72 74 20 6e 61 6d 65 64 2d rts.......(dolist.(import.named-
1a680 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 imports).........(js2-visit-ast.
1a6a0 69 6d 70 6f 72 74 20 76 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d import.v)))))..(defun.js2-print-
1a6c0 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6e 29 0a 20 20 28 6c 65 74 20 28 28 6e 73 2d 69 6d import-clause.(n)...(let.((ns-im
1a6e0 70 6f 72 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d port.(js2-import-clause-node-nam
1a700 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 64 espace-import.n)).........(named
1a720 2d 69 6d 70 6f 72 74 73 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 -imports.(js2-import-clause-node
1a740 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 -named-imports.n)).........(defa
1a760 75 6c 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 64 65 66 61 ult.(js2-import-clause-node-defa
1a780 75 6c 74 2d 62 69 6e 64 69 6e 67 20 6e 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 ult-binding.n))).....(cond......
1a7a0 28 28 61 6e 64 20 64 65 66 61 75 6c 74 20 6e 73 2d 69 6d 70 6f 72 74 29 0a 20 20 20 20 20 20 28 ((and.default.ns-import).......(
1a7c0 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 28 69 6e js2-print-ast.default).......(in
1a7e0 73 65 72 74 20 22 2c 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 sert.",.").......(js2-print-name
1a800 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e 73 2d 69 6d 70 6f 72 74 29 29 0a 20 20 20 20 20 28 28 space-import.ns-import))......((
1a820 61 6e 64 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 and.default.named-imports)......
1a840 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 28 .(js2-print-ast.default).......(
1a860 69 6e 73 65 72 74 20 22 2c 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 insert.",.").......(js2-print-na
1a880 6d 65 64 2d 69 6d 70 6f 72 74 73 20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 29 29 0a 20 20 20 20 med-imports.named-imports)).....
1a8a0 20 28 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64 .(default.......(js2-print-ast.d
1a8c0 65 66 61 75 6c 74 29 29 0a 20 20 20 20 20 28 6e 73 2d 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 28 efault))......(ns-import.......(
1a8e0 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e 73 2d 69 6d js2-print-namespace-import.ns-im
1a900 70 6f 72 74 29 29 0a 20 20 20 20 20 28 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 0a 20 20 20 20 20 port))......(named-imports......
1a920 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 6e 61 6d 65 64 2d .(js2-print-named-imports.named-
1a940 69 6d 70 6f 72 74 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e imports)))))..(defun.js2-print-n
1a960 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 28 6e 6f 64 65 29 0a 20 20 28 69 6e 73 65 72 74 amespace-import.(node)...(insert
1a980 20 22 2a 20 61 73 20 22 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f ."*.as.")...(insert.(js2-name-no
1a9a0 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f de-name.(js2-namespace-import-no
1a9c0 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 de-name.node))))..(defun.js2-pri
1a9e0 6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 28 69 6d 70 6f 72 74 73 29 0a 20 20 28 69 6e nt-named-imports.(imports)...(in
1aa00 73 65 72 74 20 22 7b 22 29 0a 20 20 28 6c 65 74 20 28 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 69 sert."{")...(let.((len.(length.i
1aa20 6d 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 6e 20 30 29 29 0a 20 20 20 20 28 77 68 69 mports)).........(n.0)).....(whi
1aa40 6c 65 20 28 3c 20 6e 20 6c 65 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 65 78 le.(<.n.len).......(js2-print-ex
1aa60 74 65 72 6e 2d 62 69 6e 64 69 6e 67 20 28 6e 74 68 20 6e 20 69 6d 70 6f 72 74 73 29 20 30 29 0a tern-binding.(nth.n.imports).0).
1aa80 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 6e 20 28 2d 20 6c 65 6e 20 31 29 29 0a 20 20 ......(unless.(=.n.(-.len.1))...
1aaa0 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 ......(insert.",.")).......(setq
1aac0 20 6e 20 28 2b 20 6e 20 31 29 29 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 7d 22 29 29 0a 0a 28 .n.(+.n.1))))...(insert."}"))..(
1aae0 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f cl-defstruct.(js2-namespace-impo
1ab00 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 rt-node................(:include
1ab20 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 .js2-node)................(:cons
1ab40 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 tructor.make-js2-namespace-impor
1ab60 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 t-node.(&key.(type.-1)..........
1ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20 .........................pos....
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c ...............................l
1ac00 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en..............................
1ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ac40 20 20 20 20 20 6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 63 .....name)))..."AST.node.for.a.c
1ac60 6f 6d 70 6c 65 74 65 20 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 2e 0a 45 2e 67 2e 20 74 omplete.namespace.import..E.g..t
1ac80 68 65 20 60 2a 20 61 73 20 6c 69 62 27 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 3a 0a 0a 69 6d he.`*.as.lib'.expression.in:..im
1aca0 70 6f 72 74 20 2a 20 61 73 20 6c 69 62 20 66 72 6f 6d 20 5c 5c 3d 27 73 72 63 2f 6c 69 62 5c 5c port.*.as.lib.from.\\='src/lib\\
1acc0 3d 27 0a 0a 49 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 69 6e 67 6c 65 20 6e 61 6d 65 20 6e 6f ='..It.contains.a.single.name.no
1ace0 64 65 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 74 68 65 20 62 6f 75 6e 64 20 6e 61 6d 65 2e 22 de.referring.to.the.bound.name."
1ad00 0a 20 20 6e 61 6d 65 29 20 3b 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6f 66 20 74 68 65 20 ...name).;.js2-name-node.of.the.
1ad20 62 6f 75 6e 64 20 6e 61 6d 65 2e 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6e 61 bound.name...(defun.js2-visit-na
1ad40 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 mespace-import.(n.v)...(js2-visi
1ad60 74 2d 61 73 74 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 t-ast.(js2-namespace-import-node
1ad80 2d 6e 61 6d 65 20 6e 29 20 76 29 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 -name.n).v))..(js2--struct-put.'
1ada0 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 js2-namespace-import-node.'js2-v
1adc0 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f isitor.'js2-visit-namespace-impo
1ade0 72 74 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6e 61 6d 65 73 70 rt).(js2--struct-put.'js2-namesp
1ae00 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 ace-import-node.'js2-printer.'js
1ae20 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 29 0a 0a 28 63 6c 2d 64 2-print-namespace-import)..(cl-d
1ae40 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 efstruct.(js2-from-clause-node..
1ae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 ..............(:include.js2-node
1ae80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d )................(:constructor.m
1aea0 61 6b 65 2d 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 ake-js2-from-clause-node.(&key.(
1aec0 74 79 70 65 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type.js2-NAME)..................
1aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1af00 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............pos.................
1af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1af40 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............len................
1af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1af80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 75 6c 65 2d 69 64 0a 20 20 20 20 20 20 20 20 ..............module-id.........
1afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 64 61 74 61 2d 70 29 .....................metadata-p)
1afe0 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 74 68 65 20 66 72 6f 6d 20 63 6c 61 75 ))..."AST.node.for.the.from.clau
1b000 73 65 20 69 6e 20 61 6e 20 69 6d 70 6f 72 74 20 6f 72 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d se.in.an.import.or.export.statem
1b020 65 6e 74 2e 0a 45 2e 67 2e 20 66 72 6f 6d 20 5c 5c 3d 27 6d 79 2f 6d 6f 64 75 6c 65 5c 5c 3d 27 ent..E.g..from.\\='my/module\\='
1b040 2e 20 49 74 20 63 61 6e 20 72 65 66 65 72 65 20 74 6f 20 65 69 74 68 65 72 20 61 6e 20 65 78 74 ..It.can.refere.to.either.an.ext
1b060 65 72 6e 61 6c 20 6d 6f 64 75 6c 65 2c 20 6f 72 20 74 6f 20 74 68 65 0a 6d 6f 64 75 6c 65 73 20 ernal.module,.or.to.the.modules.
1b080 6d 65 74 61 64 61 74 61 20 69 74 73 65 6c 66 2e 22 0a 20 20 6d 6f 64 75 6c 65 2d 69 64 20 3b 20 metadata.itself."...module-id.;.
1b0a0 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6d 6f 64 75 6c 65 20 73 70 65 string.containing.the.module.spe
1b0c0 63 69 66 69 65 72 2e 0a 20 20 6d 65 74 61 64 61 74 61 2d 70 29 20 3b 20 74 72 75 65 20 69 66 20 cifier....metadata-p).;.true.if.
1b0e0 74 68 69 73 20 63 6c 61 75 73 65 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 6d 6f 64 75 6c 65 this.clause.refers.to.the.module
1b100 27 73 20 6d 65 74 61 64 61 74 61 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 's.metadata..(js2--struct-put.'j
1b120 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 s2-from-clause-node.'js2-visitor
1b140 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 .'js2-visit-none).(js2--struct-p
1b160 75 74 20 27 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 ut.'js2-from-clause-node.'js2-pr
1b180 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 29 0a 0a 28 inter.'js2-print-from-clause)..(
1b1a0 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6e 29 0a defun.js2-print-from-clause.(n).
1b1c0 20 20 28 69 6e 73 65 72 74 20 22 66 72 6f 6d 20 22 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 66 72 ..(insert."from.")...(if.(js2-fr
1b1e0 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6d 65 74 61 64 61 74 61 2d 70 20 6e 29 0a 20 20 20 om-clause-node-metadata-p.n)....
1b200 20 20 20 28 69 6e 73 65 72 74 20 22 74 68 69 73 20 6d 6f 64 75 6c 65 22 29 0a 20 20 20 20 28 69 ...(insert."this.module").....(i
1b220 6e 73 65 72 74 20 22 27 22 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 66 72 6f 6d nsert."'").....(insert.(js2-from
1b240 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6d 6f 64 75 6c 65 2d 69 64 20 6e 29 29 0a 20 20 20 20 28 -clause-node-module-id.n)).....(
1b260 69 6e 73 65 72 74 20 22 27 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 insert."'")))..(cl-defstruct.(js
1b280 32 2d 74 72 79 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 2-try-node................(:incl
1b2a0 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 ude.js2-node)................(:c
1b2c0 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 20 28 26 6b onstructor.make-js2-try-node.(&k
1b2e0 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54 52 59 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ey.(type.js2-TRY)...............
1b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b320 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 .......(pos.js2-ts-cursor)......
1b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................len.............
1b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b3a0 20 20 20 20 20 20 20 20 20 74 72 79 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........try-block..............
1b3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b3e0 20 20 20 20 20 20 20 20 63 61 74 63 68 2d 63 6c 61 75 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 ........catch-clauses...........
1b400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b420 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 22 41 ...........finally-block)))..."A
1b440 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 74 72 79 2d 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 ST.node.for.a.try-statement."...
1b460 74 72 79 2d 62 6c 6f 63 6b 0a 20 20 63 61 74 63 68 2d 63 6c 61 75 73 65 73 20 20 3b 20 61 20 4c try-block...catch-clauses..;.a.L
1b480 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 27 0a 20 20 66 isp.list.of.`js2-catch-node'...f
1b4a0 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 29 20 3b 20 61 20 60 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e inally-block).;.a.`js2-finally-n
1b4c0 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 72 79 2d ode'..(js2--struct-put.'js2-try-
1b4e0 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 74 72 79 node.'js2-visitor.'js2-visit-try
1b500 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 72 79 -node).(js2--struct-put.'js2-try
1b520 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 72 -node.'js2-printer.'js2-print-tr
1b540 79 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 74 72 79 2d 6e 6f y-node)..(defun.js2-visit-try-no
1b560 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 74 de.(n.v)...(js2-visit-ast.(js2-t
1b580 72 79 2d 6e 6f 64 65 2d 74 72 79 2d 62 6c 6f 63 6b 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 ry-node-try-block.n).v)...(dolis
1b5a0 74 20 28 63 6c 61 75 73 65 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c t.(clause.(js2-try-node-catch-cl
1b5c0 61 75 73 65 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 63 6c 61 auses.n)).....(js2-visit-ast.cla
1b5e0 75 73 65 20 76 29 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 74 72 use.v))...(js2-visit-ast.(js2-tr
1b600 79 2d 6e 6f 64 65 2d 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 6e 29 20 76 29 29 0a 0a 28 64 65 y-node-finally-block.n).v))..(de
1b620 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 74 72 79 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 fun.js2-print-try-node.(n.i)...(
1b640 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 let.((pad.(js2-make-pad.i)).....
1b660 20 20 20 20 28 63 61 74 63 68 65 73 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 ....(catches.(js2-try-node-catch
1b680 2d 63 6c 61 75 73 65 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 6e 61 6c 6c 79 20 28 6a -clauses.n)).........(finally.(j
1b6a0 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 6e 29 29 29 0a 20 s2-try-node-finally-block.n)))..
1b6c0 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 74 72 79 20 7b 5c 6e 22 29 0a 20 20 20 20 28 6a ...(insert.pad."try.{\n").....(j
1b6e0 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 74 72 79 2d s2-print-body.(js2-try-node-try-
1b700 62 6c 6f 63 6b 20 6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 block.n).(1+.i)).....(insert.pad
1b720 20 22 7d 22 29 0a 20 20 20 20 28 77 68 65 6e 20 63 61 74 63 68 65 73 0a 20 20 20 20 20 20 28 64 ."}").....(when.catches.......(d
1b740 6f 6c 69 73 74 20 28 63 61 74 63 68 20 63 61 74 63 68 65 73 29 0a 20 20 20 20 20 20 20 20 28 6a olist.(catch.catches).........(j
1b760 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 63 61 74 63 68 20 69 29 29 29 0a 20 20 20 20 28 69 66 20 s2-print-ast.catch.i))).....(if.
1b780 66 69 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 66 finally.........(js2-print-ast.f
1b7a0 69 6e 61 6c 6c 79 20 69 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 inally.i).......(insert."\n"))))
1b7c0 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 0a ..(cl-defstruct.(js2-catch-node.
1b7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 73 63 6f ...............(:include.js2-sco
1b800 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 pe)................(:constructor
1b820 20 6d 61 6b 65 2d 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 .make-js2-catch-node.(&key.(type
1b840 20 6a 73 32 2d 43 41 54 43 48 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-CATCH).....................
1b860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b880 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 ...(pos.js2-ts-cursor)..........
1b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............len...............
1b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b900 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........param..................
1b920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b940 20 20 20 20 20 20 67 75 61 72 64 2d 6b 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......guard-kwd.................
1b960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b980 20 20 20 20 20 20 20 67 75 61 72 64 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......guard-expr...............
1b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b9c0 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f .........lp.rp)))..."AST.node.fo
1b9e0 72 20 61 20 63 61 74 63 68 20 63 6c 61 75 73 65 2e 22 0a 20 20 70 61 72 61 6d 20 20 20 20 20 20 r.a.catch.clause."...param......
1ba00 20 3b 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 66 6f 72 6d 20 6f 72 20 73 69 6d 70 6c 65 20 .;.destructuring.form.or.simple.
1ba20 6e 61 6d 65 20 6e 6f 64 65 0a 20 20 67 75 61 72 64 2d 6b 77 64 20 20 20 3b 20 72 65 6c 61 74 69 name.node...guard-kwd...;.relati
1ba40 76 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 22 69 66 22 20 69 6e 20 22 63 ve.buffer.position.of."if".in."c
1ba60 61 74 63 68 20 28 78 20 69 66 20 2e 2e 2e 29 22 0a 20 20 67 75 61 72 64 2d 65 78 70 72 20 20 3b atch.(x.if....)"...guard-expr..;
1ba80 20 63 61 74 63 68 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a 20 .catch.condition,.a.`js2-node'..
1baa0 20 6c 70 20 20 20 20 20 20 20 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f .lp..........;.buffer.position.o
1bac0 66 20 6c 65 66 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 f.left-paren,.nil.if.omitted...r
1bae0 70 29 20 20 20 20 20 20 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 p).........;.buffer.position.of.
1bb00 72 69 67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73 right-paren,.nil.if.omitted..(js
1bb20 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 20 27 6a 2--struct-put.'js2-catch-node.'j
1bb40 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 61 74 63 68 2d 6e 6f 64 65 s2-visitor.'js2-visit-catch-node
1bb60 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 61 74 63 68 2d 6e 6f ).(js2--struct-put.'js2-catch-no
1bb80 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 61 74 63 68 de.'js2-printer.'js2-print-catch
1bba0 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 61 74 63 68 2d 6e -node)..(defun.js2-visit-catch-n
1bbc0 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ode.(n.v)...(js2-visit-ast.(js2-
1bbe0 63 61 74 63 68 2d 6e 6f 64 65 2d 70 61 72 61 6d 20 6e 29 20 76 29 0a 20 20 28 77 68 65 6e 20 28 catch-node-param.n).v)...(when.(
1bc00 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67 75 61 72 64 2d 6b 77 64 20 6e 29 0a 20 20 20 20 js2-catch-node-guard-kwd.n).....
1bc20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67 (js2-visit-ast.(js2-catch-node-g
1bc40 75 61 72 64 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 62 6c uard-expr.n).v))...(js2-visit-bl
1bc60 6f 63 6b 20 6e 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 61 74 63 ock.n.v))..(defun.js2-print-catc
1bc80 68 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d h-node.(n.i)...(let.((pad.(js2-m
1bca0 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 67 75 61 72 64 2d 6b 77 64 20 28 ake-pad.i)).........(guard-kwd.(
1bcc0 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67 75 61 72 64 2d 6b 77 64 20 6e 29 29 0a 20 20 20 js2-catch-node-guard-kwd.n))....
1bce0 20 20 20 20 20 28 67 75 61 72 64 2d 65 78 70 72 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 .....(guard-expr.(js2-catch-node
1bd00 2d 67 75 61 72 64 2d 65 78 70 72 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 63 -guard-expr.n))).....(insert.".c
1bd20 61 74 63 68 20 22 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 atch.").....(when.(js2-catch-nod
1bd40 65 2d 6c 70 20 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 20 20 20 e-lp.n).......(insert."(")......
1bd60 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d .(js2-print-ast.(js2-catch-node-
1bd80 70 61 72 61 6d 20 6e 29 20 30 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 75 61 72 64 2d 6b 77 param.n).0).......(when.guard-kw
1bda0 64 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 69 66 20 22 29 0a 20 20 20 20 20 20 d.........(insert.".if.").......
1bdc0 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 67 75 61 72 64 2d 65 78 70 72 20 30 29 29 0a ..(js2-print-ast.guard-expr.0)).
1bde0 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 ......(insert.").")).....(insert
1be00 20 22 7b 5c 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 6e 20 28 31 ."{\n").....(js2-print-body.n.(1
1be20 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d 22 29 29 29 0a 0a 28 63 +.i)).....(insert.pad."}")))..(c
1be40 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 0a 20 20 l-defstruct.(js2-finally-node...
1be60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 .............(:include.js2-node)
1be80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 ................(:constructor.ma
1bea0 6b 65 2d 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 ke-js2-finally-node.(&key.(type.
1bec0 6a 73 32 2d 46 49 4e 41 4c 4c 59 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-FINALLY)....................
1bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1bf00 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 ......(pos.js2-ts-cursor).......
1bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1bf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 62 6f 64 79 29 29 29 0a 20 ...................len.body)))..
1bf60 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 66 69 6e 61 6c 6c 79 20 63 6c 61 75 73 65 2e ."AST.node.for.a.finally.clause.
1bf80 22 0a 20 20 62 6f 64 79 29 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 2c 20 6f 66 74 65 6e "...body)..;.a.`js2-node',.often
1bfa0 20 62 75 74 20 6e 6f 74 20 61 6c 77 61 79 73 20 61 20 62 6c 6f 63 6b 20 6e 6f 64 65 0a 0a 28 6a .but.not.always.a.block.node..(j
1bfc0 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 s2--struct-put.'js2-finally-node
1bfe0 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 66 69 6e 61 6c 6c 79 .'js2-visitor.'js2-visit-finally
1c000 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 66 69 6e -node).(js2--struct-put.'js2-fin
1c020 61 6c 6c 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e ally-node.'js2-printer.'js2-prin
1c040 74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 t-finally-node)..(defun.js2-visi
1c060 74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 t-finally-node.(n.v)...(js2-visi
1c080 74 2d 61 73 74 20 28 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 t-ast.(js2-finally-node-body.n).
1c0a0 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f v))..(defun.js2-print-finally-no
1c0c0 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d de.(n.i)...(let.((pad.(js2-make-
1c0e0 70 61 64 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 66 69 6e 61 6c 6c 79 20 7b pad.i))).....(insert.".finally.{
1c100 5c 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 66 69 \n").....(js2-print-body.(js2-fi
1c120 6e 61 6c 6c 79 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 nally-node-body.n).(1+.i)).....(
1c140 69 6e 73 65 72 74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 insert.pad."}\n")))..(cl-defstru
1c160 63 74 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ct.(js2-switch-node.............
1c180 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 ...(:include.js2-scope).........
1c1a0 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 73 77 .......(:constructor.make-js2-sw
1c1c0 69 74 63 68 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 53 57 49 54 43 48 itch-node.(&key.(type.js2-SWITCH
1c1e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1c200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a ..........................(pos.j
1c220 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ts-cursor)...................
1c240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c260 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......len.......................
1c280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c2a0 20 20 64 69 73 63 72 69 6d 69 6e 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..discriminant..................
1c2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c2e0 20 20 20 20 20 20 20 63 61 73 65 73 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......cases.lp.................
1c300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c320 20 20 20 20 20 20 20 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 ........rp)))..."AST.node.for.a.
1c340 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 64 69 73 63 72 69 6d 69 6e 61 6e switch.statement."...discriminan
1c360 74 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 20 28 73 77 69 74 63 68 20 65 78 70 72 65 73 t..;.a.`js2-node'.(switch.expres
1c380 73 69 6f 6e 29 0a 20 20 63 61 73 65 73 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 sion)...cases..;.a.Lisp.list.of.
1c3a0 60 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 27 0a 20 20 6c 70 20 20 20 20 20 3b 20 70 6f 73 69 74 `js2-case-node'...lp.....;.posit
1c3c0 69 6f 6e 20 6f 66 20 6f 70 65 6e 2d 70 61 72 65 6e 20 66 6f 72 20 64 69 73 63 72 69 6d 69 6e 61 ion.of.open-paren.for.discrimina
1c3e0 6e 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 29 20 20 20 20 3b 20 70 6f nt,.nil.if.omitted...rp)....;.po
1c400 73 69 74 69 6f 6e 20 6f 66 20 63 6c 6f 73 65 2d 70 61 72 65 6e 20 66 6f 72 20 64 69 73 63 72 69 sition.of.close-paren.for.discri
1c420 6d 69 6e 61 6e 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73 32 2d 2d 73 74 minant,.nil.if.omitted..(js2--st
1c440 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 ruct-put.'js2-switch-node.'js2-v
1c460 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 73 77 69 74 63 68 2d 6e 6f 64 65 29 0a 28 isitor.'js2-visit-switch-node).(
1c480 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 js2--struct-put.'js2-switch-node
1c4a0 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 73 77 69 74 63 68 2d .'js2-printer.'js2-print-switch-
1c4c0 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 73 77 69 74 63 68 2d 6e node)..(defun.js2-visit-switch-n
1c4e0 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ode.(n.v)...(js2-visit-ast.(js2-
1c500 73 77 69 74 63 68 2d 6e 6f 64 65 2d 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 6e 29 20 76 29 0a 20 switch-node-discriminant.n).v)..
1c520 20 28 64 6f 6c 69 73 74 20 28 63 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 63 61 73 .(dolist.(c.(js2-switch-node-cas
1c540 65 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 63 20 76 29 29 29 es.n)).....(js2-visit-ast.c.v)))
1c560 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 73 77 69 74 63 68 2d 6e 6f 64 65 20 28 ..(defun.js2-print-switch-node.(
1c580 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 n.i)...(let.((pad.(js2-make-pad.
1c5a0 69 29 29 0a 20 20 20 20 20 20 20 20 28 63 61 73 65 73 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e i)).........(cases.(js2-switch-n
1c5c0 6f 64 65 2d 63 61 73 65 73 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 ode-cases.n))).....(insert.pad."
1c5e0 73 77 69 74 63 68 20 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a switch.(").....(js2-print-ast.(j
1c600 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 6e 29 20 30 s2-switch-node-discriminant.n).0
1c620 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69 ).....(insert.").{\n").....(doli
1c640 73 74 20 28 63 61 73 65 20 63 61 73 65 73 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 st.(case.cases).......(js2-print
1c660 2d 61 73 74 20 63 61 73 65 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d -ast.case.i)).....(insert.pad."}
1c680 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 61 73 65 2d \n")))..(cl-defstruct.(js2-case-
1c6a0 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 node................(:include.js
1c6c0 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 2-block-node)................(:c
1c6e0 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 28 26 onstructor.make-js2-case-node.(&
1c700 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 43 41 53 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 key.(type.js2-CASE).............
1c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c740 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 ..........(pos.js2-ts-cursor)...
1c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1c780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6b 69 64 73 20 65 78 70 ....................len.kids.exp
1c7a0 72 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 63 61 73 65 20 63 6c 61 75 r)))..."AST.node.for.a.case.clau
1c7c0 73 65 20 6f 66 20 61 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 65 78 70 se.of.a.switch.statement."...exp
1c7e0 72 29 20 20 20 3b 20 74 68 65 20 63 61 73 65 20 65 78 70 72 65 73 73 69 6f 6e 20 28 6e 69 6c 20 r)...;.the.case.expression.(nil.
1c800 66 6f 72 20 64 65 66 61 75 6c 74 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 for.default)..(js2--struct-put.'
1c820 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d js2-case-node.'js2-visitor.'js2-
1c840 76 69 73 69 74 2d 63 61 73 65 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 visit-case-node).(js2--struct-pu
1c860 74 20 27 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a t.'js2-case-node.'js2-printer.'j
1c880 73 32 2d 70 72 69 6e 74 2d 63 61 73 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d s2-print-case-node)..(defun.js2-
1c8a0 76 69 73 69 74 2d 63 61 73 65 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 visit-case-node.(n.v)...(js2-vis
1c8c0 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29 it-ast.(js2-case-node-expr.n).v)
1c8e0 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b 20 6e 20 76 29 29 0a 0a 28 64 65 66 75 ...(js2-visit-block.n.v))..(defu
1c900 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 61 73 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c n.js2-print-case-node.(n.i)...(l
1c920 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 et.((pad.(js2-make-pad.i))......
1c940 20 20 20 28 65 78 70 72 20 28 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 29 ...(expr.(js2-case-node-expr.n))
1c960 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c ).....(insert.pad).....(if.(null
1c980 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 64 65 66 61 75 6c 74 3a .expr).........(insert."default:
1c9a0 5c 6e 22 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 63 61 73 65 20 22 29 0a 20 20 20 20 \n").......(insert."case.").....
1c9c0 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 65 78 70 72 20 30 29 0a 20 20 20 20 20 20 28 ..(js2-print-ast.expr.0).......(
1c9e0 69 6e 73 65 72 74 20 22 3a 5c 6e 22 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 insert.":\n")).....(dolist.(kid.
1ca00 28 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 20 20 28 6a (js2-case-node-kids.n)).......(j
1ca20 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64 20 28 31 2b 20 69 29 29 29 29 29 0a 0a 28 63 6c s2-print-ast.kid.(1+.i)))))..(cl
1ca40 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 0a 20 20 20 20 20 -defstruct.(js2-throw-node......
1ca60 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 ..........(:include.js2-node)...
1ca80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d .............(:constructor.make-
1caa0 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54 js2-throw-node.(&key.(type.js2-T
1cac0 48 52 4f 57 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 HROW)...........................
1cae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f .............................(po
1cb00 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.js2-ts-cursor)................
1cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1cb40 20 20 20 20 20 20 20 20 6c 65 6e 20 65 78 70 72 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 ........len.expr)))..."AST.node.
1cb60 66 6f 72 20 61 20 74 68 72 6f 77 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 65 78 70 72 29 20 for.a.throw.statement."...expr).
1cb80 20 20 3b 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 74 68 72 6f 77 0a 0a 28 6a 73 ..;.the.expression.to.throw..(js
1cba0 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 27 6a 2--struct-put.'js2-throw-node.'j
1cbc0 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 74 68 72 6f 77 2d 6e 6f 64 65 s2-visitor.'js2-visit-throw-node
1cbe0 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f ).(js2--struct-put.'js2-throw-no
1cc00 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 68 72 6f 77 de.'js2-printer.'js2-print-throw
1cc20 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 74 68 72 6f 77 2d 6e -node)..(defun.js2-visit-throw-n
1cc40 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ode.(n.v)...(js2-visit-ast.(js2-
1cc60 74 68 72 6f 77 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a throw-node-expr.n).v))..(defun.j
1cc80 73 32 2d 70 72 69 6e 74 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 s2-print-throw-node.(n.i)...(ins
1cca0 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 74 68 72 6f 77 20 22 29 0a 20 ert.(js2-make-pad.i)."throw.")..
1ccc0 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 2d .(js2-print-ast.(js2-throw-node-
1cce0 65 78 70 72 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e 22 29 29 0a 0a 28 63 expr.n).0)...(insert.";\n"))..(c
1cd00 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 0a 20 20 20 20 20 l-defstruct.(js2-with-node......
1cd20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 ..........(:include.js2-node)...
1cd40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d .............(:constructor.make-
1cd60 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 57 49 js2-with-node.(&key.(type.js2-WI
1cd80 54 48 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TH).............................
1cda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a ..........................(pos.j
1cdc0 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ts-cursor)...................
1cde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ce00 20 20 20 20 6c 65 6e 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....len.object..................
1ce20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ce40 20 20 20 20 20 62 6f 64 79 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 .....body.lp.rp)))..."AST.node.f
1ce60 6f 72 20 61 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 6f 62 6a 65 63 74 0a 20 or.a.with-statement."...object..
1ce80 20 62 6f 64 79 0a 20 20 6c 70 20 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 .body...lp....;.buffer.position.
1cea0 6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 20 61 72 6f 75 6e 64 20 6f 62 6a 65 63 74 2c 20 6e 69 6c of.left-paren.around.object,.nil
1cec0 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 29 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 .if.omitted...rp)...;.buffer.pos
1cee0 69 74 69 6f 6e 20 6f 66 20 72 69 67 68 74 2d 70 61 72 65 6e 20 61 72 6f 75 6e 64 20 6f 62 6a 65 ition.of.right-paren.around.obje
1cf00 63 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 ct,.nil.if.omitted..(js2--struct
1cf20 2d 70 75 74 20 27 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 -put.'js2-with-node.'js2-visitor
1cf40 20 27 6a 73 32 2d 76 69 73 69 74 2d 77 69 74 68 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 .'js2-visit-with-node).(js2--str
1cf60 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e uct-put.'js2-with-node.'js2-prin
1cf80 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 77 69 74 68 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 ter.'js2-print-with-node)..(defu
1cfa0 6e 20 6a 73 32 2d 76 69 73 69 74 2d 77 69 74 68 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a n.js2-visit-with-node.(n.v)...(j
1cfc0 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 6f 62 6a 65 s2-visit-ast.(js2-with-node-obje
1cfe0 63 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 77 ct.n).v)...(js2-visit-ast.(js2-w
1d000 69 74 68 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 ith-node-body.n).v))..(defun.js2
1d020 2d 70 72 69 6e 74 2d 77 69 74 68 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 -print-with-node.(n.i)...(let.((
1d040 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 pad.(js2-make-pad.i))).....(inse
1d060 72 74 20 70 61 64 20 22 77 69 74 68 20 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d rt.pad."with.(").....(js2-print-
1d080 61 73 74 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a ast.(js2-with-node-object.n).0).
1d0a0 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 ....(insert.").{\n").....(js2-pr
1d0c0 69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 int-body.(js2-with-node-body.n).
1d0e0 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29 (1+.i)).....(insert.pad."}\n")))
1d100 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 0a ..(cl-defstruct.(js2-label-node.
1d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 ...............(:include.js2-nod
1d140 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 e)................(:constructor.
1d160 6d 61 6b 65 2d 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 make-js2-label-node.(&key.(type.
1d180 6a 73 32 2d 4c 41 42 45 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-LABEL)......................
1d1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d1c0 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 ..(pos.js2-ts-cursor)...........
1d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d200 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20 .............len.name)))..."AST.
1d220 6e 6f 64 65 20 66 6f 72 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6c 61 62 65 6c 20 6f 72 20 63 61 node.for.a.statement.label.or.ca
1d240 73 65 20 6c 61 62 65 6c 2e 22 0a 20 20 6e 61 6d 65 20 20 20 3b 20 61 20 73 74 72 69 6e 67 0a 20 se.label."...name...;.a.string..
1d260 20 6c 6f 6f 70 29 20 20 3b 20 66 6f 72 20 76 61 6c 69 64 61 74 69 6e 67 20 61 6e 64 20 63 6f 64 .loop)..;.for.validating.and.cod
1d280 65 2d 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 6e 74 69 6e 75 65 2d 74 6f 2d 6c 61 62 65 6c 0a 0a e-generating.continue-to-label..
1d2a0 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 (js2--struct-put.'js2-label-node
1d2c0 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 .'js2-visitor.'js2-visit-none).(
1d2e0 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 20 js2--struct-put.'js2-label-node.
1d300 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6c 61 62 65 6c 29 0a 0a 'js2-printer.'js2-print-label)..
1d320 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6c 61 62 65 6c 20 28 6e 20 69 29 0a 20 20 28 (defun.js2-print-label.(n.i)...(
1d340 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20 insert.(js2-make-pad.i).........
1d360 20 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 0a 20 20 20 20 20 20 ..(js2-label-node-name.n).......
1d380 20 20 20 20 22 3a 5c 6e 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d ....":\n"))..(cl-defstruct.(js2-
1d3a0 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 labeled-stmt-node...............
1d3c0 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(:include.js2-node)............
1d3e0 20 20 20 20 3b 3b 20 74 79 70 65 20 6e 65 65 64 73 20 74 6f 20 62 65 20 69 6e 20 60 6a 73 32 2d ....;;.type.needs.to.be.in.`js2-
1d400 73 69 64 65 2d 65 66 66 65 63 74 69 6e 67 2d 74 6f 6b 65 6e 73 27 20 74 6f 20 61 76 6f 69 64 20 side-effecting-tokens'.to.avoid.
1d420 73 70 75 72 69 6f 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 2d 73 69 spurious................;;.no-si
1d440 64 65 2d 65 66 66 65 63 74 73 20 77 61 72 6e 69 6e 67 73 2c 20 68 65 6e 63 65 20 6a 73 32 2d 45 de-effects.warnings,.hence.js2-E
1d460 58 50 52 5f 52 45 53 55 4c 54 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e XPR_RESULT.................(:con
1d480 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e structor.make-js2-labeled-stmt-n
1d4a0 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 29 ode.(&key.(type.js2-EXPR_RESULT)
1d4c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
1d500 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.js2-ts-cursor)..............
1d520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6c 61 62 65 6c 73 20 73 74 6d 74 .................len.labels.stmt
1d560 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 73 74 61 74 65 6d 65 6e 74 20 )))..."AST.node.for.a.statement.
1d580 77 69 74 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6c 61 62 65 6c 73 2e 0a 4d 75 6c 74 69 70 6c with.one.or.more.labels..Multipl
1d5a0 65 20 6c 61 62 65 6c 73 20 66 6f 72 20 61 20 73 74 61 74 65 6d 65 6e 74 20 61 72 65 20 63 6f 6c e.labels.for.a.statement.are.col
1d5c0 6c 61 70 73 65 64 20 69 6e 74 6f 20 74 68 65 20 6c 61 62 65 6c 73 20 66 69 65 6c 64 2e 22 0a 20 lapsed.into.the.labels.field."..
1d5e0 20 6c 61 62 65 6c 73 20 20 3b 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 6c 61 62 .labels..;.Lisp.list.of.`js2-lab
1d600 65 6c 2d 6e 6f 64 65 27 0a 20 20 73 74 6d 74 29 20 20 20 3b 20 74 68 65 20 73 74 61 74 65 6d 65 el-node'...stmt)...;.the.stateme
1d620 6e 74 20 74 68 65 73 65 20 6c 61 62 65 6c 73 20 61 72 65 20 66 6f 72 0a 0a 28 6a 73 32 2d 2d 73 nt.these.labels.are.for..(js2--s
1d640 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 truct-put.'js2-labeled-stmt-node
1d660 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6c 61 62 65 6c 65 64 .'js2-visitor.'js2-visit-labeled
1d680 2d 73 74 6d 74 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 61 62 -stmt).(js2--struct-put.'js2-lab
1d6a0 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 eled-stmt-node.'js2-printer.'js2
1d6c0 2d 70 72 69 6e 74 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 -print-labeled-stmt)..(defun.js2
1d6e0 2d 67 65 74 2d 6c 61 62 65 6c 2d 62 79 2d 6e 61 6d 65 20 28 6c 62 6c 2d 73 74 6d 74 20 6e 61 6d -get-label-by-name.(lbl-stmt.nam
1d700 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 60 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 27 20 e)..."Return.a.`js2-label-node'.
1d720 62 79 20 4e 41 4d 45 20 66 72 6f 6d 20 4c 42 4c 2d 53 54 4d 54 27 73 20 6c 61 62 65 6c 73 20 6c by.NAME.from.LBL-STMT's.labels.l
1d740 69 73 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 20 73 75 63 68 20 6c 61 62 65 ist..Returns.nil.if.no.such.labe
1d760 6c 20 69 73 20 69 6e 20 74 68 65 20 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 61 62 65 l.is.in.the.list."...(let.((labe
1d780 6c 2d 6c 69 73 74 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 l-list.(js2-labeled-stmt-node-la
1d7a0 62 65 6c 73 20 6c 62 6c 2d 73 74 6d 74 29 29 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a bels.lbl-stmt)).........result).
1d7c0 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6c 61 62 65 6c 2d 6c 69 73 74 20 28 6e 6f 74 20 ....(while.(and.label-list.(not.
1d7e0 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 result)).......(if.(string=.(js2
1d800 2d 6c 61 62 65 6c 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 63 61 72 20 6c 61 62 65 6c 2d 6c 69 73 74 -label-node-name.(car.label-list
1d820 29 29 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 )).name)...........(setq.result.
1d840 28 63 61 72 20 6c 61 62 65 6c 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 (car.label-list)).........(setq.
1d860 6c 61 62 65 6c 2d 6c 69 73 74 20 28 63 64 72 20 6c 61 62 65 6c 2d 6c 69 73 74 29 29 29 29 0a 20 label-list.(cdr.label-list))))..
1d880 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6c 61 ...result))..(defun.js2-visit-la
1d8a0 62 65 6c 65 64 2d 73 74 6d 74 20 28 6e 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6c 61 62 65 beled-stmt.(n.v)...(dolist.(labe
1d8c0 6c 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20 l.(js2-labeled-stmt-node-labels.
1d8e0 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6c 61 62 65 6c 20 76 29 29 n)).....(js2-visit-ast.label.v))
1d900 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 ...(js2-visit-ast.(js2-labeled-s
1d920 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 tmt-node-stmt.n).v))..(defun.js2
1d940 2d 70 72 69 6e 74 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 28 6e 20 69 29 0a 20 20 28 64 6f 6c -print-labeled-stmt.(n.i)...(dol
1d960 69 73 74 20 28 6c 61 62 65 6c 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 ist.(label.(js2-labeled-stmt-nod
1d980 65 2d 6c 61 62 65 6c 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 e-labels.n)).....(js2-print-ast.
1d9a0 6c 61 62 65 6c 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d label.i))...(js2-print-ast.(js2-
1d9c0 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6e 29 20 69 29 29 0a 0a 28 labeled-stmt-node-stmt.n).i))..(
1d9e0 64 65 66 75 6e 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 63 6f 6e 74 defun.js2-labeled-stmt-node-cont
1da00 61 69 6e 73 20 28 6e 6f 64 65 20 6c 61 62 65 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 ains.(node.label)..."Return.t.if
1da20 20 4e 4f 44 45 20 63 6f 6e 74 61 69 6e 73 20 4c 41 42 45 4c 20 69 6e 20 69 74 73 20 6c 61 62 65 .NODE.contains.LABEL.in.its.labe
1da40 6c 20 73 65 74 2e 0a 4e 4f 44 45 20 69 73 20 61 20 60 6a 73 32 2d 6c 61 62 65 6c 73 2d 6e 6f 64 l.set..NODE.is.a.`js2-labels-nod
1da60 65 27 2e 20 20 4c 41 42 45 4c 20 69 73 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2e 22 0a 20 20 e'...LABEL.is.an.identifier."...
1da80 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6e 6c 20 69 6e 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d (cl-loop.for.nl.in.(js2-labeled-
1daa0 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 stmt-node-labels.node)..........
1dac0 20 20 69 66 20 28 73 74 72 69 6e 67 3d 20 6c 61 62 65 6c 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e ..if.(string=.label.(js2-label-n
1dae0 6f 64 65 2d 6e 61 6d 65 20 6e 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ode-name.nl))............return.
1db00 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 6e 69 6c 29 t............finally.return.nil)
1db20 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f )..(defsubst.js2-labeled-stmt-no
1db40 64 65 2d 61 64 64 2d 6c 61 62 65 6c 20 28 6e 6f 64 65 20 6c 61 62 65 6c 29 0a 20 20 22 41 64 64 de-add-label.(node.label)..."Add
1db60 20 61 20 60 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 27 20 74 6f 20 74 68 65 20 6c 61 62 65 6c .a.`js2-label-node'.to.the.label
1db80 20 73 65 74 20 66 6f 72 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 73 65 74 .set.for.this.statement."...(set
1dba0 66 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20 f.(js2-labeled-stmt-node-labels.
1dbc0 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6a 73 32 2d 6c 61 62 65 6c 65 node).........(nconc.(js2-labele
1dbe0 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20 6e 6f 64 65 29 20 28 6c 69 73 74 20 6c d-stmt-node-labels.node).(list.l
1dc00 61 62 65 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6a 75 6d abel))))..(cl-defstruct.(js2-jum
1dc20 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 p-node................(:include.
1dc40 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 js2-node)................(:const
1dc60 72 75 63 74 6f 72 20 6e 69 6c 29 29 0a 20 20 22 41 62 73 74 72 61 63 74 20 73 75 70 65 72 74 79 ructor.nil))..."Abstract.superty
1dc80 70 65 20 6f 66 20 62 72 65 61 6b 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 6e 6f 64 65 73 2e 22 pe.of.break.and.continue.nodes."
1dca0 0a 20 20 6c 61 62 65 6c 20 20 20 3b 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 66 6f 72 ...label...;.`js2-name-node'.for
1dcc0 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 6c 61 62 65 6c 20 69 64 65 6e 74 69 66 69 65 72 2c 20 69 .location.of.label.identifier,.i
1dce0 66 20 70 72 65 73 65 6e 74 0a 20 20 74 61 72 67 65 74 29 20 3b 20 74 61 72 67 65 74 20 6a 73 32 f.present...target).;.target.js2
1dd00 2d 6c 61 62 65 6c 73 2d 6e 6f 64 65 20 6f 72 20 6c 6f 6f 70 2f 73 77 69 74 63 68 20 73 74 61 74 -labels-node.or.loop/switch.stat
1dd20 65 6d 65 6e 74 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6a 75 6d 70 2d 6e 6f 64 ement..(defun.js2-visit-jump-nod
1dd40 65 20 28 6e 20 76 29 0a 20 20 3b 3b 20 57 65 20 64 6f 6e 27 74 20 76 69 73 69 74 20 74 68 65 20 e.(n.v)...;;.We.don't.visit.the.
1dd60 74 61 72 67 65 74 2c 20 73 69 6e 63 65 20 69 74 27 73 20 61 20 62 61 63 6b 2d 6c 69 6e 6b 2e 0a target,.since.it's.a.back-link..
1dd80 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 6a 75 6d 70 2d 6e 6f 64 65 2d ..(js2-visit-ast.(js2-jump-node-
1dda0 6c 61 62 65 6c 20 6e 29 20 76 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 label.n).v))..(cl-defstruct.(js2
1ddc0 2d 62 72 65 61 6b 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 -break-node................(:inc
1dde0 6c 75 64 65 20 6a 73 32 2d 6a 75 6d 70 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 lude.js2-jump-node).............
1de00 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 62 72 65 61 6b 2d ...(:constructor.make-js2-break-
1de20 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 42 52 45 41 4b 29 0a 20 20 20 20 node.(&key.(type.js2-BREAK).....
1de40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 ...................(pos.js2-ts-c
1de80 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ursor)..........................
1dea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 ..............................le
1dec0 6e 20 6c 61 62 65 6c 20 74 61 72 67 65 74 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f n.label.target)))..."AST.node.fo
1dee0 72 20 61 20 62 72 65 61 6b 20 73 74 61 74 65 6d 65 6e 74 2e 0a 54 68 65 20 6c 61 62 65 6c 20 66 r.a.break.statement..The.label.f
1df00 69 65 6c 64 20 69 73 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2c 20 70 6f 73 73 69 ield.is.a.`js2-name-node',.possi
1df20 62 6c 79 20 6e 69 6c 2c 20 66 6f 72 20 74 68 65 20 6e 61 6d 65 64 20 6c 61 62 65 6c 0a 69 66 20 bly.nil,.for.the.named.label.if.
1df40 70 72 6f 76 69 64 65 64 2e 20 20 45 2e 67 2e 20 69 6e 20 60 62 72 65 61 6b 20 66 6f 6f 27 2c 20 provided...E.g..in.`break.foo',.
1df60 69 74 20 72 65 70 72 65 73 65 6e 74 73 20 60 66 6f 6f 27 2e 20 20 54 68 65 20 74 61 72 67 65 74 it.represents.`foo'...The.target
1df80 20 66 69 65 6c 64 0a 69 73 20 74 68 65 20 74 61 72 67 65 74 20 6f 66 20 74 68 65 20 62 72 65 61 .field.is.the.target.of.the.brea
1dfa0 6b 20 2d 20 61 20 6c 61 62 65 6c 20 6e 6f 64 65 20 6f 72 20 65 6e 63 6c 6f 73 69 6e 67 20 6c 6f k.-.a.label.node.or.enclosing.lo
1dfc0 6f 70 2f 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 op/switch.statement.")..(js2--st
1dfe0 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 ruct-put.'js2-break-node.'js2-vi
1e000 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6a 75 6d 70 2d 6e 6f 64 65 29 0a 28 6a 73 32 sitor.'js2-visit-jump-node).(js2
1e020 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 27 6a 73 --struct-put.'js2-break-node.'js
1e040 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 62 72 65 61 6b 2d 6e 6f 64 65 29 2-printer.'js2-print-break-node)
1e060 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 28 6e ..(defun.js2-print-break-node.(n
1e080 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 .i)...(insert.(js2-make-pad.i)."
1e0a0 62 72 65 61 6b 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 2d break")...(when.(js2-break-node-
1e0c0 6c 61 62 65 6c 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a label.n).....(insert.".").....(j
1e0e0 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 2d 6c 61 62 s2-print-ast.(js2-break-node-lab
1e100 65 6c 20 6e 29 20 30 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e 22 29 29 0a 0a 28 63 6c el.n).0))...(insert.";\n"))..(cl
1e120 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 0a 20 20 -defstruct.(js2-continue-node...
1e140 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6a 75 6d 70 2d .............(:include.js2-jump-
1e160 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 node)................(:construct
1e180 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 or.make-js2-continue-node.(&key.
1e1a0 28 74 79 70 65 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (type.js2-CONTINUE).............
1e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 ..............(pos.js2-ts-cursor
1e200 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1e220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 ............................len.
1e240 6c 61 62 65 6c 20 74 61 72 67 65 74 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 label.target)))..."AST.node.for.
1e260 61 20 63 6f 6e 74 69 6e 75 65 20 73 74 61 74 65 6d 65 6e 74 2e 0a 54 68 65 20 6c 61 62 65 6c 20 a.continue.statement..The.label.
1e280 66 69 65 6c 64 20 69 73 20 74 68 65 20 75 73 65 72 2d 73 75 70 70 6c 69 65 64 20 65 6e 63 6c 6f field.is.the.user-supplied.enclo
1e2a0 73 69 6e 67 20 6c 61 62 65 6c 20 6e 61 6d 65 2c 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 sing.label.name,.a.`js2-name-nod
1e2c0 65 27 2e 0a 49 74 20 69 73 20 6e 69 6c 20 69 66 20 63 6f 6e 74 69 6e 75 65 20 73 70 65 63 69 66 e'..It.is.nil.if.continue.specif
1e2e0 69 65 73 20 6e 6f 20 6c 61 62 65 6c 2e 20 20 54 68 65 20 74 61 72 67 65 74 20 66 69 65 6c 64 20 ies.no.label...The.target.field.
1e300 69 73 20 74 68 65 20 6a 75 6d 70 20 74 61 72 67 65 74 3a 0a 61 20 60 6a 73 32 2d 6c 61 62 65 6c is.the.jump.target:.a.`js2-label
1e320 2d 6e 6f 64 65 27 20 6f 72 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 65 6e 63 6c 6f 73 69 6e -node'.or.the.innermost.enclosin
1e340 67 20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 g.loop.")..(js2--struct-put.'js2
1e360 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 -continue-node.'js2-visitor.'js2
1e380 2d 76 69 73 69 74 2d 6a 75 6d 70 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 -visit-jump-node).(js2--struct-p
1e3a0 75 74 20 27 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 ut.'js2-continue-node.'js2-print
1e3c0 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 29 0a 0a 28 64 er.'js2-print-continue-node)..(d
1e3e0 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 28 6e 20 efun.js2-print-continue-node.(n.
1e400 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 63 i)...(insert.(js2-make-pad.i)."c
1e420 6f 6e 74 69 6e 75 65 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d ontinue")...(when.(js2-continue-
1e440 6e 6f 64 65 2d 6c 61 62 65 6c 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 node-label.n).....(insert.".")..
1e460 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d ...(js2-print-ast.(js2-continue-
1e480 6e 6f 64 65 2d 6c 61 62 65 6c 20 6e 29 20 30 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e node-label.n).0))...(insert.";\n
1e4a0 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e "))..(cl-defstruct.(js2-function
1e4c0 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a -node................(:include.j
1e4e0 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 s2-script-node)................(
1e500 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e :constructor.make-js2-function-n
1e520 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20 ode.(&key.(type.js2-FUNCTION)...
1e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 ........................(pos.js2
1e580 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ts-cursor).....................
1e5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e5c0 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......len.......................
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e600 20 20 20 20 28 66 74 79 70 65 20 27 46 55 4e 43 54 49 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 ....(ftype.'FUNCTION)...........
1e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 20 27 46 55 4e 43 54 49 4f 4e 5f ................(form.'FUNCTION_
1e660 53 54 41 54 45 4d 45 4e 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 STATEMENT)......................
1e680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e6a0 20 20 20 20 20 28 6e 61 6d 65 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(name."")..................
1e6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e6e0 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 20 72 65 73 74 2d 70 0a 20 20 20 20 20 20 20 20 20 .........params.rest-p..........
1e700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 .................body...........
1e740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 0a 20 ................generator-type..
1e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 79 6e 63 0a 20 .........................async..
1e7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 .........................lp.rp))
1e800 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 )..."AST.node.for.a.function.dec
1e820 6c 61 72 61 74 69 6f 6e 2e 0a 54 68 65 20 60 70 61 72 61 6d 73 27 20 66 69 65 6c 64 20 69 73 20 laration..The.`params'.field.is.
1e840 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 2e 20 20 45 61 63 68 20 6e 6f 64 65 a.Lisp.list.of.nodes...Each.node
1e860 20 69 73 20 65 69 74 68 65 72 20 61 20 73 69 6d 70 6c 65 0a 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f .is.either.a.simple.`js2-name-no
1e880 64 65 27 2c 20 6f 72 20 69 66 20 69 74 27 73 20 61 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d de',.or.if.it's.a.destructuring-
1e8a0 61 73 73 69 67 6e 6d 65 6e 74 20 70 61 72 61 6d 65 74 65 72 2c 20 61 0a 60 6a 73 32 2d 61 72 72 assignment.parameter,.a.`js2-arr
1e8c0 61 79 2d 6e 6f 64 65 27 20 6f 72 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27 2e 22 0a ay-node'.or.`js2-object-node'.".
1e8e0 20 20 66 74 79 70 65 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 46 55 4e 43 54 49 4f 4e 2c 20 47 ..ftype............;.FUNCTION,.G
1e900 45 54 54 45 52 20 6f 72 20 53 45 54 54 45 52 0a 20 20 66 6f 72 6d 20 20 20 20 20 20 20 20 20 20 ETTER.or.SETTER...form..........
1e920 20 20 20 3b 20 46 55 4e 43 54 49 4f 4e 5f 7b 53 54 41 54 45 4d 45 4e 54 7c 45 58 50 52 45 53 53 ...;.FUNCTION_{STATEMENT|EXPRESS
1e940 49 4f 4e 7c 41 52 52 4f 57 7d 0a 20 20 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ION|ARROW}...name.............;.
1e960 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 28 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 function.name.(a.`js2-name-node'
1e980 2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 6e 6f 6e 79 6d 6f 75 73 29 0a 20 20 70 61 72 61 6d 73 20 ,.or.nil.if.anonymous)...params.
1e9a0 20 20 20 20 20 20 20 20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 64 65 73 74 72 ..........;.a.Lisp.list.of.destr
1e9c0 75 63 74 75 72 69 6e 67 20 66 6f 72 6d 73 20 6f 72 20 73 69 6d 70 6c 65 20 6e 61 6d 65 20 6e 6f ucturing.forms.or.simple.name.no
1e9e0 64 65 73 0a 20 20 72 65 73 74 2d 70 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 74 2c 20 74 des...rest-p...........;.if.t,.t
1ea00 68 65 20 6c 61 73 74 20 70 61 72 61 6d 65 74 65 72 20 69 73 20 72 65 73 74 20 70 61 72 61 6d 65 he.last.parameter.is.rest.parame
1ea20 74 65 72 0a 20 20 62 6f 64 79 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 20 60 6a 73 32 2d ter...body.............;.a.`js2-
1ea40 62 6c 6f 63 6b 2d 6e 6f 64 65 27 20 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 20 28 block-node'.or.expression.node.(
1ea60 31 2e 38 20 6f 6e 6c 79 29 0a 20 20 6c 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 1.8.only)...lp...............;.p
1ea80 6f 73 69 74 69 6f 6e 20 6f 66 20 61 72 67 2d 6c 69 73 74 20 6f 70 65 6e 2d 70 61 72 65 6e 2c 20 osition.of.arg-list.open-paren,.
1eaa0 6f 72 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 20 20 20 20 20 20 20 20 20 20 or.nil.if.omitted...rp..........
1eac0 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 61 72 67 2d 6c 69 73 74 20 63 6c 6f 73 .....;.position.of.arg-list.clos
1eae0 65 2d 70 61 72 65 6e 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 69 67 6e e-paren,.or.nil.if.omitted...ign
1eb00 6f 72 65 2d 64 79 6e 61 6d 69 63 20 20 20 3b 20 69 67 6e 6f 72 65 20 76 61 6c 75 65 20 6f 66 20 ore-dynamic...;.ignore.value.of.
1eb20 74 68 65 20 64 79 6e 61 6d 69 63 2d 73 63 6f 70 65 20 66 6c 61 67 20 28 69 6e 74 65 72 70 72 65 the.dynamic-scope.flag.(interpre
1eb40 74 65 72 20 6f 6e 6c 79 29 0a 20 20 6e 65 65 64 73 2d 61 63 74 69 76 61 74 69 6f 6e 20 3b 20 74 ter.only)...needs-activation.;.t
1eb60 20 69 66 20 77 65 20 6e 65 65 64 20 61 6e 20 61 63 74 69 76 61 74 69 6f 6e 20 6f 62 6a 65 63 74 .if.we.need.an.activation.object
1eb80 20 66 6f 72 20 74 68 69 73 20 66 72 61 6d 65 0a 20 20 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 .for.this.frame...generator-type
1eba0 20 20 20 3b 20 53 54 41 52 2c 20 4c 45 47 41 43 59 2c 20 43 4f 4d 50 52 45 48 45 4e 53 49 4f 4e ...;.STAR,.LEGACY,.COMPREHENSION
1ebc0 20 6f 72 20 6e 69 6c 0a 20 20 61 73 79 6e 63 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 20 69 .or.nil...async............;.t.i
1ebe0 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 60 61 73 f.the.function.is.defined.as.`as
1ec00 79 6e 63 20 66 75 6e 63 74 69 6f 6e 60 0a 20 20 6d 65 6d 62 65 72 2d 65 78 70 72 29 20 20 20 20 ync.function`...member-expr)....
1ec20 20 3b 20 6e 6f 6e 73 74 61 6e 64 61 72 64 20 45 63 6d 61 20 65 78 74 65 6e 73 69 6f 6e 20 66 72 .;.nonstandard.Ecma.extension.fr
1ec40 6f 6d 20 52 68 69 6e 6f 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d om.Rhino..(js2--struct-put.'js2-
1ec60 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d function-node.'js2-visitor.'js2-
1ec80 76 69 73 69 74 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 visit-function-node).(js2--struc
1eca0 74 2d 70 75 74 20 27 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 t-put.'js2-function-node.'js2-pr
1ecc0 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 29 0a inter.'js2-print-function-node).
1ece0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 .(defun.js2-visit-function-node.
1ed00 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 75 6e 63 (n.v)...(js2-visit-ast.(js2-func
1ed20 74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 tion-node-name.n).v)...(dolist.(
1ed40 70 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 29 29 0a p.(js2-function-node-params.n)).
1ed60 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 70 20 76 29 29 0a 20 20 28 6a 73 32 2d ....(js2-visit-ast.p.v))...(js2-
1ed80 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 visit-ast.(js2-function-node-bod
1eda0 79 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 66 75 6e 63 74 y.n).v))..(defun.js2-print-funct
1edc0 69 6f 6e 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 64 20 28 6a 73 ion-node.(n.i)...(let*.((pad.(js
1ede0 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 74 68 6f 64 20 2-make-pad.i))..........(method.
1ee00 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 6e 20 27 4d 45 54 48 4f 44 5f 54 59 50 (js2-node-get-prop.n.'METHOD_TYP
1ee20 45 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 E))..........(name.(or.(js2-func
1ee40 74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion-node-name.n)...............
1ee60 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 6d 65 6d 62 65 72 2d 65 .....(js2-function-node-member-e
1ee80 78 70 72 20 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 61 6d 73 20 28 6a 73 32 2d 66 xpr.n)))..........(params.(js2-f
1eea0 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 unction-node-params.n)).........
1eec0 20 28 61 72 72 6f 77 20 28 65 71 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66 .(arrow.(eq.(js2-function-node-f
1eee0 6f 72 6d 20 6e 29 20 27 46 55 4e 43 54 49 4f 4e 5f 41 52 52 4f 57 29 29 0a 20 20 20 20 20 20 20 orm.n).'FUNCTION_ARROW))........
1ef00 20 20 28 72 65 73 74 2d 70 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 65 73 ..(rest-p.(js2-function-node-res
1ef20 74 2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63 t-p.n))..........(body.(js2-func
1ef40 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 tion-node-body.n))..........(exp
1ef60 72 20 28 6e 6f 74 20 28 65 71 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66 6f r.(not.(eq.(js2-function-node-fo
1ef80 72 6d 20 6e 29 20 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29 29 29 29 0a 20 20 rm.n).'FUNCTION_STATEMENT))))...
1efa0 20 20 28 75 6e 6c 65 73 73 20 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 ..(unless.method.......(insert.p
1efc0 61 64 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f ad).......(when.(js2-function-no
1efe0 64 65 2d 61 73 79 6e 63 20 6e 29 20 28 69 6e 73 65 72 74 20 22 61 73 79 6e 63 20 22 29 29 0a 20 de-async.n).(insert."async."))..
1f000 20 20 20 20 20 28 75 6e 6c 65 73 73 20 61 72 72 6f 77 20 28 69 6e 73 65 72 74 20 22 66 75 6e 63 .....(unless.arrow.(insert."func
1f020 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6a 73 32 2d 66 75 6e tion")).......(when.(eq.(js2-fun
1f040 63 74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 20 6e 29 20 27 53 54 ction-node-generator-type.n).'ST
1f060 41 52 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 22 29 29 29 0a 20 20 20 20 28 AR).........(insert."*"))).....(
1f080 77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 when.name.......(insert.".")....
1f0a0 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6e 61 6d 65 20 30 29 29 0a 20 20 20 20 28 ...(js2-print-ast.name.0)).....(
1f0c0 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6c 65 insert."(").....(cl-loop.with.le
1f0e0 6e 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 n.=.(length.params).............
1f100 20 66 6f 72 20 70 61 72 61 6d 20 69 6e 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 .for.param.in.params............
1f120 20 20 66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..for.count.from.1..............
1f140 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72 65 73 74 2d do..............(when.(and.rest-
1f160 70 20 28 3d 20 63 6f 75 6e 74 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.(=.count.len))................
1f180 28 69 6e 73 65 72 74 20 22 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 (insert."..."))..............(js
1f1a0 32 2d 70 72 69 6e 74 2d 61 73 74 20 70 61 72 61 6d 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 2-print-ast.param.0)............
1f1c0 20 20 28 77 68 65 6e 20 28 3c 20 63 6f 75 6e 74 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 ..(when.(<.count.len)...........
1f1e0 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c 20 22 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 .....(insert.",."))).....(insert
1f200 20 22 29 20 22 29 0a 20 20 20 20 28 77 68 65 6e 20 61 72 72 6f 77 0a 20 20 20 20 20 20 28 69 6e .").").....(when.arrow.......(in
1f220 73 65 72 74 20 22 3d 3e 20 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 7b 22 29 0a 20 20 sert."=>.")).....(insert."{")...
1f240 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 66 69 78 20 74 68 69 73 20 74 6f 20 62 65 20 73 6d 61 72 74 ..;;.TODO:..fix.this.to.be.smart
1f260 65 72 20 61 62 6f 75 74 20 69 6e 64 65 6e 74 69 6e 67 2c 20 65 74 63 2e 0a 20 20 20 20 28 75 6e er.about.indenting,.etc......(un
1f280 6c 65 73 73 20 65 78 70 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 less.expr.......(insert."\n"))..
1f2a0 20 20 20 28 69 66 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 20 62 6f 64 79 29 0a 20 ...(if.(js2-block-node-p.body)..
1f2c0 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 62 6f 64 79 20 28 31 2b 20 .......(js2-print-body.body.(1+.
1f2e0 69 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 62 6f 64 79 20 30 29 i)).......(js2-print-ast.body.0)
1f300 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d 22 29 0a 20 20 20 20 28 75 6e 6c 65 ).....(insert.pad."}").....(unle
1f320 73 73 20 65 78 70 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 0a ss.expr.......(insert."\n"))))..
1f340 28 64 65 66 75 6e 20 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a (defun.js2-function-name.(node).
1f360 20 20 22 52 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 66 6f 72 20 4e 4f 44 45 .."Return.function.name.for.NODE
1f380 2c 20 61 20 60 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 27 2c 20 6f 72 20 6e 69 6c 20 ,.a.`js2-function-node',.or.nil.
1f3a0 69 66 20 61 6e 6f 6e 79 6d 6f 75 73 2e 22 0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 if.anonymous."...(and.(js2-funct
1f3c0 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d ion-node-name.node)........(js2-
1f3e0 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 name-node-name.(js2-function-nod
1f400 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 0a 0a 3b 3b 20 48 61 76 69 6e 67 20 74 68 69 73 20 e-name.node))))..;;.Having.this.
1f420 62 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 20 6d 61 6b 65 73 20 69 74 20 6d be.an.expression.node.makes.it.m
1f440 6f 72 65 20 66 6c 65 78 69 62 6c 65 2e 0a 3b 3b 20 54 68 65 72 65 20 61 72 65 20 49 44 45 20 63 ore.flexible..;;.There.are.IDE.c
1f460 6f 6e 74 65 78 74 73 2c 20 73 75 63 68 20 61 73 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 69 6e 20 ontexts,.such.as.indentation.in.
1f480 61 20 66 6f 72 2d 6c 6f 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65 72 2c 0a 3b 3b 20 74 68 61 74 20 a.for-loop.initializer,.;;.that.
1f4a0 77 6f 72 6b 20 62 65 74 74 65 72 20 69 66 20 79 6f 75 20 61 73 73 75 6d 65 20 69 74 27 73 20 61 work.better.if.you.assume.it's.a
1f4c0 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 20 57 68 65 6e 65 76 65 72 20 77 65 20 68 61 76 65 0a n.expression...Whenever.we.have.
1f4e0 3b 3b 20 61 20 73 74 61 6e 64 61 6c 6f 6e 65 20 76 61 72 2f 63 6f 6e 73 74 20 64 65 63 6c 61 72 ;;.a.standalone.var/const.declar
1f500 61 74 69 6f 6e 2c 20 77 65 20 6a 75 73 74 20 77 72 61 70 20 77 69 74 68 20 61 6e 20 65 78 70 72 ation,.we.just.wrap.with.an.expr
1f520 20 73 74 6d 74 2e 0a 3b 3b 20 45 63 6c 69 70 73 65 20 61 70 70 61 72 65 6e 74 6c 79 20 73 63 72 .stmt..;;.Eclipse.apparently.scr
1f540 65 77 65 64 20 74 68 69 73 20 75 70 20 61 6e 64 20 6e 6f 77 20 68 61 73 20 74 77 6f 20 76 65 72 ewed.this.up.and.now.has.two.ver
1f560 73 69 6f 6e 73 2c 20 65 78 70 72 20 61 6e 64 20 73 74 6d 74 2e 0a 28 63 6c 2d 64 65 66 73 74 72 sions,.expr.and.stmt..(cl-defstr
1f580 75 63 74 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 uct.(js2-var-decl-node..........
1f5a0 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 ......(:include.js2-node).......
1f5c0 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d .........(:constructor.make-js2-
1f5e0 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 56 41 var-decl-node.(&key.(type.js2-VA
1f600 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R)..............................
1f620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f .............................(po
1f640 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 s.(js2-current-token-beg))......
1f660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6b 69 64 73 0a 20 20 .....................len.kids...
1f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 63 6c 2d 74 79 70 ........................decl-typ
1f6e0 65 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 76 61 72 69 61 62 6c 65 20 e)))..."AST.node.for.a.variable.
1f700 64 65 63 6c 61 72 61 74 69 6f 6e 20 6c 69 73 74 20 28 56 41 52 2c 20 43 4f 4e 53 54 20 6f 72 20 declaration.list.(VAR,.CONST.or.
1f720 4c 45 54 29 2e 0a 54 68 65 20 6e 6f 64 65 20 62 6f 75 6e 64 73 20 64 69 66 66 65 72 20 64 65 70 LET)..The.node.bounds.differ.dep
1f740 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 79 70 65 2e 20 ending.on.the.declaration.type..
1f760 20 46 6f 72 20 56 41 52 20 6f 72 0a 43 4f 4e 53 54 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 .For.VAR.or.CONST.declarations,.
1f780 74 68 65 20 62 6f 75 6e 64 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 76 61 72 2f 63 6f 6e 73 74 the.bounds.include.the.var/const
1f7a0 20 6b 65 79 77 6f 72 64 2e 20 20 46 6f 72 20 4c 45 54 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c .keyword...For.LET.declarations,
1f7c0 20 74 68 65 20 6e 6f 64 65 20 62 65 67 69 6e 73 20 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e .the.node.begins.at.the.position
1f7e0 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 63 68 69 6c 64 2e 22 0a 20 20 6b 69 64 73 20 20 20 20 .of.the.first.child."...kids....
1f800 20 20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 76 61 72 2d 69 6e ....;.a.Lisp.list.of.`js2-var-in
1f820 69 74 2d 6e 6f 64 65 27 20 73 74 72 75 63 74 73 2e 0a 20 20 64 65 63 6c 2d 74 79 70 65 29 20 20 it-node'.structs....decl-type)..
1f840 3b 20 6a 73 32 2d 56 41 52 2c 20 6a 73 32 2d 43 4f 4e 53 54 20 6f 72 20 6a 73 32 2d 4c 45 54 0a ;.js2-VAR,.js2-CONST.or.js2-LET.
1f860 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d .(js2--struct-put.'js2-var-decl-
1f880 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 76 61 72 node.'js2-visitor.'js2-visit-var
1f8a0 2d 64 65 63 6c 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 76 61 72 -decl).(js2--struct-put.'js2-var
1f8c0 2d 64 65 63 6c 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 -decl-node.'js2-printer.'js2-pri
1f8e0 6e 74 2d 76 61 72 2d 64 65 63 6c 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 76 nt-var-decl)..(defun.js2-visit-v
1f900 61 72 2d 64 65 63 6c 20 28 6e 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 ar-decl.(n.v)...(dolist.(kid.(js
1f920 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 2-var-decl-node-kids.n)).....(js
1f940 32 2d 76 69 73 69 74 2d 61 73 74 20 6b 69 64 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2-visit-ast.kid.v)))..(defun.js2
1f960 2d 70 72 69 6e 74 2d 76 61 72 2d 64 65 63 6c 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 -print-var-decl.(n.i)...(let.((p
1f980 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 74 74 ad.(js2-make-pad.i)).........(tt
1f9a0 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 64 65 63 6c 2d 74 79 70 65 20 6e 29 .(js2-var-decl-node-decl-type.n)
1f9c0 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 )).....(insert.pad).....(insert.
1f9e0 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 56 41 (cond..............((=.tt.js2-VA
1fa00 52 29 20 22 76 61 72 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a R)."var.")..............((=.tt.j
1fa20 73 32 2d 4c 45 54 29 20 22 6c 65 74 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d s2-LET)."let.")..............((=
1fa40 20 74 74 20 6a 73 32 2d 43 4f 4e 53 54 29 20 22 63 6f 6e 73 74 20 22 29 0a 20 20 20 20 20 20 20 .tt.js2-CONST)."const.")........
1fa60 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6d ......(t...............(error."m
1fa80 61 6c 66 6f 72 6d 65 64 20 76 61 72 2d 64 65 63 6c 20 6e 6f 64 65 22 29 29 29 29 0a 20 20 20 20 alformed.var-decl.node")))).....
1faa0 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6b 69 64 73 20 3d 20 28 6a 73 32 2d 76 61 72 2d 64 65 (cl-loop.with.kids.=.(js2-var-de
1fac0 63 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 cl-node-kids.n)..............wit
1fae0 68 20 6c 65 6e 20 3d 20 28 6c 65 6e 67 74 68 20 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 h.len.=.(length.kids)...........
1fb00 20 20 20 66 6f 72 20 6b 69 64 20 69 6e 20 6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...for.kid.in.kids..............
1fb20 66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f for.count.from.1..............do
1fb40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64 ..............(js2-print-ast.kid
1fb60 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 63 6f 75 6e 74 20 6c 65 .0)..............(if.(<.count.le
1fb80 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c 20 22 n)..................(insert.",."
1fba0 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e )))))..(cl-defstruct.(js2-var-in
1fbc0 69 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 it-node................(:include
1fbe0 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 .js2-node)................(:cons
1fc00 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 28 tructor.make-js2-var-init-node.(
1fc20 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 56 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 &key.(type.js2-VAR).............
1fc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1fc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 ..............(pos.js2-ts-cursor
1fc80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1fca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 ............................len.
1fcc0 74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 target..........................
1fce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1fd00 20 69 6e 69 74 69 61 6c 69 7a 65 72 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 .initializer)))..."AST.node.for.
1fd20 61 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0a 54 68 65 20 74 79 70 65 a.variable.declaration..The.type
1fd40 20 66 69 65 6c 64 20 77 69 6c 6c 20 62 65 20 6a 73 32 2d 43 4f 4e 53 54 20 66 6f 72 20 61 20 63 .field.will.be.js2-CONST.for.a.c
1fd60 6f 6e 73 74 20 64 65 63 6c 2e 22 0a 20 20 74 61 72 67 65 74 20 20 20 20 20 20 20 20 3b 20 60 6a onst.decl."...target........;.`j
1fd80 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2c 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27 s2-name-node',.`js2-object-node'
1fda0 2c 20 6f 72 20 60 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 27 0a 20 20 69 6e 69 74 69 61 6c 69 ,.or.`js2-array-node'...initiali
1fdc0 7a 65 72 29 20 20 3b 20 69 6e 69 74 69 61 6c 69 7a 65 72 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 zer)..;.initializer.expression,.
1fde0 61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 a.`js2-node'..(js2--struct-put.'
1fe00 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 js2-var-init-node.'js2-visitor.'
1fe20 6a 73 32 2d 76 69 73 69 74 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 js2-visit-var-init-node).(js2--s
1fe40 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 27 6a 73 truct-put.'js2-var-init-node.'js
1fe60 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 2-printer.'js2-print-var-init-no
1fe80 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 76 61 72 2d 69 6e 69 74 2d 6e de)..(defun.js2-visit-var-init-n
1fea0 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ode.(n.v)...(js2-visit-ast.(js2-
1fec0 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 var-init-node-target.n).v)...(js
1fee0 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 2-visit-ast.(js2-var-init-node-i
1ff00 6e 69 74 69 61 6c 69 7a 65 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 nitializer.n).v))..(defun.js2-pr
1ff20 69 6e 74 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 int-var-init-node.(n.i)...(let.(
1ff40 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28 (pad.(js2-make-pad.i)).........(
1ff60 6e 61 6d 65 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e name.(js2-var-init-node-target.n
1ff80 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 69 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e )).........(init.(js2-var-init-n
1ffa0 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 ode-initializer.n))).....(insert
1ffc0 20 70 61 64 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6e 61 6d 65 20 30 29 .pad).....(js2-print-ast.name.0)
1ffe0 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 69 74 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 .....(when.init.......(insert.".
20000 3d 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 69 6e 69 74 20 30 =.").......(js2-print-ast.init.0
20020 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f ))))..(cl-defstruct.(js2-cond-no
20040 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d de................(:include.js2-
20060 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 node)................(:construct
20080 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 or.make-js2-cond-node.(&key.(typ
200a0 65 20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.js2-HOOK).....................
200c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
200e0 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 ..(pos.js2-ts-cursor)...........
20100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20120 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............len.................
20140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20160 20 20 20 20 20 20 74 65 73 74 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......test-expr.................
20180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
201a0 20 20 20 20 20 20 74 72 75 65 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......true-expr.................
201c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
201e0 20 20 20 20 20 20 66 61 6c 73 65 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......false-expr................
20200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20220 20 20 20 20 20 20 20 71 2d 70 6f 73 20 63 2d 70 6f 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 .......q-pos.c-pos)))..."AST.nod
20240 65 20 66 6f 72 20 74 68 65 20 74 65 72 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 22 0a 20 20 74 65 e.for.the.ternary.operator"...te
20260 73 74 2d 65 78 70 72 0a 20 20 74 72 75 65 2d 65 78 70 72 0a 20 20 66 61 6c 73 65 2d 65 78 70 72 st-expr...true-expr...false-expr
20280 0a 20 20 71 2d 70 6f 73 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 ...q-pos...;.buffer.position.of.
202a0 3f 0a 20 20 63 2d 70 6f 73 29 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 ?...c-pos)..;.buffer.position.of
202c0 20 3a 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6e 64 2d 6e .:..(js2--struct-put.'js2-cond-n
202e0 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6e 64 ode.'js2-visitor.'js2-visit-cond
20300 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6e -node).(js2--struct-put.'js2-con
20320 64 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 d-node.'js2-printer.'js2-print-c
20340 6f 6e 64 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6e 64 ond-node)..(defun.js2-visit-cond
20360 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 -node.(n.v)...(js2-visit-ast.(js
20380 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 65 73 74 2d 65 78 70 72 20 6e 29 20 76 29 0a 20 20 28 6a 2-cond-node-test-expr.n).v)...(j
203a0 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 72 75 65 s2-visit-ast.(js2-cond-node-true
203c0 2d 65 78 70 72 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 -expr.n).v)...(js2-visit-ast.(js
203e0 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c 73 65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28 2-cond-node-false-expr.n).v))..(
20400 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6e 64 2d 6e 6f 64 65 20 28 6e 20 69 29 0a defun.js2-print-cond-node.(n.i).
20420 20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a ..(let.((pad.(js2-make-pad.i))).
20440 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d ....(insert.pad).....(js2-print-
20460 61 73 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 65 73 74 2d 65 78 70 72 20 6e 29 20 ast.(js2-cond-node-test-expr.n).
20480 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 3f 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 0).....(insert.".?.").....(js2-p
204a0 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 72 75 65 2d 65 78 70 rint-ast.(js2-cond-node-true-exp
204c0 72 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 3a 20 22 29 0a 20 20 20 20 28 r.n).0).....(insert.".:.").....(
204e0 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c js2-print-ast.(js2-cond-node-fal
20500 73 65 2d 65 78 70 72 20 6e 29 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 se-expr.n).0)))..(cl-defstruct.(
20520 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a js2-infix-node................(:
20540 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 include.js2-node)...............
20560 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f .(:constructor.make-js2-infix-no
20580 64 65 20 28 26 6b 65 79 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de.(&key.type...................
205a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
205c0 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 .....(pos.js2-ts-cursor)........
205e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 ................len.op-pos......
20620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
20640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 20 72 69 67 68 74 29 29 29 0a ..................left.right))).
20660 20 20 22 52 65 70 72 65 73 65 6e 74 73 20 69 6e 66 69 78 20 65 78 70 72 65 73 73 69 6f 6e 73 2e .."Represents.infix.expressions.
20680 0a 49 6e 63 6c 75 64 65 73 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 70 73 20 6c 69 6b 65 20 60 7c .Includes.assignment.ops.like.`|
206a0 3d 27 2c 20 61 6e 64 20 74 68 65 20 63 6f 6d 6d 61 20 6f 70 65 72 61 74 6f 72 2e 0a 54 68 65 20 =',.and.the.comma.operator..The.
206c0 74 79 70 65 20 66 69 65 6c 64 20 69 6e 68 65 72 69 74 65 64 20 66 72 6f 6d 20 60 6a 73 32 2d 6e type.field.inherited.from.`js2-n
206e0 6f 64 65 27 20 68 6f 6c 64 73 20 74 68 65 20 6f 70 65 72 61 74 6f 72 2e 22 0a 20 20 6f 70 2d 70 ode'.holds.the.operator."...op-p
20700 6f 73 20 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 77 68 65 72 65 20 6f 70 os....;.buffer.position.where.op
20720 65 72 61 74 6f 72 20 62 65 67 69 6e 73 0a 20 20 6c 65 66 74 20 20 20 20 20 20 3b 20 61 6e 79 20 erator.begins...left......;.any.
20740 60 6a 73 32 2d 6e 6f 64 65 27 0a 20 20 72 69 67 68 74 29 20 20 20 20 3b 20 61 6e 79 20 60 6a 73 `js2-node'...right)....;.any.`js
20760 32 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 2-node'..(js2--struct-put.'js2-i
20780 6e 66 69 78 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 nfix-node.'js2-visitor.'js2-visi
207a0 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 t-infix-node).(js2--struct-put.'
207c0 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 js2-infix-node.'js2-printer.'js2
207e0 2d 70 72 69 6e 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 -print-infix-node)..(defun.js2-v
20800 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 isit-infix-node.(n.v)...(js2-vis
20820 69 74 2d 61 73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 20 76 it-ast.(js2-infix-node-left.n).v
20840 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f )...(js2-visit-ast.(js2-infix-no
20860 64 65 2d 72 69 67 68 74 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6f de-right.n).v))..(defconst.js2-o
20880 70 65 72 61 74 6f 72 2d 74 6f 6b 65 6e 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d perator-tokens...(let.((table.(m
208a0 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 29 29 0a 20 20 20 20 20 ake-hash-table.:test.'eq))......
208c0 20 20 20 28 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 ...(tokens..........(list.(cons.
208e0 6a 73 32 2d 49 4e 20 22 69 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e js2-IN."in")................(con
20900 73 20 6a 73 32 2d 54 59 50 45 4f 46 20 22 74 79 70 65 6f 66 22 29 0a 20 20 20 20 20 20 20 20 20 s.js2-TYPEOF."typeof")..........
20920 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 20 22 69 6e 73 74 ......(cons.js2-INSTANCEOF."inst
20940 61 6e 63 65 6f 66 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 anceof")................(cons.js
20960 32 2d 44 45 4c 50 52 4f 50 20 22 64 65 6c 65 74 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2-DELPROP."delete").............
20980 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 57 41 49 54 20 22 61 77 61 69 74 22 29 0a 20 20 20 20 ...(cons.js2-AWAIT."await").....
209a0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 56 4f 49 44 20 22 76 6f 69 64 22 ...........(cons.js2-VOID."void"
209c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 43 4f 4d 4d 41 )................(cons.js2-COMMA
209e0 20 22 2c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 43 .",")................(cons.js2-C
20a00 4f 4c 4f 4e 20 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a OLON.":")................(cons.j
20a20 73 32 2d 4f 52 20 22 7c 7c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 s2-OR."||")................(cons
20a40 20 6a 73 32 2d 41 4e 44 20 22 26 26 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 .js2-AND."&&")................(c
20a60 6f 6e 73 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2d 43 4f 41 4c 45 53 43 49 4e 47 20 22 3f 3f 22 29 ons.js2-NULLISH-COALESCING."??")
20a80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 49 4e 43 20 22 2b ................(cons.js2-INC."+
20aa0 2b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 44 45 43 +")................(cons.js2-DEC
20ac0 20 22 2d 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d ."--")................(cons.js2-
20ae0 42 49 54 4f 52 20 22 7c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 BITOR."|")................(cons.
20b00 6a 73 32 2d 42 49 54 58 4f 52 20 22 5e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 js2-BITXOR."^")................(
20b20 63 6f 6e 73 20 6a 73 32 2d 42 49 54 41 4e 44 20 22 26 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 cons.js2-BITAND."&")............
20b40 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 45 51 20 22 3d 3d 22 29 0a 20 20 20 20 20 20 20 20 20 ....(cons.js2-EQ."==")..........
20b60 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4e 45 20 22 21 3d 22 29 0a 20 20 20 20 20 20 20 ......(cons.js2-NE."!=")........
20b80 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4c 54 20 22 3c 22 29 0a 20 20 20 20 20 20 ........(cons.js2-LT."<").......
20ba0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4c 45 20 22 3c 3d 22 29 0a 20 20 20 20 .........(cons.js2-LE."<=").....
20bc0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 47 54 20 22 3e 22 29 0a 20 20 20 ...........(cons.js2-GT.">")....
20be0 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 47 45 20 22 3e 3d 22 29 0a 20 ............(cons.js2-GE.">=")..
20c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4c 53 48 20 22 3c 3c 22 ..............(cons.js2-LSH."<<"
20c20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 52 53 48 20 22 )................(cons.js2-RSH."
20c40 3e 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 55 52 >>")................(cons.js2-UR
20c60 53 48 20 22 3e 3e 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a SH.">>>")................(cons.j
20c80 73 32 2d 41 44 44 20 22 2b 22 29 20 20 20 20 20 20 20 3b 20 69 6e 66 69 78 20 70 6c 75 73 0a 20 s2-ADD."+").......;.infix.plus..
20ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 53 55 42 20 22 2d 22 29 ..............(cons.js2-SUB."-")
20cc0 20 20 20 20 20 20 20 3b 20 69 6e 66 69 78 20 6d 69 6e 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 .......;.infix.minus............
20ce0 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4d 55 4c 20 22 2a 22 29 0a 20 20 20 20 20 20 20 20 20 ....(cons.js2-MUL."*")..........
20d00 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 45 58 50 4f 4e 20 22 2a 2a 22 29 0a 20 20 20 20 ......(cons.js2-EXPON."**").....
20d20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 44 49 56 20 22 2f 22 29 0a 20 20 ...........(cons.js2-DIV."/")...
20d40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4d 4f 44 20 22 25 22 29 0a .............(cons.js2-MOD."%").
20d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4e 4f 54 20 22 21 22 ...............(cons.js2-NOT."!"
20d80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 42 49 54 4e 4f )................(cons.js2-BITNO
20da0 54 20 22 7e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d T."~")................(cons.js2-
20dc0 50 4f 53 20 22 2b 22 29 20 20 20 20 20 20 20 3b 20 75 6e 61 72 79 20 70 6c 75 73 0a 20 20 20 20 POS."+").......;.unary.plus.....
20de0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4e 45 47 20 22 2d 22 29 20 20 20 ...........(cons.js2-NEG."-")...
20e00 20 20 20 20 3b 20 75 6e 61 72 79 20 6d 69 6e 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....;.unary.minus...............
20e20 20 28 63 6f 6e 73 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 20 22 2e 2e 2e 22 29 0a 20 20 20 20 .(cons.js2-TRIPLEDOT."...").....
20e40 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 53 48 45 51 20 22 3d 3d 3d 22 29 ...........(cons.js2-SHEQ."===")
20e60 20 20 20 20 3b 20 73 68 61 6c 6c 6f 77 20 65 71 75 61 6c 69 74 79 0a 20 20 20 20 20 20 20 20 20 ....;.shallow.equality..........
20e80 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 53 48 4e 45 20 22 21 3d 3d 22 29 20 20 20 20 3b ......(cons.js2-SHNE."!==")....;
20ea0 20 73 68 61 6c 6c 6f 77 20 69 6e 65 71 75 61 6c 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 .shallow.inequality.............
20ec0 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 20 22 3d 22 29 0a 20 20 20 20 20 20 20 ...(cons.js2-ASSIGN."=")........
20ee0 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 4f 52 20 22 ........(cons.js2-ASSIGN_BITOR."
20f00 7c 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 |=")................(cons.js2-AS
20f20 53 49 47 4e 5f 42 49 54 58 4f 52 20 22 5e 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SIGN_BITXOR."^=")...............
20f40 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 41 4e 44 20 22 26 3d 22 29 0a 20 .(cons.js2-ASSIGN_BITAND."&=")..
20f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4c ..............(cons.js2-ASSIGN_L
20f80 53 48 20 22 3c 3c 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a SH."<<=")................(cons.j
20fa0 73 32 2d 41 53 53 49 47 4e 5f 52 53 48 20 22 3e 3e 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 s2-ASSIGN_RSH.">>=")............
20fc0 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 20 22 3e 3e 3e 3d 22 ....(cons.js2-ASSIGN_URSH.">>>="
20fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 )................(cons.js2-ASSIG
21000 4e 5f 41 44 44 20 22 2b 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 N_ADD."+=")................(cons
21020 20 6a 73 32 2d 41 53 53 49 47 4e 5f 53 55 42 20 22 2d 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 .js2-ASSIGN_SUB."-=")...........
21040 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 55 4c 20 22 2a 3d 22 29 0a .....(cons.js2-ASSIGN_MUL."*=").
21060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f ...............(cons.js2-ASSIGN_
21080 45 58 50 4f 4e 20 22 2a 2a 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e EXPON."**=")................(con
210a0 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56 20 22 2f 3d 22 29 0a 20 20 20 20 20 20 20 20 20 s.js2-ASSIGN_DIV."/=")..........
210c0 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 4f 44 20 22 25 3d 22 29 ......(cons.js2-ASSIGN_MOD."%=")
210e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e ................(cons.js2-ASSIGN
21100 5f 41 4e 44 20 22 26 26 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 _AND."&&=")................(cons
21120 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4f 52 20 22 7c 7c 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 .js2-ASSIGN_OR."||=")...........
21140 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4e 55 4c 4c 49 53 48 20 22 3f .....(cons.js2-ASSIGN_NULLISH."?
21160 3f 3d 22 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 20 2e 20 76 29 ?=")))).....(cl-loop.for.(k...v)
21180 20 69 6e 20 74 6f 6b 65 6e 73 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 .in.tokens.do..............(puth
211a0 61 73 68 20 6b 20 76 20 74 61 62 6c 65 29 29 0a 20 20 20 20 74 61 62 6c 65 29 29 0a 0a 28 64 65 ash.k.v.table)).....table))..(de
211c0 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 fun.js2-print-infix-node.(n.i)..
211e0 20 28 6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 29 29 0a 20 .(let*.((tt.(js2-node-type.n))..
21200 20 20 20 20 20 20 20 20 28 6f 70 20 28 67 65 74 68 61 73 68 20 74 74 20 6a 73 32 2d 6f 70 65 72 ........(op.(gethash.tt.js2-oper
21220 61 74 6f 72 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 70 0a 20 20 ator-tokens))).....(unless.op...
21240 20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 69 6e 66 69 78 20 6f ....(error."unrecognized.infix.o
21260 70 65 72 61 74 6f 72 20 25 73 22 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 29 29 29 0a perator.%s".(js2-node-type.n))).
21280 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 ....(insert.(js2-make-pad.i))...
212a0 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 ..(js2-print-ast.(js2-infix-node
212c0 2d 6c 65 66 74 20 6e 29 20 30 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 74 74 20 6a 73 -left.n).0).....(unless.(=.tt.js
212e0 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 2-COMMA).......(insert."."))....
21300 20 28 69 6e 73 65 72 74 20 6f 70 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 .(insert.op).....(insert.".")...
21320 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 ..(js2-print-ast.(js2-infix-node
21340 2d 72 69 67 68 74 20 6e 29 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a -right.n).0)))..(cl-defstruct.(j
21360 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a s2-assign-node................(:
21380 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 include.js2-infix-node).........
213a0 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 73 .......(:constructor.make-js2-as
213c0 73 69 67 6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 sign-node.(&key.type............
213e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21400 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 .............(pos.js2-ts-cursor)
21420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6f 70 2d .........................len.op-
21460 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.............................
21480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 ............................left
214a0 20 72 69 67 68 74 29 29 29 0a 20 20 22 52 65 70 72 65 73 65 6e 74 73 20 61 6e 79 20 61 73 73 69 .right)))..."Represents.any.assi
214c0 67 6e 6d 65 6e 74 2e 0a 54 68 65 20 74 79 70 65 20 66 69 65 6c 64 20 68 6f 6c 64 73 20 74 68 65 gnment..The.type.field.holds.the
214e0 20 61 63 74 75 61 6c 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 70 65 72 61 74 6f 72 2e 22 29 0a 0a .actual.assignment.operator.")..
21500 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 (js2--struct-put.'js2-assign-nod
21520 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 6e 66 69 78 2d e.'js2-visitor.'js2-visit-infix-
21540 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 61 73 73 69 node).(js2--struct-put.'js2-assi
21560 67 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d gn-node.'js2-printer.'js2-print-
21580 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d infix-node)..(cl-defstruct.(js2-
215a0 75 6e 61 72 79 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c unary-node................(:incl
215c0 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 ude.js2-node)................(:c
215e0 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 28 onstructor.make-js2-unary-node.(
21600 26 6b 65 79 20 74 79 70 65 20 3b 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 &key.type.;.required............
21620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21640 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a ............(pos.js2-ts-cursor).
21660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6f 70 65 72 61 .......................len.opera
216a0 6e 64 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 74 79 70 65 20 66 6f 72 20 75 6e 61 72 79 nd)))..."AST.node.type.for.unary
216c0 20 6f 70 65 72 61 74 6f 72 20 6e 6f 64 65 73 2e 0a 54 68 65 20 74 79 70 65 20 66 69 65 6c 64 20 .operator.nodes..The.type.field.
216e0 63 61 6e 20 62 65 20 4e 4f 54 2c 20 42 49 54 4e 4f 54 2c 20 50 4f 53 2c 20 4e 45 47 2c 20 49 4e can.be.NOT,.BITNOT,.POS,.NEG,.IN
21700 43 2c 20 44 45 43 2c 0a 54 59 50 45 4f 46 2c 20 44 45 4c 50 52 4f 50 2c 20 54 52 49 50 4c 45 44 C,.DEC,.TYPEOF,.DELPROP,.TRIPLED
21720 4f 54 20 6f 72 20 41 57 41 49 54 2e 20 20 46 6f 72 20 49 4e 43 20 6f 72 20 44 45 43 2c 20 61 20 OT.or.AWAIT...For.INC.or.DEC,.a.
21740 27 70 6f 73 74 66 69 78 20 6e 6f 64 65 0a 70 72 6f 70 65 72 74 79 20 69 73 20 61 64 64 65 64 20 'postfix.node.property.is.added.
21760 69 66 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 6f 70 65 72 if.the.operator.follows.the.oper
21780 61 6e 64 2e 22 0a 20 20 6f 70 65 72 61 6e 64 29 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 and."...operand)..;.a.`js2-node'
217a0 20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a .expression..(js2--struct-put.'j
217c0 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d s2-unary-node.'js2-visitor.'js2-
217e0 76 69 73 69 74 2d 75 6e 61 72 79 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 visit-unary-node).(js2--struct-p
21800 75 74 20 27 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 ut.'js2-unary-node.'js2-printer.
21820 27 6a 73 32 2d 70 72 69 6e 74 2d 75 6e 61 72 79 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 'js2-print-unary-node)..(defun.j
21840 73 32 2d 76 69 73 69 74 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 s2-visit-unary-node.(n.v)...(js2
21860 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 -visit-ast.(js2-unary-node-opera
21880 6e 64 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 75 6e 61 72 nd.n).v))..(defun.js2-print-unar
218a0 79 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32 2d 6e y-node.(n.i)...(let*.((tt.(js2-n
218c0 6f 64 65 2d 74 79 70 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70 20 28 67 65 74 68 61 ode-type.n))..........(op.(getha
218e0 73 68 20 74 74 20 6a 73 32 2d 6f 70 65 72 61 74 6f 72 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 sh.tt.js2-operator-tokens)).....
21900 20 20 20 20 20 28 70 6f 73 74 66 69 78 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 .....(postfix.(js2-node-get-prop
21920 20 6e 20 27 70 6f 73 74 66 69 78 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 70 0a 20 20 .n.'postfix))).....(unless.op...
21940 20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 75 6e 61 72 79 20 6f ....(error."unrecognized.unary.o
21960 70 65 72 61 74 6f 72 20 25 73 22 20 74 74 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 perator.%s".tt)).....(insert.(js
21980 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 74 66 2-make-pad.i)).....(unless.postf
219a0 69 78 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6f 70 29 29 0a 20 20 20 20 28 69 66 20 28 6f ix.......(insert.op)).....(if.(o
219c0 72 20 28 3d 20 74 74 20 6a 73 32 2d 54 59 50 45 4f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r.(=.tt.js2-TYPEOF).............
219e0 28 3d 20 74 74 20 6a 73 32 2d 44 45 4c 50 52 4f 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 (=.tt.js2-DELPROP).............(
21a00 3d 20 74 74 20 6a 73 32 2d 41 57 41 49 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 =.tt.js2-AWAIT).............(=.t
21a20 74 20 6a 73 32 2d 56 4f 49 44 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 t.js2-VOID)).........(insert."."
21a40 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 75 6e 61 72 79 )).....(js2-print-ast.(js2-unary
21a60 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 6e 29 20 30 29 0a 20 20 20 20 28 77 68 65 6e 20 70 6f -node-operand.n).0).....(when.po
21a80 73 74 66 69 78 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6f 70 29 29 29 29 0a 0a 28 63 6c 2d stfix.......(insert.op))))..(cl-
21aa0 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 defstruct.(js2-let-node.........
21ac0 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 .......(:include.js2-scope).....
21ae0 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 ...........(:constructor.make-js
21b00 32 2d 6c 65 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4c 45 54 45 58 2-let-node.(&key.(type.js2-LETEX
21b20 50 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PR).............................
21b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a .........................(pos.(j
21b60 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 s2-current-token-beg))..........
21b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21ba0 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 76 61 72 73 20 62 6f 64 79 0a 20 20 20 20 20 20 ............len.vars.body.......
21bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e ...............lp.rp)))..."AST.n
21c00 6f 64 65 20 66 6f 72 20 61 20 6c 65 74 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72 20 61 20 6c 65 ode.for.a.let.expression.or.a.le
21c20 74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 4e 6f 74 65 20 74 68 61 74 20 61 20 6c 65 74 20 64 65 63 t.statement..Note.that.a.let.dec
21c40 6c 61 72 61 74 69 6f 6e 20 73 75 63 68 20 61 73 20 6c 65 74 20 78 3d 36 2c 20 79 3d 37 20 69 73 laration.such.as.let.x=6,.y=7.is
21c60 20 61 20 60 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 27 2e 22 0a 20 20 76 61 72 73 20 .a.`js2-var-decl-node'."...vars.
21c80 20 20 3b 20 61 20 60 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 27 0a 20 20 62 6f 64 79 ..;.a.`js2-var-decl-node'...body
21ca0 20 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 ...;.a.`js2-node'.representing.t
21cc0 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72 20 62 6f 64 79 20 62 6c 6f 63 6b 0a 20 20 6c 70 he.expression.or.body.block...lp
21ce0 0a 20 20 72 70 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 65 ...rp)..(js2--struct-put.'js2-le
21d00 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6c t-node.'js2-visitor.'js2-visit-l
21d20 65 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c et-node).(js2--struct-put.'js2-l
21d40 65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d et-node.'js2-printer.'js2-print-
21d60 6c 65 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6c 65 74 2d let-node)..(defun.js2-visit-let-
21d80 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 node.(n.v)...(js2-visit-ast.(js2
21da0 2d 6c 65 74 2d 6e 6f 64 65 2d 76 61 72 73 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 -let-node-vars.n).v)...(js2-visi
21dc0 74 2d 61 73 74 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 0a t-ast.(js2-let-node-body.n).v)).
21de0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6c 65 74 2d 6e 6f 64 65 20 28 6e 20 69 29 .(defun.js2-print-let-node.(n.i)
21e00 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 6c 65 74 ...(insert.(js2-make-pad.i)."let
21e20 20 28 22 29 0a 20 20 28 6c 65 74 20 28 28 70 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 6a .(")...(let.((p.(point))).....(j
21e40 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 76 61 72 73 20 s2-print-ast.(js2-let-node-vars.
21e60 6e 29 20 30 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 70 20 28 2b 20 70 20 n).0).....(delete-region.p.(+.p.
21e80 34 29 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 29 20 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 4)))...(insert.").")...(js2-prin
21ea0 74 2d 61 73 74 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 69 29 29 0a t-ast.(js2-let-node-body.n).i)).
21ec0 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 .(cl-defstruct.(js2-keyword-node
21ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f ................(:include.js2-no
21f00 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 de)................(:constructor
21f20 20 6d 61 6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 28 26 6b 65 79 20 74 79 70 .make-js2-keyword-node.(&key.typ
21f40 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
21f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 ...........................(pos.
21f80 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 (js2-current-token-beg))........
21fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 ..................(len.(-.js2-ts
21fe0 2d 63 75 72 73 6f 72 20 70 6f 73 29 29 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 72 65 70 -cursor.pos)))))..."AST.node.rep
22000 72 65 73 65 6e 74 69 6e 67 20 61 20 6c 69 74 65 72 61 6c 20 6b 65 79 77 6f 72 64 20 73 75 63 68 resenting.a.literal.keyword.such
22020 20 61 73 20 60 6e 75 6c 6c 27 2e 0a 55 73 65 64 20 66 6f 72 20 60 6e 75 6c 6c 27 2c 20 60 74 68 .as.`null'..Used.for.`null',.`th
22040 69 73 27 2c 20 60 74 72 75 65 27 2c 20 60 66 61 6c 73 65 27 20 61 6e 64 20 60 64 65 62 75 67 67 is',.`true',.`false'.and.`debugg
22060 65 72 27 2e 0a 54 68 65 20 6e 6f 64 65 20 74 79 70 65 20 69 73 20 73 65 74 20 74 6f 20 6a 73 32 er'..The.node.type.is.set.to.js2
22080 2d 4e 55 4c 4c 2c 20 6a 73 32 2d 54 48 49 53 2c 20 65 74 63 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 -NULL,.js2-THIS,.etc.")..(js2--s
220a0 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 27 6a 73 32 truct-put.'js2-keyword-node.'js2
220c0 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d -visitor.'js2-visit-none).(js2--
220e0 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 27 6a 73 struct-put.'js2-keyword-node.'js
22100 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 2-printer.'js2-print-keyword-nod
22120 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 e)..(defun.js2-print-keyword-nod
22140 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 e.(n.i)...(insert.(js2-make-pad.
22160 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 i)...........(let.((tt.(js2-node
22180 2d 74 79 70 65 20 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 -type.n))).............(cond....
221a0 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 54 48 49 53 29 20 22 74 68 69 73 ..........((=.tt.js2-THIS)."this
221c0 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 55 50 45 52 ")..............((=.tt.js2-SUPER
221e0 29 20 22 73 75 70 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a )."super")..............((=.tt.j
22200 73 32 2d 4e 55 4c 4c 29 20 22 6e 75 6c 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 s2-NULL)."null")..............((
22220 3d 20 74 74 20 6a 73 32 2d 54 52 55 45 29 20 22 74 72 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 =.tt.js2-TRUE)."true")..........
22240 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 46 41 4c 53 45 29 20 22 66 61 6c 73 65 22 29 0a 20 ....((=.tt.js2-FALSE)."false")..
22260 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 44 45 42 55 47 47 45 52 29 ............((=.tt.js2-DEBUGGER)
22280 20 22 64 65 62 75 67 67 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 ."debugger")..............(t.(er
222a0 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 6b 65 79 77 6f 72 64 20 6c 69 74 65 72 61 6c 20 74 79 70 ror."Invalid.keyword.literal.typ
222c0 65 3a 20 25 64 22 20 74 74 29 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74 e:.%d".tt))))))..(defsubst.js2-t
222e0 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 his-or-super-node-p.(node)..."Re
22300 74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 60 6a 73 32 2d 6c 69 74 65 72 61 6c turn.t.if.NODE.is.a.`js2-literal
22320 2d 6e 6f 64 65 27 20 6f 66 20 74 79 70 65 20 6a 73 32 2d 54 48 49 53 20 6f 72 20 6a 73 32 2d 53 -node'.of.type.js2-THIS.or.js2-S
22340 55 50 45 52 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 79 70 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 UPER."...(let.((type.(js2-node-t
22360 79 70 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6f 72 20 28 65 71 20 74 79 70 65 20 6a 73 32 ype.node))).....(or.(eq.type.js2
22380 2d 54 48 49 53 29 20 28 65 71 20 74 79 70 65 20 6a 73 32 2d 53 55 50 45 52 29 29 29 29 0a 0a 28 -THIS).(eq.type.js2-SUPER))))..(
223a0 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 0a 20 20 20 20 20 cl-defstruct.(js2-new-node......
223c0 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 ..........(:include.js2-node)...
223e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d .............(:constructor.make-
22400 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4e 45 57 js2-new-node.(&key.(type.js2-NEW
22420 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
22440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 .......................(pos.(js2
22460 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -current-token-beg))............
22480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
224a0 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 ..........len.target............
224c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
224e0 20 20 20 20 20 20 20 20 20 20 61 72 67 73 20 69 6e 69 74 69 61 6c 69 7a 65 72 0a 20 20 20 20 20 ..........args.initializer......
22500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 ................lp.rp)))..."AST.
22540 6e 6f 64 65 20 66 6f 72 20 6e 65 77 2d 65 78 70 72 65 73 73 69 6f 6e 20 73 75 63 68 20 61 73 20 node.for.new-expression.such.as.
22560 6e 65 77 20 46 6f 6f 28 29 2e 22 0a 20 20 74 61 72 67 65 74 20 20 3b 20 61 6e 20 69 64 65 6e 74 new.Foo()."...target..;.an.ident
22580 69 66 69 65 72 20 6f 72 20 72 65 66 65 72 65 6e 63 65 0a 20 20 61 72 67 73 20 20 20 20 3b 20 61 ifier.or.reference...args....;.a
225a0 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 20 6e 6f 64 65 73 0a 20 20 6c .Lisp.list.of.argument.nodes...l
225c0 70 20 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 2c p......;.position.of.left-paren,
225e0 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 20 20 20 20 20 20 3b 20 70 6f 73 69 .nil.if.omitted...rp......;.posi
22600 74 69 6f 6e 20 6f 66 20 72 69 67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 tion.of.right-paren,.nil.if.omit
22620 74 65 64 0a 20 20 69 6e 69 74 69 61 6c 69 7a 65 72 29 20 3b 20 65 78 70 65 72 69 6d 65 6e 74 61 ted...initializer).;.experimenta
22640 6c 20 52 68 69 6e 6f 20 73 79 6e 74 61 78 3a 20 20 6f 70 74 69 6f 6e 61 6c 20 60 6a 73 32 2d 6f l.Rhino.syntax:..optional.`js2-o
22660 62 6a 65 63 74 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a bject-node'..(js2--struct-put.'j
22680 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 s2-new-node.'js2-visitor.'js2-vi
226a0 73 69 74 2d 6e 65 77 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 sit-new-node).(js2--struct-put.'
226c0 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 js2-new-node.'js2-printer.'js2-p
226e0 72 69 6e 74 2d 6e 65 77 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 rint-new-node)..(defun.js2-visit
22700 2d 6e 65 77 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 -new-node.(n.v)...(js2-visit-ast
22720 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 64 .(js2-new-node-target.n).v)...(d
22740 6f 6c 69 73 74 20 28 61 72 67 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 29 olist.(arg.(js2-new-node-args.n)
22760 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 61 72 67 20 76 29 29 0a 20 20 28 ).....(js2-visit-ast.arg.v))...(
22780 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 js2-visit-ast.(js2-new-node-init
227a0 69 61 6c 69 7a 65 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 ializer.n).v))..(defun.js2-print
227c0 2d 6e 65 77 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d -new-node.(n.i)...(insert.(js2-m
227e0 61 6b 65 2d 70 61 64 20 69 29 20 22 6e 65 77 20 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d ake-pad.i)."new.")...(js2-print-
22800 61 73 74 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 29 0a 20 20 28 ast.(js2-new-node-target.n))...(
22820 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 6a insert."(")...(js2-print-list.(j
22840 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 s2-new-node-args.n))...(insert."
22860 29 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 )")...(when.(js2-new-node-initia
22880 6c 69 7a 65 72 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a lizer.n).....(insert.".").....(j
228a0 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69 s2-print-ast.(js2-new-node-initi
228c0 61 6c 69 7a 65 72 20 6e 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 alizer.n))))..(cl-defstruct.(js2
228e0 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c -name-node................(:incl
22900 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 ude.js2-node)................(:c
22920 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 26 onstructor.make-js2-name-node.(&
22940 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 key.(type.js2-NAME).............
22960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22980 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 ..........(pos.(js2-current-toke
229a0 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-beg)).........................
229c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
229e0 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 en.(-.js2-ts-cursor.............
22a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 ..................(js2-current-t
22a40 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oken-beg))).....................
22a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22a80 20 20 28 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e ..(name.(js2-current-token-strin
22aa0 67 29 29 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 4a 61 76 61 53 63 72 g)))))..."AST.node.for.a.JavaScr
22ac0 69 70 74 20 69 64 65 6e 74 69 66 69 65 72 22 0a 20 20 6e 61 6d 65 20 20 20 3b 20 61 20 73 74 72 ipt.identifier"...name...;.a.str
22ae0 69 6e 67 0a 20 20 73 63 6f 70 65 29 20 3b 20 61 20 60 6a 73 32 2d 73 63 6f 70 65 27 20 28 6f 70 ing...scope).;.a.`js2-scope'.(op
22b00 74 69 6f 6e 61 6c 2c 20 75 73 65 64 20 66 6f 72 20 63 6f 64 65 67 65 6e 29 0a 0a 28 6a 73 32 2d tional,.used.for.codegen)..(js2-
22b20 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d -struct-put.'js2-name-node.'js2-
22b40 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 visitor.'js2-visit-none).(js2--s
22b60 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 truct-put.'js2-name-node.'js2-pr
22b80 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 inter.'js2-print-name-node)..(de
22ba0 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 fun.js2-print-name-node.(n.i)...
22bc0 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 (insert.(js2-make-pad.i)........
22be0 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 29 29 0a 0a 28 64 65 ...(js2-name-node-name.n)))..(de
22c00 66 73 75 62 73 74 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6c 65 6e 67 74 68 20 28 6e 6f 64 fsubst.js2-name-node-length.(nod
22c20 65 29 0a 20 20 22 52 65 74 75 72 6e 20 69 64 65 6e 74 69 66 69 65 72 20 6c 65 6e 67 74 68 20 6f e)..."Return.identifier.length.o
22c40 66 20 4e 4f 44 45 2c 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 0a 52 65 74 75 72 f.NODE,.a.`js2-name-node'..Retur
22c60 6e 73 20 30 20 69 66 20 4e 4f 44 45 20 69 73 20 6e 69 6c 20 6f 72 20 69 74 73 20 69 64 65 6e 74 ns.0.if.NODE.is.nil.or.its.ident
22c80 69 66 69 65 72 20 66 69 65 6c 64 20 69 73 20 6e 69 6c 2e 22 0a 20 20 28 69 66 20 6e 6f 64 65 0a ifier.field.is.nil."...(if.node.
22ca0 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d ......(length.(js2-name-node-nam
22cc0 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 30 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 e.node)).....0))..(cl-defstruct.
22ce0 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (js2-number-node................
22d00 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (:include.js2-node).............
22d20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6e 75 6d 62 65 72 ...(:constructor.make-js2-number
22d40 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20 -node.(&key.(type.js2-NUMBER)...
22d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d ......................(pos.(js2-
22da0 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 current-token-beg)).............
22dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22de0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f ............(len.(-.js2-ts-curso
22e00 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r...............................
22e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22e40 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 ..(js2-current-token-beg))).....
22e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 6a 73 32 2d ....................(value.(js2-
22ea0 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 current-token-string))..........
22ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 2d 76 61 6c 75 65 20 28 6a 73 32 2d 74 ...............(num-value.(js2-t
22f00 6f 6b 65 6e 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oken-number.....................
22f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ................(js2-current-tok
22f60 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en)))...........................
22f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e ..............................(n
22fa0 75 6d 2d 62 61 73 65 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 65 72 2d 62 61 73 65 0a 20 um-base.(js2-token-number-base..
22fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
22fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23000 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 ..(js2-current-token))).........
23020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 20 ................(legacy-octal-p.
23060 28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 65 72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 (js2-token-number-legacy-octal-p
23080 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
230a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
230c0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 29 ..........(js2-current-token))))
230e0 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 6e 75 6d 62 65 72 20 6c 69 74 65 ))..."AST.node.for.a.number.lite
23100 72 61 6c 2e 22 0a 20 20 76 61 6c 75 65 20 20 20 20 20 20 3b 20 74 68 65 20 6f 72 69 67 69 6e 61 ral."...value......;.the.origina
23120 6c 20 73 74 72 69 6e 67 2c 20 65 2e 67 2e 20 22 36 2e 30 32 65 32 33 22 0a 20 20 6e 75 6d 2d 76 l.string,.e.g.."6.02e23"...num-v
23140 61 6c 75 65 20 20 3b 20 74 68 65 20 70 61 72 73 65 64 20 6e 75 6d 62 65 72 20 76 61 6c 75 65 0a alue..;.the.parsed.number.value.
23160 20 20 6e 75 6d 2d 62 61 73 65 20 20 3b 20 74 68 65 20 6e 75 6d 62 65 72 27 73 20 62 61 73 65 0a ..num-base..;.the.number's.base.
23180 20 20 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 29 20 20 3b 20 77 68 65 74 68 65 72 20 74 68 65 ..legacy-octal-p)..;.whether.the
231a0 20 6e 75 6d 62 65 72 20 69 73 20 61 20 6c 65 67 61 63 79 20 6f 63 74 61 6c 20 28 30 31 32 33 20 .number.is.a.legacy.octal.(0123.
231c0 69 6e 73 74 65 61 64 20 6f 66 20 30 6f 31 32 33 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d instead.of.0o123)..(js2--struct-
231e0 70 75 74 20 27 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f put.'js2-number-node.'js2-visito
23200 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d r.'js2-visit-none).(js2--struct-
23220 70 75 74 20 27 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 put.'js2-number-node.'js2-printe
23240 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 r.'js2-print-number-node)..(defu
23260 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 n.js2-print-number-node.(n.i)...
23280 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 (insert.(js2-make-pad.i)........
232a0 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6a 73 32 2d 6e 75 6d 62 65 72 ...(number-to-string.(js2-number
232c0 2d 6e 6f 64 65 2d 6e 75 6d 2d 76 61 6c 75 65 20 6e 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 -node-num-value.n))))..(cl-defst
232e0 72 75 63 74 20 28 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 ruct.(js2-regexp-node...........
23300 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 .....(:include.js2-node)........
23320 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 72 ........(:constructor.make-js2-r
23340 65 67 65 78 70 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 52 45 47 45 58 egexp-node.(&key.(type.js2-REGEX
23360 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 P)..............................
23380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 ...........................(pos.
233a0 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 (js2-current-token-beg))........
233c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
233e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d .................(len.(-.js2-ts-
23400 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cursor..........................
23420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23440 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 .......(js2-current-token-beg)))
23460 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 66 .........................value.f
234a0 6c 61 67 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 72 65 67 75 6c 61 lags)))..."AST.node.for.a.regula
234c0 72 20 65 78 70 72 65 73 73 69 6f 6e 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20 76 61 6c 75 65 20 20 r.expression.literal."...value..
234e0 3b 20 74 68 65 20 72 65 67 65 78 70 20 73 74 72 69 6e 67 2c 20 77 69 74 68 6f 75 74 20 2f 2f 20 ;.the.regexp.string,.without.//.
23500 64 65 6c 69 6d 69 74 65 72 73 0a 20 20 66 6c 61 67 73 29 20 3b 20 61 20 73 74 72 69 6e 67 20 6f delimiters...flags).;.a.string.o
23520 66 20 66 6c 61 67 73 2c 20 65 2e 67 2e 20 60 6d 69 27 2e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 f.flags,.e.g..`mi'...(js2--struc
23540 74 2d 70 75 74 20 27 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 t-put.'js2-regexp-node.'js2-visi
23560 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 tor.'js2-visit-none).(js2--struc
23580 74 2d 70 75 74 20 27 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e t-put.'js2-regexp-node.'js2-prin
235a0 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 72 65 67 65 78 70 29 0a 0a 28 64 65 66 75 6e 20 6a ter.'js2-print-regexp)..(defun.j
235c0 73 32 2d 70 72 69 6e 74 2d 72 65 67 65 78 70 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 s2-print-regexp.(n.i)...(insert.
235e0 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 22 2f 22 0a 20 (js2-make-pad.i)..........."/"..
23600 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 .........(js2-regexp-node-value.
23620 6e 29 0a 20 20 20 20 20 20 20 20 20 20 22 2f 22 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 72 65 67 n)..........."/")...(if.(js2-reg
23640 65 78 70 2d 6e 6f 64 65 2d 66 6c 61 67 73 20 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 exp-node-flags.n).......(insert.
23660 28 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 2d 66 6c 61 67 73 20 6e 29 29 29 29 0a 0a 28 63 (js2-regexp-node-flags.n))))..(c
23680 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 0a 20 20 20 l-defstruct.(js2-string-node....
236a0 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a ............(:include.js2-node).
236c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b ...............(:constructor.mak
236e0 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 e-js2-string-node.(&key.(type.js
23700 32 2d 53 54 52 49 4e 47 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-STRING).......................
23720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23740 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a ..(pos.(js2-current-token-beg)).
23760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 ........................(len.(-.
237a0 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-ts-cursor...................
237c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
237e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e ..............(js2-current-token
23800 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -beg))).........................
23820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23840 28 76 61 6c 75 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 (value.(js2-current-token-string
23860 29 29 29 29 29 0a 20 20 22 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2e 0a 45 73 63 61 70 65 20 )))))..."String.literal..Escape.
23880 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 6e 6f 74 20 65 76 61 6c 75 61 74 65 64 3b 20 65 2e characters.are.not.evaluated;.e.
238a0 67 2e 20 5c 6e 20 69 73 20 32 20 63 68 61 72 73 20 69 6e 20 76 61 6c 75 65 20 66 69 65 6c 64 2e g..\n.is.2.chars.in.value.field.
238c0 0a 59 6f 75 20 63 61 6e 20 74 65 6c 6c 20 74 68 65 20 71 75 6f 74 65 20 74 79 70 65 20 62 79 20 .You.can.tell.the.quote.type.by.
238e0 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 2e 22 looking.at.the.first.character."
23900 0a 20 20 76 61 6c 75 65 29 20 3b 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68 ...value).;.the.characters.of.th
23920 65 20 73 74 72 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 71 75 6f 74 65 73 0a 0a e.string,.including.the.quotes..
23940 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 (js2--struct-put.'js2-string-nod
23960 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a e.'js2-visitor.'js2-visit-none).
23980 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 (js2--struct-put.'js2-string-nod
239a0 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 73 74 72 69 6e 67 e.'js2-printer.'js2-print-string
239c0 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 73 74 72 69 6e 67 2d -node)..(defun.js2-print-string-
239e0 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 node.(n.i)...(insert.(js2-make-p
23a00 61 64 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 69 6e 67 ad.i)...........(js2-node-string
23a20 20 6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 74 65 6d 70 6c 61 .n)))..(cl-defstruct.(js2-templa
23a40 74 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 te-node................(:include
23a60 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 .js2-node)................(:cons
23a80 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 28 tructor.make-js2-template-node.(
23aa0 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54 45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20 20 &key.(type.js2-TEMPLATE_HEAD)...
23ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 20 6c 65 6e 20 ........................pos.len.
23b00 6b 69 64 73 29 29 29 0a 20 20 22 54 65 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20 kids)))..."Template.literal."...
23b20 6b 69 64 73 29 20 20 3b 20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 69 73 20 75 73 kids)..;.`js2-string-node'.is.us
23b40 65 64 20 66 6f 72 20 73 74 72 69 6e 67 20 73 65 67 6d 65 6e 74 73 2c 20 6f 74 68 65 72 20 6e 6f ed.for.string.segments,.other.no
23b60 64 65 73 0a 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 des..........;.for.substitutions
23b80 20 69 6e 73 69 64 65 2e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d .inside...(js2--struct-put.'js2-
23ba0 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d template-node.'js2-visitor.'js2-
23bc0 76 69 73 69 74 2d 74 65 6d 70 6c 61 74 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 visit-template).(js2--struct-put
23be0 20 27 6a 73 32 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 .'js2-template-node.'js2-printer
23c00 20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 65 6d 70 6c 61 74 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 .'js2-print-template)..(defun.js
23c20 32 2d 76 69 73 69 74 2d 74 65 6d 70 6c 61 74 65 20 28 6e 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 2-visit-template.(n.callback)...
23c40 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d (dolist.(kid.(js2-template-node-
23c60 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6b 69 64 20 kids.n)).....(js2-visit-ast.kid.
23c80 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 74 65 callback)))..(defun.js2-print-te
23ca0 6d 70 6c 61 74 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 mplate.(n.i)...(insert.(js2-make
23cc0 2d 70 61 64 20 69 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 74 65 6d -pad.i))...(dolist.(kid.(js2-tem
23ce0 70 6c 61 74 65 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 plate-node-kids.n)).....(if.(js2
23d00 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 69 64 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 -string-node-p.kid).........(ins
23d20 65 72 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 69 6e 67 20 6b 69 64 29 29 0a 20 20 20 20 20 ert.(js2-node-string.kid))......
23d40 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 .(js2-print-ast.kid))))..(cl-def
23d60 73 74 72 75 63 74 20 28 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 struct.(js2-tagged-template-node
23d80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f ................(:include.js2-no
23da0 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 de)................(:constructor
23dc0 20 6d 61 6b 65 2d 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 28 .make-js2-tagged-template-node.(
23de0 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54 41 47 47 45 44 5f 54 45 4d 50 4c 41 54 45 29 0a &key.(type.js2-TAGGED_TEMPLATE).
23e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23e40 20 70 6f 73 20 6c 65 6e 20 74 61 67 20 74 65 6d 70 6c 61 74 65 29 29 29 0a 20 20 22 54 61 67 67 .pos.len.tag.template)))..."Tagg
23e60 65 64 20 74 65 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20 74 61 67 20 20 20 20 20 ed.template.literal."...tag.....
23e80 20 20 3b 20 60 6a 73 32 2d 6e 6f 64 65 27 20 77 69 74 68 20 74 68 65 20 74 61 67 20 65 78 70 72 ..;.`js2-node'.with.the.tag.expr
23ea0 65 73 73 69 6f 6e 2e 0a 20 20 74 65 6d 70 6c 61 74 65 29 20 3b 20 60 6a 73 32 2d 74 65 6d 70 6c ession....template).;.`js2-templ
23ec0 61 74 65 2d 6e 6f 64 65 27 20 77 69 74 68 20 74 68 65 20 74 65 6d 70 6c 61 74 65 2e 0a 0a 28 6a ate-node'.with.the.template...(j
23ee0 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c s2--struct-put.'js2-tagged-templ
23f00 61 74 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 ate-node.'js2-visitor.'js2-visit
23f20 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 -tagged-template).(js2--struct-p
23f40 75 74 20 27 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 27 6a 73 ut.'js2-tagged-template-node.'js
23f60 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 61 67 67 65 64 2d 74 65 6d 70 2-printer.'js2-print-tagged-temp
23f80 6c 61 74 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 74 61 67 67 65 64 2d 74 late)..(defun.js2-visit-tagged-t
23fa0 65 6d 70 6c 61 74 65 20 28 6e 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 emplate.(n.callback)...(js2-visi
23fc0 74 2d 61 73 74 20 28 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d t-ast.(js2-tagged-template-node-
23fe0 74 61 67 20 6e 29 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 tag.n).callback)...(js2-visit-as
24000 74 20 28 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d 74 65 6d 70 t.(js2-tagged-template-node-temp
24020 6c 61 74 65 20 6e 29 20 63 61 6c 6c 62 61 63 6b 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 late.n).callback))..(defun.js2-p
24040 72 69 6e 74 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 20 28 6e 20 69 29 0a 20 20 28 69 6e rint-tagged-template.(n.i)...(in
24060 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 sert.(js2-make-pad.i))...(js2-pr
24080 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 int-ast.(js2-tagged-template-nod
240a0 65 2d 74 61 67 20 6e 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d e-tag.n))...(js2-print-ast.(js2-
240c0 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d 74 65 6d 70 6c 61 74 65 20 6e 29 tagged-template-node-template.n)
240e0 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 ))..(cl-defstruct.(js2-array-nod
24100 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e e................(:include.js2-n
24120 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f ode)................(:constructo
24140 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 r.make-js2-array-node.(&key.(typ
24160 65 20 6a 73 32 2d 41 52 52 41 59 4c 49 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.js2-ARRAYLIT).................
24180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
241a0 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 .......(pos.js2-ts-cursor)......
241c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
241e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 65 6c 65 6d 73 29 29 29 0a 20 ..................len.elems)))..
24200 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 6c 69 74 65 72 61 6c 2e ."AST.node.for.an.array.literal.
24220 22 0a 20 20 65 6c 65 6d 73 29 20 20 3b 20 6c 69 73 74 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e "...elems)..;.list.of.expression
24240 73 2e 20 20 5b 66 6f 6f 2c 2c 62 61 72 5d 20 79 69 65 6c 64 73 20 61 20 6e 69 6c 20 6d 69 64 64 s...[foo,,bar].yields.a.nil.midd
24260 6c 65 20 65 6c 65 6d 65 6e 74 2e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a le.element...(js2--struct-put.'j
24280 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d s2-array-node.'js2-visitor.'js2-
242a0 76 69 73 69 74 2d 61 72 72 61 79 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 visit-array-node).(js2--struct-p
242c0 75 74 20 27 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 ut.'js2-array-node.'js2-printer.
242e0 27 6a 73 32 2d 70 72 69 6e 74 2d 61 72 72 61 79 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 'js2-print-array-node)..(defun.j
24300 73 32 2d 76 69 73 69 74 2d 61 72 72 61 79 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 64 6f 6c s2-visit-array-node.(n.v)...(dol
24320 69 73 74 20 28 65 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 ist.(e.(js2-array-node-elems.n))
24340 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 65 20 76 29 29 29 20 20 3b 20 43 61 .....(js2-visit-ast.e.v)))..;.Ca
24360 6e 20 62 65 20 6e 69 6c 3b 20 65 2e 67 2e 20 5b 61 2c 20 2c 62 5d 2e 0a 0a 28 64 65 66 75 6e 20 n.be.nil;.e.g..[a,.,b]...(defun.
24380 6a 73 32 2d 70 72 69 6e 74 2d 61 72 72 61 79 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e js2-print-array-node.(n.i)...(in
243a0 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 5b 22 29 0a 20 20 28 6c 65 sert.(js2-make-pad.i)."[")...(le
243c0 74 20 28 28 65 6c 65 6d 73 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 t.((elems.(js2-array-node-elems.
243e0 6e 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 65 6c 65 6d 73 29 0a n))).....(js2-print-list.elems).
24400 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 6c 65 6d 73 20 28 6e 75 6c 6c 20 28 63 61 72 20 ....(when.(and.elems.(null.(car.
24420 28 6c 61 73 74 20 65 6c 65 6d 73 29 29 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c (last.elems)))).......(insert.",
24440 22 29 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 ")))...(insert."]"))..(cl-defstr
24460 75 63 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 uct.(js2-object-node............
24480 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 ....(:include.js2-node).........
244a0 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6f 62 .......(:constructor.make-js2-ob
244c0 6a 65 63 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4f 42 4a 45 43 54 ject-node.(&key.(type.js2-OBJECT
244e0 4c 49 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LIT)............................
24500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f .............................(po
24520 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.js2-ts-cursor)................
24540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24560 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........len....................
24580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
245a0 20 20 20 20 20 65 6c 65 6d 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e .....elems)))..."AST.node.for.an
245c0 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 60 65 6c 65 .object.literal.expression..`ele
245e0 6d 73 27 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f ms'.is.a.list.of.`js2-object-pro
24600 70 2d 6e 6f 64 65 27 2e 22 0a 20 20 65 6c 65 6d 73 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 p-node'."...elems)..(js2--struct
24620 2d 70 75 74 20 27 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 -put.'js2-object-node.'js2-visit
24640 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d or.'js2-visit-object-node).(js2-
24660 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20 27 6a 73 -struct-put.'js2-object-node.'js
24680 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2-printer.'js2-print-object-node
246a0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20 )..(defun.js2-visit-object-node.
246c0 28 6e 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e (n.v)...(dolist.(e.(js2-object-n
246e0 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 ode-elems.n)).....(js2-visit-ast
24700 20 65 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6f 62 6a 65 63 74 .e.v)))..(defun.js2-print-object
24720 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d -node.(n.i)...(insert.(js2-make-
24740 70 61 64 20 69 29 20 22 7b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 6a pad.i)."{")...(js2-print-list.(j
24760 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 0a 20 20 28 69 6e 73 65 s2-object-node-elems.n))...(inse
24780 72 74 20 22 7d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6c 61 rt."}"))..(cl-defstruct.(js2-cla
247a0 73 73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 ss-node................(:include
247c0 20 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-object-node)...............
247e0 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f .(:constructor.make-js2-class-no
24800 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 43 4c 41 53 53 29 0a 20 20 20 20 20 20 de.(&key.(type.js2-CLASS).......
24820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 .................(pos.js2-ts-cur
24860 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sor)............................
24880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 ............................(for
248a0 6d 20 27 43 4c 41 53 53 5f 53 54 41 54 45 4d 45 4e 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 m.'CLASS_STATEMENT).............
248c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
248e0 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...........(name."")............
24900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24920 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65 6e 64 73 20 6c 65 6e 20 65 6c 65 6d 73 29 29 29 ............extends.len.elems)))
24940 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 63 6c 61 73 73 20 65 78 70 72 65 73 ..."AST.node.for.an.class.expres
24960 73 69 6f 6e 2e 0a 60 65 6c 65 6d 73 27 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d sion..`elems'.is.a.list.of.`js2-
24980 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 27 2c 20 61 6e 64 20 60 65 78 74 65 6e 64 73 27 object-prop-node',.and.`extends'
249a0 20 69 73 20 61 6e 0a 6f 70 74 69 6f 6e 61 6c 20 60 6a 73 32 2d 65 78 70 72 2d 6e 6f 64 65 27 22 .is.an.optional.`js2-expr-node'"
249c0 0a 20 20 66 6f 72 6d 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 4c 41 53 53 5f 7b 53 54 41 ...form.............;.CLASS_{STA
249e0 54 45 4d 45 4e 54 7c 45 58 50 52 45 53 53 49 4f 4e 7d 0a 20 20 6e 61 6d 65 20 20 20 20 20 20 20 TEMENT|EXPRESSION}...name.......
24a00 20 20 20 20 20 20 3b 20 63 6c 61 73 73 20 6e 61 6d 65 20 28 61 20 60 6a 73 32 2d 6e 6f 64 65 2d ......;.class.name.(a.`js2-node-
24a20 6e 61 6d 65 27 2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 6e 6f 6e 79 6d 6f 75 73 29 0a 20 20 65 78 name',.or.nil.if.anonymous)...ex
24a40 74 65 6e 64 73 20 20 20 20 20 20 20 20 20 20 3b 20 63 6c 61 73 73 20 68 65 72 69 74 61 67 65 20 tends..........;.class.heritage.
24a60 28 61 20 60 6a 73 32 2d 65 78 70 72 2d 6e 6f 64 65 27 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f (a.`js2-expr-node',.or.nil.if.no
24a80 6e 65 29 0a 20 20 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 ne)...)..(js2--struct-put.'js2-c
24aa0 6c 61 73 73 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 lass-node.'js2-visitor.'js2-visi
24ac0 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 t-class-node).(js2--struct-put.'
24ae0 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 js2-class-node.'js2-printer.'js2
24b00 2d 70 72 69 6e 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 -print-class-node)..(defun.js2-v
24b20 69 73 69 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 isit-class-node.(n.v)...(js2-vis
24b40 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 it-ast.(js2-class-node-name.n).v
24b60 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f )...(js2-visit-ast.(js2-class-no
24b80 64 65 2d 65 78 74 65 6e 64 73 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a de-extends.n).v)...(dolist.(e.(j
24ba0 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 s2-class-node-elems.n)).....(js2
24bc0 2d 76 69 73 69 74 2d 61 73 74 20 65 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 -visit-ast.e.v)))..(defun.js2-pr
24be0 69 6e 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 int-class-node.(n.i)...(let*.((p
24c00 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e ad.(js2-make-pad.i))..........(n
24c20 61 6d 65 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 29 0a 20 20 20 ame.(js2-class-node-name.n))....
24c40 20 20 20 20 20 20 28 65 78 74 65 6e 64 73 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 65 ......(extends.(js2-class-node-e
24c60 78 74 65 6e 64 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6c 65 6d 73 20 28 6a 73 32 2d xtends.n))..........(elems.(js2-
24c80 63 6c 61 73 73 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 class-node-elems.n))).....(inser
24ca0 74 20 70 61 64 20 22 63 6c 61 73 73 22 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20 t.pad."class").....(when.name...
24cc0 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e ....(insert.".").......(js2-prin
24ce0 74 2d 61 73 74 20 6e 61 6d 65 20 30 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 78 74 65 6e 64 73 t-ast.name.0)).....(when.extends
24d00 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 65 78 74 65 6e 64 73 20 22 29 0a 20 20 20 20 .......(insert.".extends.").....
24d20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 65 78 74 65 6e 64 73 29 29 0a 20 20 20 20 28 ..(js2-print-ast.extends)).....(
24d40 69 6e 73 65 72 74 20 22 20 7b 22 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 20 65 insert.".{").....(dolist.(elem.e
24d60 6c 65 6d 73 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 lems).......(insert."\n").......
24d80 28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 65 6c 65 6d 20 27 53 54 41 (if.(js2-node-get-prop.elem.'STA
24da0 54 49 43 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 69 6e 73 65 72 74 20 28 6a TIC)...........(progn.(insert.(j
24dc0 73 32 2d 6d 61 6b 65 2d 70 61 64 20 28 31 2b 20 69 29 29 20 22 73 74 61 74 69 63 20 22 29 0a 20 s2-make-pad.(1+.i))."static.")..
24de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 65 ................(js2-print-ast.e
24e00 6c 65 6d 20 30 29 29 20 3b 3b 20 54 4f 44 4f 28 73 64 68 29 3a 20 69 6e 64 65 6e 74 61 74 69 6f lem.0)).;;.TODO(sdh):.indentatio
24e20 6e 20 69 73 6e 27 74 20 71 75 69 74 65 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 n.isn't.quite.right.........(js2
24e40 2d 70 72 69 6e 74 2d 61 73 74 20 65 6c 65 6d 20 28 31 2b 20 69 29 29 29 29 0a 20 20 20 20 28 69 -print-ast.elem.(1+.i)))).....(i
24e60 6e 73 65 72 74 20 22 5c 6e 22 20 70 61 64 20 22 7d 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 nsert."\n".pad."}")))..(cl-defst
24e80 72 75 63 74 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 ruct.(js2-computed-prop-name-nod
24ea0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e e................(:include.js2-n
24ec0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f ode)................(:constructo
24ee0 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f r.make-js2-computed-prop-name-no
24f00 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de..............................
24f20 28 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (&key...........................
24f40 20 20 20 20 28 74 79 70 65 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(type.js2-LB)...............
24f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 ................expr............
24f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 ...................(pos.(js2-cur
24fa0 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rent-token-beg))................
24fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 ...............(len.(-.js2-ts-cu
24fe0 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsor............................
25000 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 ...........(js2-current-token-be
25020 67 29 29 29 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 60 43 6f 6d 70 75 g))))))..."AST.node.for.a.`Compu
25040 74 65 64 50 72 6f 70 65 72 74 79 4e 61 6d 65 27 2e 22 0a 20 20 65 78 70 72 29 0a 0a 28 6a 73 32 tedPropertyName'."...expr)..(js2
25060 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d --struct-put.'js2-computed-prop-
25080 6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 name-node.'js2-visitor.'js2-visi
250a0 74 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d t-computed-prop-name-node).(js2-
250c0 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e -struct-put.'js2-computed-prop-n
250e0 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 ame-node.'js2-printer.'js2-print
25100 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 -computed-prop-name-node)..(defu
25120 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e n.js2-visit-computed-prop-name-n
25140 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d ode.(n.v)...(js2-visit-ast.(js2-
25160 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 computed-prop-name-node-expr.n).
25180 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 70 75 74 65 64 2d 70 v))..(defun.js2-print-computed-p
251a0 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a rop-name-node.(n.i)...(insert.(j
251c0 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 5b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 s2-make-pad.i)."[")...(js2-print
251e0 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 -ast.(js2-computed-prop-name-nod
25200 65 2d 65 78 70 72 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5d 22 29 29 0a 0a 28 63 e-expr.n).0)...(insert."]"))..(c
25220 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 l-defstruct.(js2-object-prop-nod
25240 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 e................(:include.js2-i
25260 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 nfix-node)................(:cons
25280 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 tructor.make-js2-object-prop-nod
252a0 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 43 4f 4c 4f 4e 29 0a 20 20 20 20 20 20 20 e.(&key.(type.js2-COLON)........
252c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
252e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 ......................(pos.js2-t
25300 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-cursor).......................
25320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25340 20 20 20 20 20 20 20 6c 65 6e 20 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......len.left.................
25360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25380 20 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 20 6f 70 2d 70 6f 73 29 29 29 0a 20 20 22 .............right.op-pos)))..."
253a0 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20 70 AST.node.for.an.object.literal.p
253c0 72 6f 70 3a 76 61 6c 75 65 20 65 6e 74 72 79 2e 0a 54 68 65 20 60 6c 65 66 74 27 20 66 69 65 6c rop:value.entry..The.`left'.fiel
253e0 64 20 69 73 20 74 68 65 20 70 72 6f 70 65 72 74 79 3a 20 61 20 6e 61 6d 65 20 6e 6f 64 65 2c 20 d.is.the.property:.a.name.node,.
25400 73 74 72 69 6e 67 20 6e 6f 64 65 2c 0a 6e 75 6d 62 65 72 20 6e 6f 64 65 20 6f 72 20 65 78 70 72 string.node,.number.node.or.expr
25420 65 73 73 69 6f 6e 20 6e 6f 64 65 2e 20 20 54 68 65 20 60 72 69 67 68 74 27 20 66 69 65 6c 64 20 ession.node...The.`right'.field.
25440 69 73 20 61 0a 60 6a 73 32 2d 6e 6f 64 65 27 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 is.a.`js2-node'.representing.the
25460 20 69 6e 69 74 69 61 6c 69 7a 65 72 20 76 61 6c 75 65 2e 20 20 49 66 20 74 68 65 20 70 72 6f 70 .initializer.value...If.the.prop
25480 65 72 74 79 0a 69 73 20 61 62 62 72 65 76 69 61 74 65 64 2c 20 74 68 65 20 6e 6f 64 65 27 73 20 erty.is.abbreviated,.the.node's.
254a0 60 53 48 4f 52 54 48 41 4e 44 27 20 70 72 6f 70 65 72 74 79 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 `SHORTHAND'.property.is.non-nil.
254c0 61 6e 64 0a 62 6f 74 68 20 66 69 65 6c 64 73 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 76 61 and.both.fields.have.the.same.va
254e0 6c 75 65 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6f 62 lue.")..(js2--struct-put.'js2-ob
25500 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 ject-prop-node.'js2-visitor.'js2
25520 2d 76 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d -visit-infix-node).(js2--struct-
25540 70 75 74 20 27 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 put.'js2-object-prop-node.'js2-p
25560 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f rinter.'js2-print-object-prop-no
25580 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6f 62 6a 65 63 74 2d 70 72 6f de)..(defun.js2-print-object-pro
255a0 70 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 2a 20 28 28 6c 65 66 74 20 28 6a 73 32 p-node.(n.i)...(let*.((left.(js2
255c0 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 29 0a 20 20 20 20 20 -object-prop-node-left.n))......
255e0 20 20 20 20 28 72 69 67 68 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 ....(right.(js2-object-prop-node
25600 2d 72 69 67 68 74 20 6e 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6c -right.n))).....(js2-print-ast.l
25620 65 66 74 20 69 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 eft.i).....(if.(not.(js2-node-ge
25640 74 2d 70 72 6f 70 20 6e 20 27 53 48 4f 52 54 48 41 4e 44 29 29 0a 20 20 20 20 20 20 20 20 28 70 t-prop.n.'SHORTHAND)).........(p
25660 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3a 20 22 29 0a 20 20 20 rogn...........(insert.":.")....
25680 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 72 69 67 68 74 20 30 29 29 29 .......(js2-print-ast.right.0)))
256a0 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f ))..(cl-defstruct.(js2-method-no
256c0 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d de................(:include.js2-
256e0 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e infix-node)................(:con
25700 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 20 28 26 structor.make-js2-method-node.(&
25720 6b 65 79 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 key.(pos.js2-ts-cursor).........
25740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6c 65 66 74 20 72 69 67 68 74 29 29 ................len.left.right))
25780 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 6d 65 74 68 6f 64 20 69 6e 20 61 6e )..."AST.node.for.a.method.in.an
257a0 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20 6f 72 20 61 20 63 6c 61 73 73 20 62 6f 64 79 2e .object.literal.or.a.class.body.
257c0 0a 54 68 65 20 60 6c 65 66 74 27 20 66 69 65 6c 64 20 69 73 20 74 68 65 20 60 6a 73 32 2d 6e 61 .The.`left'.field.is.the.`js2-na
257e0 6d 65 2d 6e 6f 64 65 27 20 6e 61 6d 69 6e 67 20 74 68 65 20 6d 65 74 68 6f 64 2e 0a 54 68 65 20 me-node'.naming.the.method..The.
25800 60 72 69 67 68 74 27 20 66 69 65 6c 64 20 69 73 20 61 6c 77 61 79 73 20 61 6e 20 61 6e 6f 6e 79 `right'.field.is.always.an.anony
25820 6d 6f 75 73 20 60 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 27 20 77 69 74 68 20 61 20 mous.`js2-function-node'.with.a.
25840 6e 6f 64 65 0a 70 72 6f 70 65 72 74 79 20 60 4d 45 54 48 4f 44 5f 54 59 50 45 27 20 73 65 74 20 node.property.`METHOD_TYPE'.set.
25860 74 6f 20 27 47 45 54 20 6f 72 20 27 53 45 54 2e 20 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 to.'GET.or.'SET..")..(js2--struc
25880 74 2d 70 75 74 20 27 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 t-put.'js2-method-node.'js2-visi
258a0 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d tor.'js2-visit-infix-node).(js2-
258c0 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 20 27 6a 73 -struct-put.'js2-method-node.'js
258e0 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6d 65 74 68 6f 64 29 0a 0a 28 64 2-printer.'js2-print-method)..(d
25900 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6d 65 74 68 6f 64 20 28 6e 20 69 29 0a 20 20 28 6c efun.js2-print-method.(n.i)...(l
25920 65 74 2a 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 et*.((pad.(js2-make-pad.i)).....
25940 20 20 20 20 20 28 6c 65 66 74 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 6c 65 66 74 .....(left.(js2-method-node-left
25960 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 6a 73 32 2d 6d 65 74 68 6f 64 .n))..........(right.(js2-method
25980 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 -node-right.n))..........(type.(
259a0 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 72 69 67 68 74 20 27 4d 45 54 48 4f 44 5f js2-node-get-prop.right.'METHOD_
259c0 54 59 50 45 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 29 0a 20 20 20 20 28 77 68 TYPE))).....(insert.pad).....(wh
259e0 65 6e 20 74 79 70 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 63 64 72 20 28 61 73 73 6f en.type.......(insert.(cdr.(asso
25a00 63 20 74 79 70 65 20 27 28 28 47 45 54 20 2e 20 22 67 65 74 20 22 29 0a 20 20 20 20 20 20 20 20 c.type.'((GET..."get.").........
25a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 53 45 54 20 2e 20 .........................(SET...
25a40 22 73 65 74 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "set.").........................
25a60 20 20 20 20 20 20 20 20 20 28 41 53 59 4e 43 20 2e 20 22 61 73 79 6e 63 20 22 29 0a 20 20 20 20 .........(ASYNC..."async.").....
25a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 46 55 .............................(FU
25aa0 4e 43 54 49 4f 4e 20 2e 20 22 22 29 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 NCTION..."")))))).....(when.(and
25ac0 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29 0a 20 20 20 .(js2-function-node-p.right)....
25ae0 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 27 53 54 41 52 20 28 6a 73 32 2d 66 75 6e 63 74 ............(eq.'STAR.(js2-funct
25b00 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 20 72 69 67 68 74 29 29 29 ion-node-generator-type.right)))
25b20 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 22 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 .......(insert."*")).....(js2-pr
25b40 69 6e 74 2d 61 73 74 20 6c 65 66 74 20 30 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 int-ast.left.0).....(js2-print-a
25b60 73 74 20 72 69 67 68 74 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 st.right.0)))..(cl-defstruct.(js
25b80 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2-prop-get-node................(
25ba0 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 :include.js2-infix-node)........
25bc0 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 70 ........(:constructor.make-js2-p
25be0 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 47 45 54 rop-get-node.(&key.(type.js2-GET
25c00 50 52 4f 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PROP)...........................
25c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25c40 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (pos.js2-ts-cursor).............
25c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6c 65 66 74 20 72 69 67 68 74 29 29 29 0a ..............len.left.right))).
25ca0 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 64 6f 74 74 65 64 20 70 72 6f 70 65 72 74 .."AST.node.for.a.dotted.propert
25cc0 79 20 72 65 66 65 72 65 6e 63 65 2c 20 65 2e 67 2e 20 66 6f 6f 2e 62 61 72 20 6f 72 20 66 6f 6f y.reference,.e.g..foo.bar.or.foo
25ce0 28 29 2e 62 61 72 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d ().bar")..(js2--struct-put.'js2-
25d00 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d prop-get-node.'js2-visitor.'js2-
25d20 76 69 73 69 74 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 visit-prop-get-node).(js2--struc
25d40 74 2d 70 75 74 20 27 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 t-put.'js2-prop-get-node.'js2-pr
25d60 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 29 0a inter.'js2-print-prop-get-node).
25d80 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 .(defun.js2-visit-prop-get-node.
25da0 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70 (n.v)...(js2-visit-ast.(js2-prop
25dc0 2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 -get-node-left.n).v)...(js2-visi
25de0 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e t-ast.(js2-prop-get-node-right.n
25e00 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 70 72 6f 70 2d 67 65 74 ).v))..(defun.js2-print-prop-get
25e20 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d -node.(n.i)...(insert.(js2-make-
25e40 70 61 64 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 pad.i))...(js2-print-ast.(js2-pr
25e60 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 op-get-node-left.n).0)...(insert
25e80 20 22 2e 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70 .".")...(js2-print-ast.(js2-prop
25ea0 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 29 20 30 29 29 0a 0a 28 63 6c 2d 64 65 66 73 -get-node-right.n).0))..(cl-defs
25ec0 74 72 75 63 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 truct.(js2-elem-get-node........
25ee0 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 ........(:include.js2-node).....
25f00 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 ...........(:constructor.make-js
25f20 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 2-elem-get-node.(&key.(type.js2-
25f40 47 45 54 45 4c 45 4d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 GETELEM)........................
25f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25f80 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 ...(pos.js2-ts-cursor)..........
25fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 74 61 72 67 65 74 20 65 6c 65 6d .................len.target.elem
25fe0 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent.............................
26000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 62 ..............................lb
26020 20 72 62 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 .rb)))..."AST.node.for.an.array.
26040 69 6e 64 65 78 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 63 68 20 61 73 20 66 6f 6f 5b 62 61 72 index.expression.such.as.foo[bar
26060 5d 2e 22 0a 20 20 74 61 72 67 65 74 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 20 2d 20 74 ]."...target..;.a.`js2-node'.-.t
26080 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 70 72 65 63 65 64 69 6e 67 20 74 68 65 20 22 2e 22 0a he.expression.preceding.the.".".
260a0 20 20 65 6c 65 6d 65 6e 74 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 20 2d 20 74 68 65 20 65 ..element.;.a.`js2-node'.-.the.e
260c0 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 62 72 61 63 6b 65 74 73 0a 20 20 6c 62 20 20 20 20 20 20 xpression.in.brackets...lb......
260e0 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 6c 65 66 74 2d 62 72 61 63 6b 65 74 2c 20 6e 69 6c 20 ;.position.of.left-bracket,.nil.
26100 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 62 29 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 if.omitted...rb).....;.position.
26120 6f 66 20 72 69 67 68 74 2d 62 72 61 63 6b 65 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 of.right-bracket,.nil.if.omitted
26140 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 ..(js2--struct-put.'js2-elem-get
26160 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 65 6c -node.'js2-visitor.'js2-visit-el
26180 65 6d 2d 67 65 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a em-get-node).(js2--struct-put.'j
261a0 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a s2-elem-get-node.'js2-printer.'j
261c0 73 32 2d 70 72 69 6e 74 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 s2-print-elem-get-node)..(defun.
261e0 6a 73 32 2d 76 69 73 69 74 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 js2-visit-elem-get-node.(n.v)...
26200 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 (js2-visit-ast.(js2-elem-get-nod
26220 65 2d 74 61 72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 e-target.n).v)...(js2-visit-ast.
26240 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 65 6c 65 6d 65 6e 74 20 6e 29 20 76 29 (js2-elem-get-node-element.n).v)
26260 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 )..(defun.js2-print-elem-get-nod
26280 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 e.(n.i)...(insert.(js2-make-pad.
262a0 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 i))...(js2-print-ast.(js2-elem-g
262c0 65 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20 22 et-node-target.n).0)...(insert."
262e0 5b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 [")...(js2-print-ast.(js2-elem-g
26300 65 74 2d 6e 6f 64 65 2d 65 6c 65 6d 65 6e 74 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20 et-node-element.n).0)...(insert.
26320 22 5d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e "]"))..(cl-defstruct.(js2-call-n
26340 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 ode................(:include.js2
26360 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 -node)................(:construc
26380 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 tor.make-js2-call-node.(&key.(ty
263a0 70 65 20 6a 73 32 2d 43 41 4c 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe.js2-CALL)....................
263c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
263e0 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 ...(pos.js2-ts-cursor)..........
26400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26420 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 74 61 72 67 65 74 20 61 72 67 73 0a 20 20 20 .............len.target.args....
26440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41 ...................lp.rp)))..."A
26480 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 4a 61 76 61 53 63 72 69 70 74 20 66 75 6e 63 74 69 6f ST.node.for.a.JavaScript.functio
264a0 6e 20 63 61 6c 6c 2e 22 0a 20 20 74 61 72 67 65 74 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 n.call."...target..;.a.`js2-node
264c0 27 20 65 76 61 6c 75 61 74 69 6e 67 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 '.evaluating.to.the.function.to.
264e0 63 61 6c 6c 0a 20 20 61 72 67 73 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a call...args..;.a.Lisp.list.of.`j
26500 73 32 2d 6e 6f 64 65 27 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 6c 70 20 20 20 20 3b 20 70 6f 73 s2-node'.arguments...lp....;.pos
26520 69 74 69 6f 6e 20 6f 66 20 6f 70 65 6e 2d 70 61 72 65 6e 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6d ition.of.open-paren,.or.nil.if.m
26540 69 73 73 69 6e 67 0a 20 20 72 70 29 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 63 6c 6f issing...rp)...;.position.of.clo
26560 73 65 2d 70 61 72 65 6e 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6d 69 73 73 69 6e 67 0a 0a 28 6a 73 se-paren,.or.nil.if.missing..(js
26580 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 27 6a 73 2--struct-put.'js2-call-node.'js
265a0 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 61 6c 6c 2d 6e 6f 64 65 29 0a 2-visitor.'js2-visit-call-node).
265c0 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 (js2--struct-put.'js2-call-node.
265e0 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 61 6c 6c 2d 6e 6f 64 'js2-printer.'js2-print-call-nod
26600 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 61 6c 6c 2d 6e 6f 64 65 20 28 e)..(defun.js2-visit-call-node.(
26620 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 61 6c 6c 2d n.v)...(js2-visit-ast.(js2-call-
26640 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 61 72 67 node-target.n).v)...(dolist.(arg
26660 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 .(js2-call-node-args.n)).....(js
26680 32 2d 76 69 73 69 74 2d 61 73 74 20 61 72 67 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2-visit-ast.arg.v)))..(defun.js2
266a0 2d 70 72 69 6e 74 2d 63 61 6c 6c 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 -print-call-node.(n.i)...(insert
266c0 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d .(js2-make-pad.i))...(js2-print-
266e0 61 73 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 30 29 0a ast.(js2-call-node-target.n).0).
26700 20 20 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 ..(insert."(")...(js2-print-list
26720 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 29 29 0a 20 20 28 69 6e 73 65 .(js2-call-node-args.n))...(inse
26740 72 74 20 22 29 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 79 69 65 rt.")"))..(cl-defstruct.(js2-yie
26760 6c 64 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 ld-node................(:include
26780 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 .js2-node)................(:cons
267a0 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 65 20 28 26 6b 65 tructor.make-js2-yield-node.(&ke
267c0 79 20 28 74 79 70 65 20 6a 73 32 2d 59 49 45 4c 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 y.(type.js2-YIELD)..............
267e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26800 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 ..........(pos.js2-ts-cursor)...
26820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 76 61 6c 75 65 20 73 .....................len.value.s
26860 74 61 72 2d 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 79 69 65 6c 64 20 73 tar-p)))..."AST.node.for.yield.s
26880 74 61 74 65 6d 65 6e 74 20 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20 73 74 61 72 2d tatement.or.expression."...star-
268a0 70 20 3b 20 77 68 65 74 68 65 72 20 69 74 27 73 20 79 69 65 6c 64 2a 0a 20 20 76 61 6c 75 65 29 p.;.whether.it's.yield*...value)
268c0 20 3b 20 6f 70 74 69 6f 6e 61 6c 3a 20 20 76 61 6c 75 65 20 74 6f 20 62 65 20 79 69 65 6c 64 65 .;.optional:..value.to.be.yielde
268e0 64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 79 69 65 6c 64 2d 6e d..(js2--struct-put.'js2-yield-n
26900 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 79 69 65 6c ode.'js2-visitor.'js2-visit-yiel
26920 64 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 79 69 d-node).(js2--struct-put.'js2-yi
26940 65 6c 64 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 eld-node.'js2-printer.'js2-print
26960 2d 79 69 65 6c 64 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 79 -yield-node)..(defun.js2-visit-y
26980 69 65 6c 64 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 ield-node.(n.v)...(js2-visit-ast
269a0 20 28 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 29 20 76 29 29 0a 0a 28 .(js2-yield-node-value.n).v))..(
269c0 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 79 69 65 6c 64 2d 6e 6f 64 65 20 28 6e 20 69 29 defun.js2-print-yield-node.(n.i)
269e0 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 ...(insert.(js2-make-pad.i))...(
26a00 69 6e 73 65 72 74 20 22 79 69 65 6c 64 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 79 69 65 insert."yield")...(when.(js2-yie
26a20 6c 64 2d 6e 6f 64 65 2d 73 74 61 72 2d 70 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a ld-node-star-p.n).....(insert."*
26a40 22 29 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 65 2d 76 61 6c 75 "))...(when.(js2-yield-node-valu
26a60 65 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 e.n).....(insert.".").....(js2-p
26a80 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e rint-ast.(js2-yield-node-value.n
26aa0 29 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 70 61 72 65 6e ).0)))..(cl-defstruct.(js2-paren
26ac0 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a -node................(:include.j
26ae0 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 s2-node)................(:constr
26b00 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20 uctor.make-js2-paren-node.(&key.
26b20 28 74 79 70 65 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (type.js2-LP)...................
26b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26b60 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 .....(pos.js2-ts-cursor)........
26b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 65 78 70 72 29 29 29 0a 20 20 22 41 ................len.expr)))..."A
26bc0 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 65 78 70 72 ST.node.for.a.parenthesized.expr
26be0 65 73 73 69 6f 6e 2e 0a 49 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 75 73 65 64 20 77 68 65 6e ession..In.particular,.used.when
26c00 20 74 68 65 20 70 61 72 65 6e 73 20 61 72 65 20 73 79 6e 74 61 63 74 69 63 61 6c 6c 79 20 6f 70 .the.parens.are.syntactically.op
26c20 74 69 6f 6e 61 6c 2c 0a 61 73 20 6f 70 70 6f 73 65 64 20 74 6f 20 72 65 71 75 69 72 65 64 20 70 tional,.as.opposed.to.required.p
26c40 61 72 65 6e 73 20 73 75 63 68 20 61 73 20 74 68 6f 73 65 20 65 6e 63 6c 6f 73 69 6e 67 20 61 6e arens.such.as.those.enclosing.an
26c60 20 69 66 2d 63 6f 6e 64 69 74 69 6f 6e 61 6c 2e 22 0a 20 20 65 78 70 72 29 20 20 20 3b 20 60 6a .if-conditional."...expr)...;.`j
26c80 73 32 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d s2-node'..(js2--struct-put.'js2-
26ca0 70 61 72 65 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 paren-node.'js2-visitor.'js2-vis
26cc0 69 74 2d 70 61 72 65 6e 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 it-paren-node).(js2--struct-put.
26ce0 27 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 'js2-paren-node.'js2-printer.'js
26d00 32 2d 70 72 69 6e 74 2d 70 61 72 65 6e 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2-print-paren-node)..(defun.js2-
26d20 76 69 73 69 74 2d 70 61 72 65 6e 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 visit-paren-node.(n.v)...(js2-vi
26d40 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 sit-ast.(js2-paren-node-expr.n).
26d60 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 70 61 72 65 6e 2d 6e 6f 64 65 v))..(defun.js2-print-paren-node
26d80 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 .(n.i)...(insert.(js2-make-pad.i
26da0 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 ))...(insert."(")...(js2-print-a
26dc0 73 74 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 30 29 0a 20 20 st.(js2-paren-node-expr.n).0)...
26de0 28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 (insert.")"))..(cl-defstruct.(js
26e00 32 2d 63 6f 6d 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 2-comp-node................(:inc
26e20 6c 75 64 65 20 6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 lude.js2-scope)................(
26e40 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 20 :constructor.make-js2-comp-node.
26e60 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 41 52 52 41 59 43 4f 4d 50 29 0a 20 20 20 20 20 (&key.(type.js2-ARRAYCOMP)......
26e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 .................(pos.js2-ts-cur
26ec0 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sor)............................
26ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 72 ...........................len.r
26f00 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 esult...........................
26f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 70 ............................loop
26f40 73 20 66 69 6c 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.filters.......................
26f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26f80 66 6f 72 6d 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 41 72 72 61 79 form)))..."AST.node.for.an.Array
26fa0 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 20 73 75 63 68 20 61 73 20 5b 5b 78 2c 79 5d 20 66 6f .comprehension.such.as.[[x,y].fo
26fc0 72 20 28 78 20 69 6e 20 66 6f 6f 29 20 66 6f 72 20 28 79 20 69 6e 20 62 61 72 29 5d 2e 22 0a 20 r.(x.in.foo).for.(y.in.bar)]."..
26fe0 20 72 65 73 75 6c 74 20 20 3b 20 72 65 73 75 6c 74 20 65 78 70 72 65 73 73 69 6f 6e 20 28 6a 75 .result..;.result.expression.(ju
27000 73 74 20 61 66 74 65 72 20 6c 65 66 74 2d 62 72 61 63 6b 65 74 29 0a 20 20 6c 6f 6f 70 73 20 20 st.after.left-bracket)...loops..
27020 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 .;.a.Lisp.list.of.`js2-comp-loop
27040 2d 6e 6f 64 65 27 0a 20 20 66 69 6c 74 65 72 73 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f -node'...filters.;.a.Lisp.list.o
27060 66 20 67 75 61 72 64 2f 66 69 6c 74 65 72 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 66 6f 72 f.guard/filter.expressions...for
27080 6d 20 20 20 20 3b 20 41 52 52 41 59 2c 20 4c 45 47 41 43 59 5f 41 52 52 41 59 20 6f 72 20 53 54 m....;.ARRAY,.LEGACY_ARRAY.or.ST
270a0 41 52 5f 47 45 4e 45 52 41 54 4f 52 0a 20 20 20 20 20 20 20 20 20 20 3b 20 53 70 69 64 65 72 4d AR_GENERATOR...........;.SpiderM
270c0 6f 6e 6b 65 79 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 22 6c 65 67 61 63 79 20 67 65 6e 65 onkey.also.supports."legacy.gene
270e0 72 61 74 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 73 22 2c 20 62 75 74 20 77 65 20 64 6f 6e 74 2e rator.expressions",.but.we.dont.
27100 0a 20 20 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 ...)..(js2--struct-put.'js2-comp
27120 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 6f -node.'js2-visitor.'js2-visit-co
27140 6d 70 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 mp-node).(js2--struct-put.'js2-c
27160 6f 6d 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 omp-node.'js2-printer.'js2-print
27180 2d 63 6f 6d 70 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f -comp-node)..(defun.js2-visit-co
271a0 6d 70 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 mp-node.(n.v)...(js2-visit-ast.(
271c0 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 72 65 73 75 6c 74 20 6e 29 20 76 29 0a 20 20 28 64 6f js2-comp-node-result.n).v)...(do
271e0 6c 69 73 74 20 28 6c 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 6c 6f 6f 70 73 20 6e 29 29 list.(l.(js2-comp-node-loops.n))
27200 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6c 20 76 29 29 0a 20 20 28 64 6f 6c .....(js2-visit-ast.l.v))...(dol
27220 69 73 74 20 28 66 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 66 69 6c 74 65 72 73 20 6e 29 ist.(f.(js2-comp-node-filters.n)
27240 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 66 20 76 29 29 29 0a 0a 28 64 65 ).....(js2-visit-ast.f.v)))..(de
27260 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 70 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 fun.js2-print-comp-node.(n.i)...
27280 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 (let.((pad.(js2-make-pad.i))....
272a0 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 72 65 73 75 .....(result.(js2-comp-node-resu
272c0 6c 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 6f 70 73 20 28 6a 73 32 2d 63 6f 6d 70 2d lt.n)).........(loops.(js2-comp-
272e0 6e 6f 64 65 2d 6c 6f 6f 70 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 6c 74 65 72 73 20 node-loops.n)).........(filters.
27300 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 66 69 6c 74 65 72 73 20 6e 29 29 0a 20 20 20 20 20 (js2-comp-node-filters.n))......
27320 20 20 20 28 6c 65 67 61 63 79 2d 70 20 28 65 71 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d ...(legacy-p.(eq.(js2-comp-node-
27340 66 6f 72 6d 20 6e 29 20 27 4c 45 47 41 43 59 5f 41 52 52 41 59 29 29 0a 20 20 20 20 20 20 20 20 form.n).'LEGACY_ARRAY)).........
27360 28 67 65 6e 2d 70 20 28 65 71 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 66 6f 72 6d 20 6e (gen-p.(eq.(js2-comp-node-form.n
27380 29 20 27 53 54 41 52 5f 47 45 4e 45 52 41 54 4f 52 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 ).'STAR_GENERATOR))).....(insert
273a0 20 70 61 64 20 28 69 66 20 67 65 6e 2d 70 20 22 28 22 20 22 5b 22 29 29 0a 20 20 20 20 28 77 68 .pad.(if.gen-p."("."[")).....(wh
273c0 65 6e 20 6c 65 67 61 63 79 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 en.legacy-p.......(js2-print-ast
273e0 20 72 65 73 75 6c 74 20 30 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6c 20 6c 6f 6f 70 73 .result.0)).....(dolist.(l.loops
27400 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 67 61 63 79 2d 70 0a 20 20 20 20 20 20 20 20 28 ).......(when.legacy-p.........(
27420 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 insert.".")).......(js2-print-as
27440 74 20 6c 20 30 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 67 61 63 79 2d 70 0a 20 20 t.l.0).......(unless.legacy-p...
27460 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 ......(insert."."))).....(dolist
27480 20 28 66 20 66 69 6c 74 65 72 73 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 67 61 63 79 2d .(f.filters).......(when.legacy-
274a0 70 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20 20 20 20 28 69 p.........(insert.".")).......(i
274c0 6e 73 65 72 74 20 22 69 66 20 28 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 nsert."if.(").......(js2-print-a
274e0 73 74 20 66 20 30 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 22 29 0a 20 20 20 20 20 st.f.0).......(insert.")")......
27500 20 28 75 6e 6c 65 73 73 20 6c 65 67 61 63 79 2d 70 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 .(unless.legacy-p.........(inser
27520 74 20 22 20 22 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 67 61 63 79 2d 70 0a 20 20 t."."))).....(unless.legacy-p...
27540 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 72 65 73 75 6c 74 20 30 29 29 0a 20 20 ....(js2-print-ast.result.0))...
27560 20 20 28 69 6e 73 65 72 74 20 28 69 66 20 67 65 6e 2d 70 20 22 29 22 20 22 5d 22 29 29 29 29 0a ..(insert.(if.gen-p.")"."]")))).
27580 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f .(cl-defstruct.(js2-comp-loop-no
275a0 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d de................(:include.js2-
275c0 66 6f 72 2d 69 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f for-in-node)................(:co
275e0 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 nstructor.make-js2-comp-loop-nod
27600 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20 20 20 e.(&key.(type.js2-FOR)..........
27620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 ..................(pos.js2-ts-cu
27660 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsor)...........................
27680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
276a0 20 6c 65 6e 20 69 74 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .len.iterator...................
276c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
276e0 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20 69 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 .........object.in-pos..........
27700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 2d 70 0a 20 20 20 20 ..................foreach-p.....
27740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68 2d 70 6f 73 0a .......................each-pos.
27780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
277a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6f 66 ...........................forof
277c0 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -p..............................
277e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70 ..............................lp
27800 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 73 75 62 74 72 65 65 20 66 6f 72 20 65 61 63 68 20 27 .rp)))..."AST.subtree.for.each.'
27820 66 6f 72 20 28 66 6f 6f 20 69 6e 20 62 61 72 29 27 20 6c 6f 6f 70 20 69 6e 20 61 6e 20 61 72 72 for.(foo.in.bar)'.loop.in.an.arr
27840 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 ay.comprehension.")..(js2--struc
27860 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 t-put.'js2-comp-loop-node.'js2-v
27880 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6d 70 2d 6c 6f 6f 70 29 0a 28 6a 73 isitor.'js2-visit-comp-loop).(js
278a0 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 2--struct-put.'js2-comp-loop-nod
278c0 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 70 2d 6c e.'js2-printer.'js2-print-comp-l
278e0 6f 6f 70 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6d 70 2d 6c 6f 6f 70 oop)..(defun.js2-visit-comp-loop
27900 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6d .(n.v)...(js2-visit-ast.(js2-com
27920 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e 29 20 76 29 0a 20 20 28 6a 73 p-loop-node-iterator.n).v)...(js
27940 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 2-visit-ast.(js2-comp-loop-node-
27960 6f 62 6a 65 63 74 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d object.n).v))..(defun.js2-print-
27980 63 6f 6d 70 2d 6c 6f 6f 70 20 28 6e 20 5f 69 29 0a 20 20 28 69 6e 73 65 72 74 20 22 66 6f 72 20 comp-loop.(n._i)...(insert."for.
279a0 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 66 ")...(when.(js2-comp-loop-node-f
279c0 6f 72 65 61 63 68 2d 70 20 6e 29 20 28 69 6e 73 65 72 74 20 22 65 61 63 68 20 22 29 29 0a 20 20 oreach-p.n).(insert."each."))...
279e0 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a (insert."(")...(js2-print-ast.(j
27a00 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e 29 20 30 29 s2-comp-loop-node-iterator.n).0)
27a20 0a 20 20 28 69 6e 73 65 72 74 20 28 69 66 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f ...(insert.(if.(js2-comp-loop-no
27a40 64 65 2d 66 6f 72 6f 66 2d 70 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 6f 66 de-forof-p.n)...............".of
27a60 20 22 20 22 20 69 6e 20 22 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 .".".in."))...(js2-print-ast.(js
27a80 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a 20 20 2-comp-loop-node-object.n).0)...
27aa0 28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 (insert.")"))..(cl-defstruct.(js
27ac0 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-empty-expr-node...............
27ae0 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(:include.js2-node)............
27b00 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 65 6d 70 74 79 ....(:constructor.make-js2-empty
27b20 2d 65 78 70 72 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 45 4d 50 54 59 -expr-node.(&key.(type.js2-EMPTY
27b40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
27b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 ..............................(p
27b80 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 os.(js2-current-token-beg)).....
27ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20 ........................len)))..
27be0 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 65 6d 70 74 79 20 65 78 70 72 65 73 73 69 ."AST.node.for.an.empty.expressi
27c00 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 6d 70 on.")..(js2--struct-put.'js2-emp
27c20 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 ty-expr-node.'js2-visitor.'js2-v
27c40 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 isit-none).(js2--struct-put.'js2
27c60 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a -empty-expr-node.'js2-printer.'j
27c80 73 32 2d 70 72 69 6e 74 2d 6e 6f 6e 65 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a s2-print-none)..(cl-defstruct.(j
27ca0 73 32 2d 78 6d 6c 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 s2-xml-node................(:inc
27cc0 6c 75 64 65 20 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 lude.js2-block-node)............
27ce0 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e ....(:constructor.make-js2-xml-n
27d00 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 ode.(&key.(type.js2-XML)........
27d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d ..............(pos.(js2-current-
27d60 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 token-beg)).....................
27d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27da0 20 6c 65 6e 20 6b 69 64 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 69 6e 69 .len.kids)))..."AST.node.for.ini
27dc0 74 69 61 6c 20 70 61 72 73 65 20 6f 66 20 45 34 58 20 6c 69 74 65 72 61 6c 73 2e 0a 54 68 65 20 tial.parse.of.E4X.literals..The.
27de0 6b 69 64 73 20 66 69 65 6c 64 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 58 4d 4c 20 66 72 61 67 kids.field.is.a.list.of.XML.frag
27e00 6d 65 6e 74 73 2c 20 65 61 63 68 20 61 20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 ments,.each.a.`js2-string-node'.
27e20 6f 72 0a 61 20 60 6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 27 2e 20 20 45 71 or.a.`js2-xml-js-expr-node'...Eq
27e40 75 69 76 61 6c 65 6e 74 20 74 6f 20 52 68 69 6e 6f 27 73 20 58 6d 6c 4c 69 74 65 72 61 6c 20 6e uivalent.to.Rhino's.XmlLiteral.n
27e60 6f 64 65 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d ode.")..(js2--struct-put.'js2-xm
27e80 6c 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 62 l-node.'js2-visitor.'js2-visit-b
27ea0 6c 6f 63 6b 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d lock).(js2--struct-put.'js2-xml-
27ec0 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c node.'js2-printer.'js2-print-xml
27ee0 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e 6f 64 -node)..(defun.js2-print-xml-nod
27f00 65 20 28 6e 20 69 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d 6c 2d e.(n.i)...(dolist.(kid.(js2-xml-
27f20 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 node-kids.n)).....(js2-print-ast
27f40 20 6b 69 64 20 69 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d .kid.i)))..(cl-defstruct.(js2-xm
27f60 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a l-js-expr-node................(:
27f80 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 include.js2-xml-node)...........
27fa0 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d .....(:constructor.make-js2-xml-
27fc0 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c js-expr-node.(&key.(type.js2-XML
27fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
28000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
28020 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.js2-ts-cursor)..............
28040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 65 78 70 72 29 29 29 0a 20 20 22 41 ................len.expr)))..."A
28080 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 65 6d 62 65 64 64 65 64 20 4a 61 76 61 53 63 72 69 ST.node.for.an.embedded.JavaScri
280a0 70 74 20 7b 65 78 70 72 65 73 73 69 6f 6e 7d 20 69 6e 20 61 6e 20 45 34 58 20 6c 69 74 65 72 61 pt.{expression}.in.an.E4X.litera
280c0 6c 2e 0a 54 68 65 20 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 66 69 65 6c 64 73 20 63 6f 72 72 l..The.start.and.end.fields.corr
280e0 65 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 63 75 72 6c 79 2d 62 72 61 63 65 73 2e 22 0a 20 20 65 espond.to.the.curly-braces."...e
28100 78 70 72 29 20 20 3b 20 61 20 60 6a 73 32 2d 65 78 70 72 2d 6e 6f 64 65 27 20 6f 66 20 73 6f 6d xpr)..;.a.`js2-expr-node'.of.som
28120 65 20 73 6f 72 74 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d e.sort..(js2--struct-put.'js2-xm
28140 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 l-js-expr-node.'js2-visitor.'js2
28160 2d 76 69 73 69 74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 -visit-xml-js-expr).(js2--struct
28180 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73 32 2d -put.'js2-xml-js-expr-node.'js2-
281a0 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 29 0a printer.'js2-print-xml-js-expr).
281c0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 20 28 6e .(defun.js2-visit-xml-js-expr.(n
281e0 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 6a 73 .v)...(js2-visit-ast.(js2-xml-js
28200 2d 65 78 70 72 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a -expr-node-expr.n).v))..(defun.j
28220 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 20 28 6e 20 69 29 0a 20 20 28 69 6e s2-print-xml-js-expr.(n.i)...(in
28240 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 69 6e 73 65 72 74 sert.(js2-make-pad.i))...(insert
28260 20 22 7b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d ."{")...(js2-print-ast.(js2-xml-
28280 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 js-expr-node-expr.n).0)...(inser
282a0 74 20 22 7d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d t."}"))..(cl-defstruct.(js2-xml-
282c0 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a dot-query-node................(:
282e0 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 include.js2-infix-node).........
28300 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d .......(:constructor.make-js2-xm
28320 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 l-dot-query-node.(&key.(type.js2
28340 2d 44 4f 54 51 55 45 52 59 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -DOTQUERY)......................
28360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28380 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 ..........(pos.js2-ts-cursor)...
283a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
283c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 2d .............................op-
283e0 70 6f 73 20 6c 65 6e 20 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.len.left....................
28400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28420 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e ............right.rp)))..."AST.n
28440 6f 64 65 20 66 6f 72 20 61 6e 20 45 34 58 20 66 6f 6f 2e 28 62 61 72 29 20 66 69 6c 74 65 72 20 ode.for.an.E4X.foo.(bar).filter.
28460 65 78 70 72 65 73 73 69 6f 6e 2e 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 6c 65 66 74 2d 70 expression..Note.that.the.left-p
28480 61 72 65 6e 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 68 65 20 63 68 61 72 61 63 aren.is.automatically.the.charac
284a0 74 65 72 20 69 6d 6d 65 64 69 61 74 65 6c 79 0a 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 64 6f ter.immediately.following.the.do
284c0 74 20 28 2e 29 20 69 6e 20 74 68 65 20 6f 70 65 72 61 74 6f 72 2e 20 20 4e 6f 20 77 68 69 74 65 t.(.).in.the.operator...No.white
284e0 73 70 61 63 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 0a 62 65 74 77 65 65 6e 20 74 68 65 20 64 space.is.permitted.between.the.d
28500 6f 74 20 61 6e 64 20 74 68 65 20 6c 70 20 62 79 20 74 68 65 20 73 63 61 6e 6e 65 72 2e 22 0a 20 ot.and.the.lp.by.the.scanner."..
28520 20 72 70 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d .rp)..(js2--struct-put.'js2-xml-
28540 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 dot-query-node.'js2-visitor.'js2
28560 2d 76 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d -visit-infix-node).(js2--struct-
28580 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 20 27 6a 73 32 put.'js2-xml-dot-query-node.'js2
285a0 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 -printer.'js2-print-xml-dot-quer
285c0 79 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 y)..(defun.js2-print-xml-dot-que
285e0 72 79 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 ry.(n.i)...(insert.(js2-make-pad
28600 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 64 .i))...(js2-print-ast.(js2-xml-d
28620 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 ot-query-node-left.n).0)...(inse
28640 72 74 20 22 2e 28 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 rt.".(")...(js2-print-ast.(js2-x
28660 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 29 20 30 29 0a 20 20 ml-dot-query-node-right.n).0)...
28680 28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 (insert.")"))..(cl-defstruct.(js
286a0 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 2-xml-ref-node................(:
286c0 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 include.js2-node)...............
286e0 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6e 69 6c 29 29 20 20 3b 20 61 62 73 74 72 61 63 74 .(:constructor.nil))..;.abstract
28700 0a 20 20 22 42 61 73 65 20 74 79 70 65 20 66 6f 72 20 45 34 58 20 58 4d 4c 20 61 74 74 72 69 62 ..."Base.type.for.E4X.XML.attrib
28720 75 74 65 2d 61 63 63 65 73 73 20 6f 72 20 70 72 6f 70 65 72 74 79 2d 67 65 74 20 65 78 70 72 65 ute-access.or.property-get.expre
28740 73 73 69 6f 6e 73 2e 0a 53 75 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 74 61 6b ssions..Such.expressions.can.tak
28760 65 20 61 20 76 61 72 69 65 74 79 20 6f 66 20 66 6f 72 6d 73 2e 20 20 54 68 65 20 67 65 6e 65 72 e.a.variety.of.forms...The.gener
28780 61 6c 20 73 79 6e 74 61 78 20 68 61 73 0a 74 68 72 65 65 20 70 61 72 74 73 3a 0a 0a 20 20 2d 20 al.syntax.has.three.parts:....-.
287a0 28 6f 70 74 69 6f 6e 61 6c 29 20 61 6e 20 40 20 28 73 70 65 63 69 66 79 69 6e 67 20 61 6e 20 61 (optional).an.@.(specifying.an.a
287c0 74 74 72 69 62 75 74 65 20 61 63 63 65 73 73 29 0a 20 20 2d 20 28 6f 70 74 69 6f 6e 61 6c 29 20 ttribute.access)...-.(optional).
287e0 61 20 6e 61 6d 65 73 70 61 63 65 20 28 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 29 20 a.namespace.(a.`js2-name-node').
28800 61 6e 64 20 64 6f 75 62 6c 65 2d 63 6f 6c 6f 6e 0a 20 20 2d 20 28 72 65 71 75 69 72 65 64 29 20 and.double-colon...-.(required).
28820 65 69 74 68 65 72 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 6f 72 20 61 20 62 72 either.a.`js2-name-node'.or.a.br
28840 61 63 6b 65 74 65 64 20 5b 65 78 70 72 65 73 73 69 6f 6e 5d 0a 0a 54 68 65 20 70 72 6f 70 65 72 acketed.[expression]..The.proper
28860 74 79 2d 6e 61 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 28 65 78 61 6d 70 6c 65 73 3a 20 20 ty-name.expressions.(examples:..
28880 6e 73 3a 3a 6e 61 6d 65 2c 20 40 6e 61 6d 65 29 20 61 72 65 0a 72 65 70 72 65 73 65 6e 74 65 64 ns::name,.@name).are.represented
288a0 20 61 73 20 60 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 27 20 6e 6f 64 65 73 2e 20 20 54 .as.`js2-xml-prop-ref'.nodes...T
288c0 68 65 20 62 72 61 63 6b 65 74 65 64 2d 65 78 70 72 65 73 73 69 6f 6e 0a 76 65 72 73 69 6f 6e 73 he.bracketed-expression.versions
288e0 20 28 65 78 61 6d 70 6c 65 73 3a 20 20 6e 73 3a 3a 5b 6e 61 6d 65 5d 2c 20 40 5b 6e 61 6d 65 5d .(examples:..ns::[name],.@[name]
28900 29 20 62 65 63 6f 6d 65 20 60 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 27 20 6e 6f 64 65 ).become.`js2-xml-elem-ref'.node
28920 73 2e 0a 0a 54 68 69 73 20 6e 6f 64 65 20 74 79 70 65 20 28 6f 72 20 6d 6f 72 65 20 73 70 65 63 s...This.node.type.(or.more.spec
28940 69 66 69 63 61 6c 6c 79 2c 20 69 74 73 20 73 75 62 63 6c 61 73 73 65 73 29 20 77 69 6c 6c 20 73 ifically,.its.subclasses).will.s
28960 6f 6d 65 74 69 6d 65 73 0a 62 65 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 63 68 69 6c 64 ometimes.be.the.right-hand.child
28980 20 6f 66 20 61 20 60 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 27 20 6f 72 20 61 0a 60 .of.a.`js2-prop-get-node'.or.a.`
289a0 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 27 20 6f 66 20 74 79 70 65 20 60 6a 73 32 2d 44 4f 54 js2-infix-node'.of.type.`js2-DOT
289c0 44 4f 54 27 2c 20 74 68 65 20 2e 2e 20 78 6d 6c 2d 64 65 73 63 65 6e 64 61 6e 74 73 20 6f 70 65 DOT',.the....xml-descendants.ope
289e0 72 61 74 6f 72 2e 0a 54 68 65 20 60 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 27 20 6d 61 rator..The.`js2-xml-ref-node'.ma
28a00 79 20 61 6c 73 6f 20 62 65 20 61 20 73 74 61 6e 64 61 6c 6f 6e 65 20 70 72 69 6d 61 72 79 20 65 y.also.be.a.standalone.primary.e
28a20 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 0a 6e 6f 20 65 78 70 6c 69 63 69 74 20 74 61 72 67 65 xpression.with.no.explicit.targe
28a40 74 2c 20 77 68 69 63 68 20 69 73 20 76 61 6c 69 64 20 69 6e 20 63 65 72 74 61 69 6e 20 65 78 70 t,.which.is.valid.in.certain.exp
28a60 72 65 73 73 69 6f 6e 20 63 6f 6e 74 65 78 74 73 20 73 75 63 68 20 61 73 0a 0a 20 20 63 6f 6d 70 ression.contexts.such.as....comp
28a80 61 6e 79 2e 2e 65 6d 70 6c 6f 79 65 65 2e 28 40 69 64 20 3c 20 31 30 30 29 0a 0a 69 6e 20 74 68 any..employee.(@id.<.100)..in.th
28aa0 69 73 20 63 61 73 65 2c 20 74 68 65 20 40 69 64 20 69 73 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 72 is.case,.the.@id.is.a.`js2-xml-r
28ac0 65 66 27 20 74 68 61 74 20 69 73 20 70 61 72 74 20 6f 66 20 61 6e 20 69 6e 66 69 78 20 60 3c 27 ef'.that.is.part.of.an.infix.`<'
28ae0 0a 65 78 70 72 65 73 73 69 6f 6e 20 77 68 6f 73 65 20 70 61 72 65 6e 74 20 69 73 20 61 20 60 6a .expression.whose.parent.is.a.`j
28b00 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 27 2e 22 0a 20 20 6e 61 6d 65 73 s2-xml-dot-query-node'."...names
28b20 70 61 63 65 0a 20 20 61 74 2d 70 6f 73 0a 20 20 63 6f 6c 6f 6e 2d 70 6f 73 29 0a 0a 28 64 65 66 pace...at-pos...colon-pos)..(def
28b40 73 75 62 73 74 20 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 74 72 2d 61 63 63 65 subst.js2-xml-ref-node-attr-acce
28b60 73 73 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 ss-p.(node)..."Return.non-nil.if
28b80 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 20 62 65 67 61 6e 20 77 69 74 68 20 61 6e 20 40 .this.expression.began.with.an.@
28ba0 2d 74 6f 6b 65 6e 2e 22 0a 20 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 28 6a 73 32 2d 78 6d -token."...(and.(numberp.(js2-xm
28bc0 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 l-ref-node-at-pos.node))........
28be0 28 63 6c 2d 70 6c 75 73 70 20 28 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 2d 70 (cl-plusp.(js2-xml-ref-node-at-p
28c00 6f 73 20 6e 6f 64 65 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d os.node))))..(cl-defstruct.(js2-
28c20 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xml-prop-ref-node...............
28c40 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 29 0a 20 20 20 .(:include.js2-xml-ref-node)....
28c60 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a ............(:constructor.make-j
28c80 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 s2-xml-prop-ref-node.(&key.(type
28ca0 20 6a 73 32 2d 52 45 46 5f 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-REF_NAME)..................
28cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 .............(pos.(js2-current-t
28d00 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oken-beg))......................
28d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28d40 20 20 20 20 20 20 20 20 20 6c 65 6e 20 70 72 6f 70 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 .........len.propname...........
28d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 61 74 ....................namespace.at
28da0 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pos............................
28dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28de0 20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 ...colon-pos)))..."AST.node.for.
28e00 61 6e 20 45 34 58 20 58 4d 4c 20 5b 65 78 70 72 5d 20 70 72 6f 70 65 72 74 79 2d 72 65 66 20 65 an.E4X.XML.[expr].property-ref.e
28e20 78 70 72 65 73 73 69 6f 6e 2e 0a 54 68 65 20 4a 61 76 61 53 63 72 69 70 74 20 73 79 6e 74 61 78 xpression..The.JavaScript.syntax
28e40 20 69 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 40 2c 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6e .is.an.optional.@,.an.optional.n
28e60 73 3a 3a 2c 20 61 6e 64 20 61 20 6e 61 6d 65 2e 0a 0a 20 20 5b 20 60 40 27 20 5d 20 5b 20 6e 61 s::,.and.a.name.....[.`@'.].[.na
28e80 6d 65 20 60 3a 3a 27 20 5d 20 6e 61 6d 65 0a 0a 45 78 61 6d 70 6c 65 73 20 69 6e 63 6c 75 64 65 me.`::'.].name..Examples.include
28ea0 20 6e 61 6d 65 2c 20 6e 73 3a 3a 6e 61 6d 65 2c 20 6e 73 3a 3a 2a 2c 20 2a 3a 3a 6e 61 6d 65 2c .name,.ns::name,.ns::*,.*::name,
28ec0 20 2a 3a 3a 2a 2c 20 40 61 74 74 72 2c 20 40 6e 73 3a 3a 61 74 74 72 2c 0a 40 6e 73 3a 3a 2a 2c .*::*,.@attr,.@ns::attr,.@ns::*,
28ee0 20 40 2a 3a 3a 61 74 74 72 2c 20 40 2a 3a 3a 2a 2c 20 61 6e 64 20 40 2a 2e 0a 0a 54 68 65 20 6e .@*::attr,.@*::*,.and.@*...The.n
28f00 6f 64 65 20 73 74 61 72 74 73 20 61 74 20 74 68 65 20 40 20 74 6f 6b 65 6e 2c 20 69 66 20 70 72 ode.starts.at.the.@.token,.if.pr
28f20 65 73 65 6e 74 2e 20 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 73 74 61 72 74 73 20 61 74 20 74 esent...Otherwise.it.starts.at.t
28f40 68 65 0a 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 2e 20 20 54 68 65 20 6e 6f 64 65 20 62 6f 75 he.namespace.name...The.node.bou
28f60 6e 64 73 20 65 78 74 65 6e 64 20 74 68 72 6f 75 67 68 20 74 68 65 20 63 6c 6f 73 69 6e 67 20 72 nds.extend.through.the.closing.r
28f80 69 67 68 74 2d 62 72 61 63 6b 65 74 2c 0a 6f 72 20 69 66 20 69 74 20 69 73 20 6d 69 73 73 69 6e ight-bracket,.or.if.it.is.missin
28fa0 67 20 64 75 65 20 74 6f 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 2c 20 74 68 72 6f 75 67 68 g.due.to.a.syntax.error,.through
28fc0 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 69 6e 64 65 78 0a 65 78 70 72 65 73 73 69 6f 6e .the.end.of.the.index.expression
28fe0 2e 22 0a 20 20 70 72 6f 70 6e 61 6d 65 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 ."...propname)..(js2--struct-put
29000 20 27 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 .'js2-xml-prop-ref-node.'js2-vis
29020 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 itor.'js2-visit-xml-prop-ref-nod
29040 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 70 72 6f e).(js2--struct-put.'js2-xml-pro
29060 70 2d 72 65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 p-ref-node.'js2-printer.'js2-pri
29080 6e 74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 nt-xml-prop-ref-node)..(defun.js
290a0 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 2-visit-xml-prop-ref-node.(n.v).
290c0 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 ..(js2-visit-ast.(js2-xml-prop-r
290e0 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 ef-node-namespace.n).v)...(js2-v
29100 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 2d isit-ast.(js2-xml-prop-ref-node-
29120 70 72 6f 70 6e 61 6d 65 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e propname.n).v))..(defun.js2-prin
29140 74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 t-xml-prop-ref-node.(n.i)...(ins
29160 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 69 66 20 28 6a 73 32 ert.(js2-make-pad.i))...(if.(js2
29180 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 74 72 2d 61 63 63 65 73 73 2d 70 20 6e 29 0a 20 -xml-ref-node-attr-access-p.n)..
291a0 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 40 22 29 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d .....(insert."@"))...(when.(js2-
291c0 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 0a 20 xml-prop-ref-node-namespace.n)..
291e0 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d ...(js2-print-ast.(js2-xml-prop-
29200 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e ref-node-namespace.n).0).....(in
29220 73 65 72 74 20 22 3a 3a 22 29 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d sert."::"))...(if.(js2-xml-prop-
29240 72 65 66 2d 6e 6f 64 65 2d 70 72 6f 70 6e 61 6d 65 20 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d ref-node-propname.n).......(js2-
29260 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 print-ast.(js2-xml-prop-ref-node
29280 2d 70 72 6f 70 6e 61 6d 65 20 6e 29 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 -propname.n).0)))..(cl-defstruct
292a0 20 28 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 .(js2-xml-elem-ref-node.........
292c0 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 .......(:include.js2-xml-ref-nod
292e0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 e)................(:constructor.
29300 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 20 28 26 6b 65 79 make-js2-xml-elem-ref-node.(&key
29320 20 28 74 79 70 65 20 6a 73 32 2d 52 45 46 5f 4d 45 4d 42 45 52 29 0a 20 20 20 20 20 20 20 20 20 .(type.js2-REF_MEMBER)..........
29340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 .....................(pos.(js2-c
29380 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-token-beg))..............
293a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
293c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 65 78 70 72 20 6c 62 20 72 62 0a .................len.expr.lb.rb.
293e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 ..............................na
29420 6d 65 73 70 61 63 65 20 61 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mespace.at-pos..................
29440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29460 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 29 29 29 0a 20 20 22 41 53 54 .............colon-pos)))..."AST
29480 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 45 34 58 20 58 4d 4c 20 5b 65 78 70 72 5d 20 6d 65 6d 62 .node.for.an.E4X.XML.[expr].memb
294a0 65 72 2d 72 65 66 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 53 79 6e 74 61 78 3a 0a 0a 20 5b 20 60 er-ref.expression..Syntax:...[.`
294c0 40 27 20 5d 20 5b 20 6e 61 6d 65 20 60 3a 3a 27 20 5d 20 60 5b 27 20 65 78 70 72 20 60 5d 27 0a @'.].[.name.`::'.].`['.expr.`]'.
294e0 0a 45 78 61 6d 70 6c 65 73 20 69 6e 63 6c 75 64 65 20 6e 73 3a 3a 5b 65 78 70 72 5d 2c 20 40 6e .Examples.include.ns::[expr],.@n
29500 73 3a 3a 5b 65 78 70 72 5d 2c 20 40 5b 65 78 70 72 5d 2c 20 2a 3a 3a 5b 65 78 70 72 5d 20 61 6e s::[expr],.@[expr],.*::[expr].an
29520 64 20 40 2a 3a 3a 5b 65 78 70 72 5d 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 66 6f 72 d.@*::[expr]...Note.that.the.for
29540 6d 20 5b 65 78 70 72 5d 20 28 69 2e 65 2e 20 6e 6f 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 61 m.[expr].(i.e..no.namespace.or.a
29560 74 74 72 69 62 75 74 65 2d 71 75 61 6c 69 66 69 65 72 29 0a 69 73 20 6e 6f 74 20 61 20 6c 65 67 ttribute-qualifier).is.not.a.leg
29580 61 6c 20 45 34 58 20 58 4d 4c 20 65 6c 65 6d 65 6e 74 2d 72 65 66 20 65 78 70 72 65 73 73 69 6f al.E4X.XML.element-ref.expressio
295a0 6e 2c 20 73 69 6e 63 65 20 69 74 27 73 20 61 6c 72 65 61 64 79 20 75 73 65 64 0a 66 6f 72 20 73 n,.since.it's.already.used.for.s
295c0 74 61 6e 64 61 72 64 20 4a 61 76 61 53 63 72 69 70 74 20 65 6c 65 6d 65 6e 74 2d 67 65 74 20 61 tandard.JavaScript.element-get.a
295e0 72 72 61 79 20 69 6e 64 65 78 69 6e 67 2e 20 20 48 65 6e 63 65 2c 20 61 0a 60 6a 73 32 2d 78 6d rray.indexing...Hence,.a.`js2-xm
29600 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 27 20 61 6c 77 61 79 73 20 68 61 73 20 65 69 74 68 l-elem-ref-node'.always.has.eith
29620 65 72 20 74 68 65 20 61 74 74 72 69 62 75 74 65 2d 71 75 61 6c 69 66 69 65 72 2c 20 61 0a 6e 6f er.the.attribute-qualifier,.a.no
29640 6e 2d 6e 69 6c 20 6e 61 6d 65 73 70 61 63 65 20 6e 6f 64 65 2c 20 6f 72 20 62 6f 74 68 2e 0a 0a n-nil.namespace.node,.or.both...
29660 54 68 65 20 6e 6f 64 65 20 73 74 61 72 74 73 20 61 74 20 74 68 65 20 40 20 74 6f 6b 65 6e 2c 20 The.node.starts.at.the.@.token,.
29680 69 66 20 70 72 65 73 65 6e 74 2e 20 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 73 74 61 72 74 73 if.present...Otherwise.it.starts
296a0 0a 61 74 20 74 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 2e 20 20 54 68 65 20 6e 6f 64 .at.the.namespace.name...The.nod
296c0 65 20 62 6f 75 6e 64 73 20 65 78 74 65 6e 64 20 74 68 72 6f 75 67 68 20 74 68 65 20 63 6c 6f 73 e.bounds.extend.through.the.clos
296e0 69 6e 67 0a 72 69 67 68 74 2d 62 72 61 63 6b 65 74 2c 20 6f 72 20 69 66 20 69 74 20 69 73 20 6d ing.right-bracket,.or.if.it.is.m
29700 69 73 73 69 6e 67 20 64 75 65 20 74 6f 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 2c 20 74 68 issing.due.to.a.syntax.error,.th
29720 72 6f 75 67 68 20 74 68 65 0a 65 6e 64 20 6f 66 20 74 68 65 20 69 6e 64 65 78 20 65 78 70 72 65 rough.the.end.of.the.index.expre
29740 73 73 69 6f 6e 2e 22 0a 20 20 65 78 70 72 20 20 3b 20 74 68 65 20 62 72 61 63 6b 65 74 65 64 20 ssion."...expr..;.the.bracketed.
29760 69 6e 64 65 78 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 6c 62 0a 20 20 72 62 29 0a 0a 28 6a 73 index.expression...lb...rb)..(js
29780 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 2--struct-put.'js2-xml-elem-ref-
297a0 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c node.'js2-visitor.'js2-visit-xml
297c0 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 -elem-ref-node).(js2--struct-put
297e0 20 27 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 .'js2-xml-elem-ref-node.'js2-pri
29800 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 nter.'js2-print-xml-elem-ref-nod
29820 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 e)..(defun.js2-visit-xml-elem-re
29840 66 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a f-node.(n.v)...(js2-visit-ast.(j
29860 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e s2-xml-elem-ref-node-namespace.n
29880 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 65 ).v)...(js2-visit-ast.(js2-xml-e
298a0 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e lem-ref-node-expr.n).v))..(defun
298c0 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 20 28 6e 20 .js2-print-xml-elem-ref-node.(n.
298e0 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 i)...(insert.(js2-make-pad.i))..
29900 20 28 69 66 20 28 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 74 72 2d 61 63 63 65 .(if.(js2-xml-ref-node-attr-acce
29920 73 73 2d 70 20 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 40 22 29 29 0a 20 20 28 77 ss-p.n).......(insert."@"))...(w
29940 68 65 6e 20 28 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 hen.(js2-xml-elem-ref-node-names
29960 70 61 63 65 20 6e 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d pace.n).....(js2-print-ast.(js2-
29980 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 30 xml-elem-ref-node-namespace.n).0
299a0 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 3a 3a 22 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 ).....(insert."::"))...(insert."
299c0 5b 22 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 [")...(if.(js2-xml-elem-ref-node
299e0 2d 65 78 70 72 20 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a -expr.n).......(js2-print-ast.(j
29a00 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 30 29 29 s2-xml-elem-ref-node-expr.n).0))
29a20 0a 20 20 28 69 6e 73 65 72 74 20 22 5d 22 29 29 0a 0a 3b 3b 3b 20 50 6c 61 63 65 68 6f 6c 64 65 ...(insert."]"))..;;;.Placeholde
29a40 72 20 6e 6f 64 65 73 20 66 6f 72 20 77 68 65 6e 20 77 65 20 74 72 79 20 70 61 72 73 69 6e 67 20 r.nodes.for.when.we.try.parsing.
29a60 74 68 65 20 58 4d 4c 20 6c 69 74 65 72 61 6c 73 20 73 74 72 75 63 74 75 72 61 6c 6c 79 2e 0a 0a the.XML.literals.structurally...
29a80 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 (cl-defstruct.(js2-xml-start-tag
29aa0 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a -node................(:include.j
29ac0 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f s2-xml-node)................(:co
29ae0 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 nstructor.make-js2-xml-start-tag
29b00 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 -node.(&key.(type.js2-XML)......
29b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a ..........................(pos.j
29b60 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ts-cursor)...................
29b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 20 61 74 74 72 73 20 6b 69 64 73 .............len.name.attrs.kids
29bc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29c00 65 6d 70 74 79 2d 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 58 4d empty-p)))..."AST.node.for.an.XM
29c20 4c 20 73 74 61 72 74 2d 74 61 67 2e 20 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 L.start-tag...Not.currently.used
29c40 2e 0a 54 68 65 20 60 6b 69 64 73 27 20 66 69 65 6c 64 20 69 73 20 61 20 4c 69 73 70 20 6c 69 73 ..The.`kids'.field.is.a.Lisp.lis
29c60 74 20 6f 66 20 63 68 69 6c 64 20 63 6f 6e 74 65 6e 74 20 6e 6f 64 65 73 2e 22 0a 20 20 6e 61 6d t.of.child.content.nodes."...nam
29c80 65 20 20 20 20 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 27 0a 20 e......;.a.`js2-xml-name-node'..
29ca0 20 61 74 74 72 73 20 20 20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 .attrs.....;.a.Lisp.list.of.`js2
29cc0 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 27 0a 20 20 65 6d 70 74 79 2d 70 29 20 20 3b 20 74 20 -xml-attr-node'...empty-p)..;.t.
29ce0 69 66 20 74 68 69 73 20 69 73 20 61 6e 20 65 6d 70 74 79 20 65 6c 65 6d 65 6e 74 20 73 75 63 68 if.this.is.an.empty.element.such
29d00 20 61 73 20 3c 66 6f 6f 20 62 61 72 3d 22 62 61 7a 22 2f 3e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 .as.<foo.bar="baz"/>..(js2--stru
29d20 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 20 27 ct-put.'js2-xml-start-tag-node.'
29d40 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 73 74 61 72 74 js2-visitor.'js2-visit-xml-start
29d60 2d 74 61 67 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d -tag).(js2--struct-put.'js2-xml-
29d80 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 start-tag-node.'js2-printer.'js2
29da0 2d 70 72 69 6e 74 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 29 0a 0a 28 64 65 66 75 6e 20 6a 73 -print-xml-start-tag)..(defun.js
29dc0 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 20 28 6e 20 76 29 0a 20 20 28 6a 2-visit-xml-start-tag.(n.v)...(j
29de0 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 2d s2-visit-ast.(js2-xml-start-tag-
29e00 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 61 74 74 72 20 node-name.n).v)...(dolist.(attr.
29e20 28 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 (js2-xml-start-tag-node-attrs.n)
29e40 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 61 74 74 72 20 76 29 29 0a 20 20 ).....(js2-visit-ast.attr.v))...
29e60 28 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b 20 6e 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a (js2-visit-block.n.v))..(defun.j
29e80 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 20 28 6e 20 69 29 0a 20 20 28 s2-print-xml-start-tag.(n.i)...(
29ea0 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 3c 22 29 0a 20 20 28 insert.(js2-make-pad.i)."<")...(
29ec0 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 js2-print-ast.(js2-xml-start-tag
29ee0 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 30 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 78 6d -node-name.n).0)...(when.(js2-xm
29f00 6c 2d 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 0a 20 20 20 20 28 69 l-start-tag-node-attrs.n).....(i
29f20 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 nsert.".").....(js2-print-list.(
29f40 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 20 js2-xml-start-tag-node-attrs.n).
29f60 22 20 22 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3e 22 29 29 0a 0a 3b 3b 20 49 20 2d 74 68 69 "."))...(insert.">"))..;;.I.-thi
29f80 6e 6b 2d 20 49 27 6d 20 67 6f 69 6e 67 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 70 61 72 65 6e 74 nk-.I'm.going.to.make.the.parent
29fa0 20 6e 6f 64 65 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 74 61 72 74 2d 74 61 .node.the.corresponding.start-ta
29fc0 67 2c 0a 3b 3b 20 61 6e 64 20 61 64 64 20 74 68 65 20 65 6e 64 2d 74 61 67 20 74 6f 20 74 68 65 g,.;;.and.add.the.end-tag.to.the
29fe0 20 6b 69 64 73 20 6c 69 73 74 20 6f 66 20 74 68 65 20 70 61 72 65 6e 74 20 61 73 20 77 65 6c 6c .kids.list.of.the.parent.as.well
2a000 2e 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 ..(cl-defstruct.(js2-xml-end-tag
2a020 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a -node................(:include.j
2a040 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f s2-xml-node)................(:co
2a060 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e nstructor.make-js2-xml-end-tag-n
2a080 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 ode.(&key.(type.js2-XML)........
2a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 ......................(pos.js2-t
2a0e0 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-cursor).......................
2a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a120 20 20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 .......len.name)))..."AST.node.f
2a140 6f 72 20 61 6e 20 58 4d 4c 20 65 6e 64 2d 74 61 67 2e 20 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c or.an.XML.end-tag...Not.currentl
2a160 79 20 75 73 65 64 2e 22 0a 20 20 6e 61 6d 65 29 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e y.used."...name)..;.a.`js2-xml-n
2a180 61 6d 65 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 ame-node'..(js2--struct-put.'js2
2a1a0 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 -xml-end-tag-node.'js2-visitor.'
2a1c0 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 29 0a 28 6a 73 32 2d 2d 73 74 72 js2-visit-xml-end-tag).(js2--str
2a1e0 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 20 27 6a uct-put.'js2-xml-end-tag-node.'j
2a200 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61 s2-printer.'js2-print-xml-end-ta
2a220 67 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 g)..(defun.js2-visit-xml-end-tag
2a240 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c .(n.v)...(js2-visit-ast.(js2-xml
2a260 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 -end-tag-node-name.n).v))..(defu
2a280 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 20 28 6e 20 69 29 0a 20 20 n.js2-print-xml-end-tag.(n.i)...
2a2a0 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 69 6e 73 (insert.(js2-make-pad.i))...(ins
2a2c0 65 72 74 20 22 3c 2f 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d ert."</")...(js2-print-ast.(js2-
2a2e0 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 30 29 0a 20 20 28 69 xml-end-tag-node-name.n).0)...(i
2a300 6e 73 65 72 74 20 22 3e 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d nsert.">"))..(cl-defstruct.(js2-
2a320 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 xml-name-node................(:i
2a340 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 nclude.js2-xml-node)............
2a360 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e ....(:constructor.make-js2-xml-n
2a380 61 6d 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 ame-node.(&key.(type.js2-XML)...
2a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 ........................(pos.js2
2a3e0 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ts-cursor).....................
2a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a420 20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 73 70 61 63 65 20 6b 69 64 73 29 29 29 0a 20 20 22 41 ......len.namespace.kids)))..."A
2a440 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 45 34 58 20 58 4d 4c 20 6e 61 6d 65 2e 20 20 4e 6f ST.node.for.an.E4X.XML.name...No
2a460 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 0a 41 6e 79 20 58 4d 4c 20 6e 61 6d 65 20 63 t.currently.used..Any.XML.name.c
2a480 61 6e 20 62 65 20 71 75 61 6c 69 66 69 65 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 an.be.qualified.with.a.namespace
2a4a0 2c 20 68 65 6e 63 65 20 74 68 65 20 6e 61 6d 65 73 70 61 63 65 20 66 69 65 6c 64 2e 0a 46 75 72 ,.hence.the.namespace.field..Fur
2a4c0 74 68 65 72 2c 20 61 6e 79 20 45 34 58 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 63 6f 6d 70 72 69 ther,.any.E4X.name.can.be.compri
2a4e0 73 65 64 20 6f 66 20 61 72 62 69 74 72 61 72 79 20 4a 61 76 61 53 63 72 69 70 74 20 7b 7d 20 65 sed.of.arbitrary.JavaScript.{}.e
2a500 78 70 72 65 73 73 69 6f 6e 73 2e 0a 54 68 65 20 6b 69 64 73 20 66 69 65 6c 64 20 69 73 20 61 20 xpressions..The.kids.field.is.a.
2a520 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 61 6e 64 20 60 6a 73 32 list.of.`js2-name-node'.and.`js2
2a540 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 27 2e 0a 46 6f 72 20 61 20 73 69 6d 70 6c 65 -xml-js-expr-node'..For.a.simple
2a560 20 6e 61 6d 65 2c 20 74 68 65 20 6b 69 64 73 20 6c 69 73 74 20 68 61 73 20 65 78 61 63 74 6c 79 .name,.the.kids.list.has.exactly
2a580 20 6f 6e 65 20 6e 6f 64 65 2c 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 22 0a 20 .one.node,.a.`js2-name-node'."..
2a5a0 20 6e 61 6d 65 73 70 61 63 65 29 20 20 3b 20 61 20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 .namespace)..;.a.`js2-string-nod
2a5c0 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 6e 61 e'..(js2--struct-put.'js2-xml-na
2a5e0 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d me-node.'js2-visitor.'js2-visit-
2a600 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 xml-name-node).(js2--struct-put.
2a620 27 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 'js2-xml-name-node.'js2-printer.
2a640 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 'js2-print-xml-name-node)..(defu
2a660 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 20 76 29 0a n.js2-visit-xml-name-node.(n.v).
2a680 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e ..(js2-visit-ast.(js2-xml-name-n
2a6a0 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 ode-namespace.n).v))..(defun.js2
2a6c0 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e -print-xml-name-node.(n.i)...(in
2a6e0 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28 77 68 65 6e 20 28 sert.(js2-make-pad.i))...(when.(
2a700 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 0a 20 js2-xml-name-node-namespace.n)..
2a720 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d ...(js2-print-ast.(js2-xml-name-
2a740 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 node-namespace.n).0).....(insert
2a760 20 22 3a 3a 22 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d 6c 2d ."::"))...(dolist.(kid.(js2-xml-
2a780 6e 61 6d 65 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e name-node-kids.n)).....(js2-prin
2a7a0 74 2d 61 73 74 20 6b 69 64 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a t-ast.kid.0)))..(cl-defstruct.(j
2a7c0 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a s2-xml-pi-node................(:
2a7e0 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 include.js2-xml-node)...........
2a800 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d .....(:constructor.make-js2-xml-
2a820 70 69 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 pi-node.(&key.(type.js2-XML)....
2a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 .....................(pos.js2-ts
2a880 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -cursor)........................
2a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a8c0 20 6c 65 6e 20 6e 61 6d 65 20 61 74 74 72 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 .len.name.attrs)))..."AST.node.f
2a8e0 6f 72 20 61 6e 20 45 34 58 20 58 4d 4c 20 70 72 6f 63 65 73 73 69 6e 67 20 69 6e 73 74 72 75 63 or.an.E4X.XML.processing.instruc
2a900 74 69 6f 6e 2e 20 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 6e 61 tion...Not.currently.used."...na
2a920 6d 65 20 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 27 0a 20 20 61 me...;.a.`js2-xml-name-node'...a
2a940 74 74 72 73 29 20 3b 20 61 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d ttrs).;.a.list.of.`js2-xml-attr-
2a960 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c node'..(js2--struct-put.'js2-xml
2a980 2d 70 69 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 -pi-node.'js2-visitor.'js2-visit
2a9a0 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 -xml-pi-node).(js2--struct-put.'
2a9c0 6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 js2-xml-pi-node.'js2-printer.'js
2a9e0 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2-print-xml-pi-node)..(defun.js2
2aa00 2d 76 69 73 69 74 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d -visit-xml-pi-node.(n.v)...(js2-
2aa20 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 2d 6e 61 6d 65 20 visit-ast.(js2-xml-pi-node-name.
2aa40 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 61 74 74 72 20 28 6a 73 32 2d 78 6d 6c 2d 70 n).v)...(dolist.(attr.(js2-xml-p
2aa60 69 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d i-node-attrs.n)).....(js2-visit-
2aa80 61 73 74 20 61 74 74 72 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d ast.attr.v)))..(defun.js2-print-
2aaa0 78 6d 6c 2d 70 69 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 xml-pi-node.(n.i)...(insert.(js2
2aac0 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 3c 3f 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d -make-pad.i)."<?")...(js2-print-
2aae0 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 29 0a 20 20 ast.(js2-xml-pi-node-name.n))...
2ab00 28 77 68 65 6e 20 28 6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 0a (when.(js2-xml-pi-node-attrs.n).
2ab20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d ....(insert.".").....(js2-print-
2ab40 6c 69 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 29 29 list.(js2-xml-pi-node-attrs.n)))
2ab60 0a 20 20 28 69 6e 73 65 72 74 20 22 3f 3e 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 ...(insert."?>"))..(cl-defstruct
2ab80 20 28 6a 73 32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 .(js2-xml-cdata-node............
2aba0 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 ....(:include.js2-xml-node).....
2abc0 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 ...........(:constructor.make-js
2abe0 32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2-xml-cdata-node.(&key.(type.js2
2ac00 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -XML)...........................
2ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ac40 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(pos.js2-ts-cursor)............
2ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 ................len.content)))..
2aca0 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 43 44 41 54 41 20 65 73 63 61 70 65 20 73 65 ."AST.node.for.a.CDATA.escape.se
2acc0 63 74 69 6f 6e 2e 20 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 63 ction...Not.currently.used."...c
2ace0 6f 6e 74 65 6e 74 29 20 20 3b 20 61 20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 77 ontent)..;.a.`js2-string-node'.w
2ad00 69 74 68 20 6e 6f 64 65 2d 70 72 6f 70 65 72 74 79 20 27 71 75 6f 74 65 2d 74 79 70 65 20 27 63 ith.node-property.'quote-type.'c
2ad20 64 61 74 61 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d data..(js2--struct-put.'js2-xml-
2ad40 63 64 61 74 61 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 cdata-node.'js2-visitor.'js2-vis
2ad60 69 74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d it-xml-cdata-node).(js2--struct-
2ad80 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 put.'js2-xml-cdata-node.'js2-pri
2ada0 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 29 0a nter.'js2-print-xml-cdata-node).
2adc0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 .(defun.js2-visit-xml-cdata-node
2ade0 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c .(n.v)...(js2-visit-ast.(js2-xml
2ae00 2d 63 64 61 74 61 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 -cdata-node-content.n).v))..(def
2ae20 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 20 28 6e 20 69 un.js2-print-xml-cdata-node.(n.i
2ae40 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 )...(insert.(js2-make-pad.i))...
2ae60 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f (js2-print-ast.(js2-xml-cdata-no
2ae80 64 65 2d 63 6f 6e 74 65 6e 74 20 6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 de-content.n)))..(cl-defstruct.(
2aea0 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-xml-attr-node...............
2aec0 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 .(:include.js2-xml-node)........
2aee0 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 ........(:constructor.make-js2-a
2af00 74 74 72 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 ttr-node.(&key.(type.js2-XML)...
2af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d ....................(pos.js2-ts-
2af60 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cursor).........................
2af80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 ..............................le
2afa0 6e 20 6e 61 6d 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.name.value....................
2afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2afe0 20 20 20 65 71 2d 70 6f 73 20 71 75 6f 74 65 2d 74 79 70 65 29 29 29 0a 20 20 22 41 53 54 20 6e ...eq-pos.quote-type)))..."AST.n
2b000 6f 64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 66 6f 6f 3d 5c 5c 3d 27 62 61 72 5c 5c ode.representing.a.foo=\\='bar\\
2b020 3d 27 20 58 4d 4c 20 61 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 2e 20 20 4e 6f 74 20 79 65 74 ='.XML.attribute.value...Not.yet
2b040 20 75 73 65 64 2e 22 0a 20 20 6e 61 6d 65 20 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e 61 .used."...name...;.a.`js2-xml-na
2b060 6d 65 2d 6e 6f 64 65 27 0a 20 20 76 61 6c 75 65 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e me-node'...value..;.a.`js2-xml-n
2b080 61 6d 65 2d 6e 6f 64 65 27 0a 20 20 65 71 2d 70 6f 73 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69 ame-node'...eq-pos.;.buffer.posi
2b0a0 74 69 6f 6e 20 6f 66 20 22 3d 22 20 73 69 67 6e 0a 20 20 71 75 6f 74 65 2d 74 79 70 65 29 20 3b tion.of."=".sign...quote-type).;
2b0c0 20 27 73 69 6e 67 6c 65 20 6f 72 20 27 64 6f 75 62 6c 65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 .'single.or.'double..(js2--struc
2b0e0 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 t-put.'js2-xml-attr-node.'js2-vi
2b100 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 29 0a sitor.'js2-visit-xml-attr-node).
2b120 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e (js2--struct-put.'js2-xml-attr-n
2b140 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d ode.'js2-printer.'js2-print-xml-
2b160 61 74 74 72 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c attr-node)..(defun.js2-visit-xml
2b180 2d 61 74 74 72 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 -attr-node.(n.v)...(js2-visit-as
2b1a0 74 20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 0a t.(js2-xml-attr-node-name.n).v).
2b1c0 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e ..(js2-visit-ast.(js2-xml-attr-n
2b1e0 6f 64 65 2d 76 61 6c 75 65 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 ode-value.n).v))..(defun.js2-pri
2b200 6e 74 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 nt-xml-attr-node.(n.i)...(let.((
2b220 71 75 6f 74 65 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 quote.(if.(eq.(js2-xml-attr-node
2b240 2d 71 75 6f 74 65 2d 74 79 70 65 20 6e 29 20 27 73 69 6e 67 6c 65 29 0a 20 20 20 20 20 20 20 20 -quote-type.n).'single).........
2b260 20 20 20 20 20 20 20 20 20 20 20 22 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........."'"..................
2b280 22 5c 22 22 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 "\""))).....(insert.(js2-make-pa
2b2a0 64 20 69 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d d.i)).....(js2-print-ast.(js2-xm
2b2c0 6c 2d 61 74 74 72 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 l-attr-node-name.n).0).....(inse
2b2e0 72 74 20 22 3d 22 20 71 75 6f 74 65 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 rt."=".quote).....(js2-print-ast
2b300 20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 29 20 30 29 0a .(js2-xml-attr-node-value.n).0).
2b320 20 20 20 20 28 69 6e 73 65 72 74 20 71 75 6f 74 65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 ....(insert.quote)))..(cl-defstr
2b340 75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 uct.(js2-xml-text-node..........
2b360 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 ......(:include.js2-xml-node)...
2b380 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d .............(:constructor.make-
2b3a0 6a 73 32 2d 74 65 78 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d js2-text-node.(&key.(type.js2-XM
2b3c0 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 L)..............................
2b3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 .........................(pos.js
2b400 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-ts-cursor)....................
2b420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b440 20 20 20 6c 65 6e 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f ...len.content)))..."AST.node.fo
2b460 72 20 61 6e 20 45 34 58 20 58 4d 4c 20 74 65 78 74 20 6e 6f 64 65 2e 20 20 4e 6f 74 20 63 75 72 r.an.E4X.XML.text.node...Not.cur
2b480 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 63 6f 6e 74 65 6e 74 29 20 20 3b 20 61 20 4c 69 rently.used."...content)..;.a.Li
2b4a0 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 61 6e 64 sp.list.of.`js2-string-node'.and
2b4c0 20 60 6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 .`js2-xml-js-expr-node'..(js2--s
2b4e0 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 20 27 6a 73 truct-put.'js2-xml-text-node.'js
2b500 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 2-visitor.'js2-visit-xml-text-no
2b520 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 74 65 de).(js2--struct-put.'js2-xml-te
2b540 78 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d xt-node.'js2-printer.'js2-print-
2b560 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 xml-text-node)..(defun.js2-visit
2b580 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 -xml-text-node.(n.v)...(js2-visi
2b5a0 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 t-ast.(js2-xml-text-node-content
2b5c0 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 74 65 .n).v))..(defun.js2-print-xml-te
2b5e0 78 74 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b xt-node.(n.i)...(insert.(js2-mak
2b600 65 2d 70 61 64 20 69 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d e-pad.i))...(dolist.(kid.(js2-xm
2b620 6c 2d 74 65 78 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 l-text-node-content.n)).....(js2
2b640 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 -print-ast.kid)))..(cl-defstruct
2b660 20 28 6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 .(js2-xml-comment-node..........
2b680 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 ......(:include.js2-xml-node)...
2b6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d .............(:constructor.make-
2b6c0 6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 js2-xml-comment-node.(&key.(type
2b6e0 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-XML).......................
2b700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b720 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 .......(pos.js2-ts-cursor)......
2b740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20 ........................len)))..
2b780 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 45 34 58 20 58 4d 4c 20 63 6f 6d 6d 65 6e 74 2e 20 ."AST.node.for.E4X.XML.comment..
2b7a0 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 .Not.currently.used.")..(js2--st
2b7c0 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 27 ruct-put.'js2-xml-comment-node.'
2b7e0 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 js2-visitor.'js2-visit-none).(js
2b800 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d 6e 2--struct-put.'js2-xml-comment-n
2b820 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d ode.'js2-printer.'js2-print-xml-
2b840 63 6f 6d 6d 65 6e 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 63 comment)..(defun.js2-print-xml-c
2b860 6f 6d 6d 65 6e 74 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 omment.(n.i)...(insert.(js2-make
2b880 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 69 -pad.i)...........(js2-node-stri
2b8a0 6e 67 20 6e 29 29 29 0a 0a 3b 3b 3b 20 4e 6f 64 65 20 75 74 69 6c 69 74 69 65 73 0a 0a 28 64 65 ng.n)))..;;;.Node.utilities..(de
2b8c0 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d 6c 69 6e 65 20 28 6e 29 0a 20 20 22 46 65 74 63 fsubst.js2-node-line.(n)..."Fetc
2b8e0 68 20 74 68 65 20 73 6f 75 72 63 65 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 61 74 20 74 68 65 20 h.the.source.line.number.at.the.
2b900 73 74 61 72 74 20 6f 66 20 6e 6f 64 65 20 4e 2e 0a 54 68 69 73 20 69 73 20 4f 28 6e 29 20 69 6e start.of.node.N..This.is.O(n).in
2b920 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 .the.length.of.the.source.buffer
2b940 3b 20 75 73 65 20 70 72 75 64 65 6e 74 6c 79 2e 22 0a 20 20 28 31 2b 20 28 63 6f 75 6e 74 2d 6c ;.use.prudently."...(1+.(count-l
2b960 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 ines.(point-min).(js2-node-abs-p
2b980 6f 73 20 6e 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f os.n))))..(defsubst.js2-block-no
2b9a0 64 65 2d 6b 69 64 20 28 6e 20 69 29 0a 20 20 22 52 65 74 75 72 6e 20 63 68 69 6c 64 20 49 20 6f de-kid.(n.i)..."Return.child.I.o
2b9c0 66 20 6e 6f 64 65 20 4e 2c 20 6f 72 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 61 72 65 6e 27 74 f.node.N,.or.nil.if.there.aren't
2b9e0 20 74 68 61 74 20 6d 61 6e 79 2e 22 0a 20 20 28 6e 74 68 20 69 20 28 6a 73 32 2d 62 6c 6f 63 6b .that.many."...(nth.i.(js2-block
2ba00 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 62 -node-kids.n)))..(defsubst.js2-b
2ba20 6c 6f 63 6b 2d 6e 6f 64 65 2d 66 69 72 73 74 20 28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 66 69 lock-node-first.(n)..."Return.fi
2ba40 72 73 74 20 63 68 69 6c 64 20 6f 66 20 62 6c 6f 63 6b 20 6e 6f 64 65 20 4e 2c 20 6f 72 20 6e 69 rst.child.of.block.node.N,.or.ni
2ba60 6c 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 6e 65 2e 22 0a 20 20 28 63 6c 2d 66 69 72 73 74 l.if.there.is.none."...(cl-first
2ba80 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 29 0a 0a 28 64 65 66 .(js2-block-node-kids.n)))..(def
2baa0 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 72 6f 6f 74 20 28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74 un.js2-node-root.(n)..."Return.t
2bac0 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 41 53 54 20 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 2e he.root.of.the.AST.containing.N.
2bae0 0a 49 66 20 4e 20 68 61 73 20 6e 6f 20 70 61 72 65 6e 74 20 70 6f 69 6e 74 65 72 2c 20 72 65 74 .If.N.has.no.parent.pointer,.ret
2bb00 75 72 6e 73 20 4e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f urns.N."...(let.((parent.(js2-no
2bb20 64 65 2d 70 61 72 65 6e 74 20 6e 29 29 29 0a 20 20 20 20 28 69 66 20 70 61 72 65 6e 74 0a 20 20 de-parent.n))).....(if.parent...
2bb40 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 72 6f 6f 74 20 70 61 72 65 6e 74 29 0a 20 20 20 ......(js2-node-root.parent)....
2bb60 20 20 20 6e 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72 ...n)))..(defsubst.js2-node-shor
2bb80 74 2d 6e 61 6d 65 20 28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6e t-name.(n)..."Return.the.short.n
2bba0 61 6d 65 20 6f 66 20 6e 6f 64 65 20 4e 20 61 73 20 61 20 73 74 72 69 6e 67 2c 20 65 2e 67 2e 20 ame.of.node.N.as.a.string,.e.g..
2bbc0 60 6a 73 32 2d 69 66 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 73 `js2-if-node'."...(let.((name.(s
2bbe0 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 61 72 65 66 20 6e 20 30 29 29 29 29 0a 20 20 20 20 28 69 66 ymbol-name.(aref.n.0)))).....(if
2bc00 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 63 6c 2d 73 74 72 75 63 74 2d 22 20 6e .(string-prefix-p."cl-struct-".n
2bc20 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d ame).........(substring.(symbol-
2bc40 6e 61 6d 65 20 28 61 72 65 66 20 6e 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.(aref.n.0))................
2bc60 20 20 20 20 28 6c 65 6e 67 74 68 20 22 63 6c 2d 73 74 72 75 63 74 2d 22 29 29 0a 20 20 20 20 20 ....(length."cl-struct-"))......
2bc80 20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d .name)))..(defun.js2-node-child-
2bca0 6c 69 73 74 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 69 6c 64 20 list.(node)..."Return.the.child.
2bcc0 6c 69 73 74 20 66 6f 72 20 4e 4f 44 45 2c 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 6e 6f list.for.NODE,.a.Lisp.list.of.no
2bce0 64 65 73 2e 0a 57 6f 72 6b 73 20 66 6f 72 20 62 6c 6f 63 6b 20 6e 6f 64 65 73 2c 20 61 72 72 61 des..Works.for.block.nodes,.arra
2bd00 79 20 6e 6f 64 65 73 2c 20 6f 62 6a 20 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 61 72 67 20 6c 69 y.nodes,.obj.literals,.funarg.li
2bd20 73 74 73 2c 0a 76 61 72 20 64 65 63 6c 73 20 61 6e 64 20 74 72 79 20 6e 6f 64 65 73 20 28 66 6f sts,.var.decls.and.try.nodes.(fo
2bd40 72 20 63 61 74 63 68 20 63 6c 61 75 73 65 73 29 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 r.catch.clauses)...Note.that.you
2bd60 20 73 68 6f 75 6c 64 20 63 61 6c 6c 0a 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 .should.call.`js2-block-node-kid
2bd80 73 27 20 6f 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 20 66 6f 72 20 74 68 65 20 s'.on.the.function.body.for.the.
2bda0 62 6f 64 79 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 66 6f 72 body.statements..Returns.nil.for
2bdc0 20 7a 65 72 6f 2d 6c 65 6e 67 74 68 20 63 68 69 6c 64 20 6c 69 73 74 73 20 6f 72 20 75 6e 73 75 .zero-length.child.lists.or.unsu
2bde0 70 70 6f 72 74 65 64 20 6e 6f 64 65 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 pported.nodes."...(cond....((js2
2be00 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d -function-node-p.node).....(js2-
2be20 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 function-node-params.node))....(
2be40 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 (js2-block-node-p.node).....(js2
2be60 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 -block-node-kids.node))....((js2
2be80 2d 74 72 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 74 72 79 2d 6e -try-node-p.node).....(js2-try-n
2bea0 6f 64 65 2d 63 61 74 63 68 2d 63 6c 61 75 73 65 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 ode-catch-clauses.node))....((js
2bec0 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 61 72 2-array-node-p.node).....(js2-ar
2bee0 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6f ray-node-elems.node))....((js2-o
2bf00 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 bject-node-p.node).....(js2-obje
2bf20 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 61 ct-node-elems.node))....((js2-ca
2bf40 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f ll-node-p.node).....(js2-call-no
2bf60 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 de-args.node))....((js2-new-node
2bf80 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 -p.node).....(js2-new-node-args.
2bfa0 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 70 20 node))....((js2-var-decl-node-p.
2bfc0 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 6b 69 64 node).....(js2-var-decl-node-kid
2bfe0 73 20 6e 6f 64 65 29 29 0a 20 20 20 28 74 0a 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 s.node))....(t.....nil)))..(defu
2c000 6e 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 63 68 69 6c 64 2d 6c 69 73 74 20 28 6e 6f 64 65 20 n.js2-node-set-child-list.(node.
2c020 6b 69 64 73 29 0a 20 20 22 53 65 74 20 74 68 65 20 63 68 69 6c 64 20 6c 69 73 74 20 66 6f 72 20 kids)..."Set.the.child.list.for.
2c040 4e 4f 44 45 20 74 6f 20 4b 49 44 53 2e 22 0a 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 28 28 6a 73 NODE.to.KIDS."....(cond.....((js
2c060 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 2-function-node-p.node)......(se
2c080 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 6f 64 tf.(js2-function-node-params.nod
2c0a0 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 e).kids)).....((js2-block-node-p
2c0c0 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 .node)......(setf.(js2-block-nod
2c0e0 65 2d 6b 69 64 73 20 6e 6f 64 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 74 72 e-kids.node).kids)).....((js2-tr
2c100 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 y-node-p.node)......(setf.(js2-t
2c120 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c 61 75 73 65 73 20 6e 6f 64 65 29 20 6b 69 64 73 ry-node-catch-clauses.node).kids
2c140 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a )).....((js2-array-node-p.node).
2c160 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 .....(setf.(js2-array-node-elems
2c180 20 6e 6f 64 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e .node).kids)).....((js2-object-n
2c1a0 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6f 62 6a 65 ode-p.node)......(setf.(js2-obje
2c1c0 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 ct-node-elems.node).kids)).....(
2c1e0 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74 (js2-call-node-p.node)......(set
2c200 66 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 20 6b 69 64 73 f.(js2-call-node-args.node).kids
2c220 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 )).....((js2-new-node-p.node)...
2c240 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 ...(setf.(js2-new-node-args.node
2c260 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 ).kids)).....((js2-var-decl-node
2c280 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 -p.node)......(setf.(js2-var-dec
2c2a0 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 74 0a l-node-kids.node).kids)).....(t.
2c2c0 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 20 74 79 .....(error."Unsupported.node.ty
2c2e0 70 65 3a 20 25 73 22 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 pe:.%s".(js2-node-short-name.nod
2c300 65 29 29 29 29 0a 20 20 20 6b 69 64 73 29 0a 0a 3b 3b 20 41 6c 6c 20 62 65 63 61 75 73 65 20 43 e))))....kids)..;;.All.because.C
2c320 6f 6d 6d 6f 6e 20 4c 69 73 70 20 64 6f 65 73 6e 27 74 20 73 75 70 70 6f 72 74 20 6d 75 6c 74 69 ommon.Lisp.doesn't.support.multi
2c340 70 6c 65 20 69 6e 68 65 72 69 74 61 6e 63 65 20 66 6f 72 20 64 65 66 73 74 72 75 63 74 73 2e 0a ple.inheritance.for.defstructs..
2c360 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64 65 73 0a 20 (defconst.js2-paren-expr-nodes..
2c380 20 27 28 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 0a .'(cl-struct-js2-comp-loop-node.
2c3a0 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 0a 20 20 20 20 ....cl-struct-js2-comp-node.....
2c3c0 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 cl-struct-js2-call-node.....cl-s
2c3e0 74 72 75 63 74 2d 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 truct-js2-catch-node.....cl-stru
2c400 63 74 2d 6a 73 32 2d 64 6f 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 ct-js2-do-node.....cl-struct-js2
2c420 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 -elem-get-node.....cl-struct-js2
2c440 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 66 -for-in-node.....cl-struct-js2-f
2c460 6f 72 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 66 75 6e 63 74 69 or-node.....cl-struct-js2-functi
2c480 6f 6e 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 69 66 2d 6e 6f 64 on-node.....cl-struct-js2-if-nod
2c4a0 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 0a 20 20 20 e.....cl-struct-js2-let-node....
2c4c0 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 .cl-struct-js2-new-node.....cl-s
2c4e0 74 72 75 63 74 2d 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 truct-js2-paren-node.....cl-stru
2c500 63 74 2d 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 ct-js2-switch-node.....cl-struct
2c520 2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 -js2-while-node.....cl-struct-js
2c540 32 2d 77 69 74 68 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 78 6d 2-with-node.....cl-struct-js2-xm
2c560 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 29 0a 20 20 22 4e 6f 64 65 20 74 79 70 65 73 20 l-dot-query-node)..."Node.types.
2c580 74 68 61 74 20 63 61 6e 20 68 61 76 65 20 61 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 63 68 that.can.have.a.parenthesized.ch
2c5a0 69 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 49 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 6e ild.expression..In.particular,.n
2c5c0 6f 64 65 73 20 74 68 61 74 20 72 65 73 70 6f 6e 64 20 74 6f 20 60 6a 73 32 2d 6e 6f 64 65 2d 6c odes.that.respond.to.`js2-node-l
2c5e0 70 27 20 61 6e 64 20 60 6a 73 32 2d 6e 6f 64 65 2d 72 70 27 2e 22 29 0a 0a 28 64 65 66 73 75 62 p'.and.`js2-node-rp'.")..(defsub
2c600 73 74 20 6a 73 32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a st.js2-paren-expr-node-p.(node).
2c620 20 20 22 52 65 74 75 72 6e 20 74 20 66 6f 72 20 6e 6f 64 65 73 20 74 68 61 74 20 74 79 70 69 63 .."Return.t.for.nodes.that.typic
2c640 61 6c 6c 79 20 68 61 76 65 20 61 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 63 68 69 6c 64 20 ally.have.a.parenthesized.child.
2c660 65 78 70 72 65 73 73 69 6f 6e 2e 0a 55 73 65 66 75 6c 20 66 6f 72 20 63 6f 6d 70 75 74 69 6e 67 expression..Useful.for.computing
2c680 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 61 6e 63 68 6f 72 73 20 66 6f 72 20 61 72 67 .the.indentation.anchors.for.arg
2c6a0 2d 6c 69 73 74 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 4e 6f 74 65 20 74 68 61 74 -lists.and.conditions..Note.that
2c6c0 20 69 74 20 6d 61 79 20 72 65 74 75 72 6e 20 61 20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 2c .it.may.return.a.false.positive,
2c6e0 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 77 68 65 6e 20 4e 4f 44 45 20 69 73 0a 61 20 60 6a 73 .for.instance.when.NODE.is.a.`js
2c700 32 2d 6e 65 77 2d 6e 6f 64 65 27 20 61 6e 64 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 61 72 67 2-new-node'.and.there.are.no.arg
2c720 75 6d 65 6e 74 73 20 6f 72 20 70 61 72 65 6e 74 68 65 73 65 73 2e 22 0a 20 20 28 6d 65 6d 71 20 uments.or.parentheses."...(memq.
2c740 28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 6a 73 32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64 (aref.node.0).js2-paren-expr-nod
2c760 65 73 29 29 0a 0a 3b 3b 20 46 61 6b 65 20 70 6f 6c 79 6d 6f 72 70 68 69 73 6d 2e 2e 2e 20 79 65 es))..;;.Fake.polymorphism....ye
2c780 63 68 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 6c 70 20 28 6e 6f 64 65 29 0a 20 20 ch..(defun.js2-node-lp.(node)...
2c7a0 22 52 65 74 75 72 6e 20 72 65 6c 61 74 69 76 65 20 6c 65 66 74 2d 70 61 72 65 6e 20 70 6f 73 69 "Return.relative.left-paren.posi
2c7c0 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 2c 20 69 66 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 46 6f tion.for.NODE,.if.applicable..Fo
2c7e0 72 20 60 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 27 20 73 74 72 75 63 74 73 2c 20 72 r.`js2-elem-get-node'.structs,.r
2c800 65 74 75 72 6e 73 20 6c 65 66 74 2d 62 72 61 63 6b 65 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 4e 6f eturns.left-bracket.position..No
2c820 74 65 20 74 68 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6d 61 79 20 62 65 20 6e 69 6c 20 te.that.the.position.may.be.nil.
2c840 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 2e 22 0a 20 in.the.case.of.a.parse.error."..
2c860 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 .(cond....((js2-elem-get-node-p.
2c880 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 6c 62 20 node).....(js2-elem-get-node-lb.
2c8a0 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 node))....((js2-loop-node-p.node
2c8c0 29 0a 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 ).....(js2-loop-node-lp.node))..
2c8e0 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 ..((js2-function-node-p.node)...
2c900 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 ..(js2-function-node-lp.node))..
2c920 20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 ..((js2-if-node-p.node).....(js2
2c940 2d 69 66 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d -if-node-lp.node))....((js2-new-
2c960 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 6c node-p.node).....(js2-new-node-l
2c980 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f p.node))....((js2-call-node-p.no
2c9a0 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 de).....(js2-call-node-lp.node))
2c9c0 0a 20 20 20 28 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 ....((js2-paren-node-p.node)....
2c9e0 20 30 29 0a 20 20 20 28 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 .0)....((js2-switch-node-p.node)
2ca00 0a 20 20 20 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a .....(js2-switch-node-lp.node)).
2ca20 20 20 20 28 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 ...((js2-catch-node-p.node).....
2ca40 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a (js2-catch-node-lp.node))....((j
2ca60 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6c 65 74 s2-let-node-p.node).....(js2-let
2ca80 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f -node-lp.node))....((js2-comp-no
2caa0 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 30 29 0a 20 20 20 28 28 6a 73 32 2d 77 69 74 68 2d de-p.node).....0)....((js2-with-
2cac0 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d node-p.node).....(js2-with-node-
2cae0 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 lp.node))....((js2-xml-dot-query
2cb00 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 31 2b 20 28 6a 73 32 2d 69 6e 66 69 78 -node-p.node).....(1+.(js2-infix
2cb20 2d 6e 6f 64 65 2d 6f 70 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 -node-op-pos.node)))....(t.....(
2cb40 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 73 error."Unsupported.node.type:.%s
2cb60 22 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 29 ".(js2-node-short-name.node)))))
2cb80 0a 0a 3b 3b 20 46 61 6b 65 20 70 6f 6c 79 6d 6f 72 70 68 69 73 6d 2e 2e 2e 20 62 6c 65 63 68 2e ..;;.Fake.polymorphism....blech.
2cba0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 72 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 .(defun.js2-node-rp.(node)..."Re
2cbc0 74 75 72 6e 20 72 65 6c 61 74 69 76 65 20 72 69 67 68 74 2d 70 61 72 65 6e 20 70 6f 73 69 74 69 turn.relative.right-paren.positi
2cbe0 6f 6e 20 66 6f 72 20 4e 4f 44 45 2c 20 69 66 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 46 6f 72 20 on.for.NODE,.if.applicable..For.
2cc00 60 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 27 20 73 74 72 75 63 74 73 2c 20 72 65 74 `js2-elem-get-node'.structs,.ret
2cc20 75 72 6e 73 20 72 69 67 68 74 2d 62 72 61 63 6b 65 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 4e 6f 74 urns.right-bracket.position..Not
2cc40 65 20 74 68 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6d 61 79 20 62 65 20 6e 69 6c 20 69 e.that.the.position.may.be.nil.i
2cc60 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 2e 22 0a 20 20 n.the.case.of.a.parse.error."...
2cc80 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e (cond....((js2-elem-get-node-p.n
2cca0 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 72 62 20 6e ode).....(js2-elem-get-node-rb.n
2ccc0 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 ode))....((js2-loop-node-p.node)
2cce0 0a 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 .....(js2-loop-node-rp.node))...
2cd00 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 .((js2-function-node-p.node)....
2cd20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 .(js2-function-node-rp.node))...
2cd40 20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d .((js2-if-node-p.node).....(js2-
2cd60 69 66 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d 6e if-node-rp.node))....((js2-new-n
2cd80 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 72 70 ode-p.node).....(js2-new-node-rp
2cda0 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 .node))....((js2-call-node-p.nod
2cdc0 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a e).....(js2-call-node-rp.node)).
2cde0 20 20 20 28 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 ...((js2-paren-node-p.node).....
2ce00 28 31 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 28 28 6a (1-.(js2-node-len.node)))....((j
2ce20 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d s2-switch-node-p.node).....(js2-
2ce40 73 77 69 74 63 68 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 switch-node-rp.node))....((js2-c
2ce60 61 74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 atch-node-p.node).....(js2-catch
2ce80 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 -node-rp.node))....((js2-let-nod
2cea0 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 72 70 20 6e e-p.node).....(js2-let-node-rp.n
2cec0 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 ode))....((js2-comp-node-p.node)
2cee0 0a 20 20 20 20 28 31 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20 .....(1-.(js2-node-len.node)))..
2cf00 20 20 28 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a ..((js2-with-node-p.node).....(j
2cf20 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d s2-with-node-rp.node))....((js2-
2cf40 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 xml-dot-query-node-p.node).....(
2cf60 31 2b 20 28 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 72 70 20 6e 6f 1+.(js2-xml-dot-query-node-rp.no
2cf80 64 65 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 de)))....(t.....(error."Unsuppor
2cfa0 74 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 73 22 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f ted.node.type:.%s".(js2-node-sho
2cfc0 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 rt-name.node)))))..(defsubst.js2
2cfe0 2d 6e 6f 64 65 2d 66 69 72 73 74 2d 63 68 69 6c 64 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 -node-first-child.(node)..."Retu
2d000 72 6e 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 60 6a 73 32 2d 6e 6f 64 rn.the.first.element.of.`js2-nod
2d020 65 2d 63 68 69 6c 64 2d 6c 69 73 74 27 20 66 6f 72 20 4e 4f 44 45 2e 22 0a 20 20 28 63 61 72 20 e-child-list'.for.NODE."...(car.
2d040 28 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 6e 6f 64 65 29 29 29 0a 0a 28 64 (js2-node-child-list.node)))..(d
2d060 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d 6c 61 73 74 2d 63 68 69 6c 64 20 28 6e 6f 64 efsubst.js2-node-last-child.(nod
2d080 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 e)..."Return.the.last.element.of
2d0a0 20 60 6a 73 32 2d 6e 6f 64 65 2d 6c 61 73 74 2d 63 68 69 6c 64 27 20 66 6f 72 20 4e 4f 44 45 2e .`js2-node-last-child'.for.NODE.
2d0c0 22 0a 20 20 28 63 61 72 20 28 6c 61 73 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c "...(car.(last.(js2-node-child-l
2d0e0 69 73 74 20 6e 6f 64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 70 72 ist.node))))..(defun.js2-node-pr
2d100 65 76 2d 73 69 62 6c 69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 ev-sibling.(node)..."Return.the.
2d120 70 72 65 76 69 6f 75 73 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 70 61 72 65 6e 74 2e 0a 57 6f previous.statement.in.parent..Wo
2d140 72 6b 73 20 66 6f 72 20 70 61 72 65 6e 74 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 60 6a 73 rks.for.parents.supported.by.`js
2d160 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 2-node-child-list'..Returns.nil.
2d180 69 66 20 4e 4f 44 45 20 69 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 70 61 72 65 6e 74 2c 20 6f 72 if.NODE.is.not.in.the.parent,.or
2d1a0 20 50 41 52 45 4e 54 20 69 73 0a 6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 2c .PARENT.is.not.a.supported.node,
2d1c0 20 6f 72 20 69 66 20 4e 4f 44 45 20 69 73 20 74 68 65 20 66 69 72 73 74 20 63 68 69 6c 64 2e 22 .or.if.NODE.is.the.first.child."
2d1e0 0a 20 20 28 6c 65 74 2a 20 28 28 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f ...(let*.((p.(js2-node-parent.no
2d200 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6b 69 64 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 68 de))..........(kids.(js2-node-ch
2d220 69 6c 64 2d 6c 69 73 74 20 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 62 20 28 63 61 72 20 ild-list.p))..........(sib.(car.
2d240 6b 69 64 73 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6b 69 64 73 0a 20 20 20 kids))).....(while.(and.kids....
2d260 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 6e 6f 64 65 20 28 63 61 64 72 .............(not.(eq.node.(cadr
2d280 20 6b 69 64 73 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 .kids)))).......(setq.kids.(cdr.
2d2a0 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 69 62 20 28 63 61 72 20 6b 69 64 73 29 kids).............sib.(car.kids)
2d2c0 29 29 0a 20 20 20 20 73 69 62 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 6e 65 )).....sib))..(defun.js2-node-ne
2d2e0 78 74 2d 73 69 62 6c 69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 xt-sibling.(node)..."Return.the.
2d300 6e 65 78 74 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 70 61 72 65 6e 74 20 62 6c 6f 63 6b 2e 0a next.statement.in.parent.block..
2d320 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 6e 6f 74 20 69 6e 20 74 68 Returns.nil.if.NODE.is.not.in.th
2d340 65 20 62 6c 6f 63 6b 2c 20 6f 72 20 50 41 52 45 4e 54 20 69 73 20 6e 6f 74 0a 61 20 62 6c 6f 63 e.block,.or.PARENT.is.not.a.bloc
2d360 6b 20 6e 6f 64 65 2c 20 6f 72 20 69 66 20 4e 4f 44 45 20 69 73 20 74 68 65 20 6c 61 73 74 20 73 k.node,.or.if.NODE.is.the.last.s
2d380 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 20 28 6a 73 32 2d 6e 6f 64 65 tatement."...(let*.((p.(js2-node
2d3a0 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6b 69 64 73 20 28 6a -parent.node))..........(kids.(j
2d3c0 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 29 29 29 0a 20 20 20 20 28 77 68 69 s2-node-child-list.p))).....(whi
2d3e0 6c 65 20 28 61 6e 64 20 6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f le.(and.kids.................(no
2d400 74 20 28 65 71 20 6e 6f 64 65 20 28 63 61 72 20 6b 69 64 73 29 29 29 29 0a 20 20 20 20 20 20 28 t.(eq.node.(car.kids)))).......(
2d420 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 6b 69 64 73 29 29 29 0a 20 20 20 20 28 63 61 64 72 setq.kids.(cdr.kids))).....(cadr
2d440 20 6b 69 64 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 .kids)))..(defun.js2-node-find-c
2d460 68 69 6c 64 2d 62 65 66 6f 72 65 20 28 70 6f 73 20 70 61 72 65 6e 74 20 26 6f 70 74 69 6f 6e 61 hild-before.(pos.parent.&optiona
2d480 6c 20 61 66 74 65 72 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 6c 61 73 74 20 63 68 69 6c 64 20 l.after)..."Find.the.last.child.
2d4a0 74 68 61 74 20 73 74 61 72 74 73 20 62 65 66 6f 72 65 20 50 4f 53 20 69 6e 20 70 61 72 65 6e 74 that.starts.before.POS.in.parent
2d4c0 2e 0a 49 66 20 41 46 54 45 52 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 74 75 72 6e 73 20 66 ..If.AFTER.is.non-nil,.returns.f
2d4e0 69 72 73 74 20 63 68 69 6c 64 20 73 74 61 72 74 69 6e 67 20 61 66 74 65 72 20 50 4f 53 2e 0a 50 irst.child.starting.after.POS..P
2d500 4f 53 20 69 73 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f OS.is.an.absolute.buffer.positio
2d520 6e 2e 20 20 50 41 52 45 4e 54 20 69 73 20 61 6e 79 20 6e 6f 64 65 0a 73 75 70 70 6f 72 74 65 64 n...PARENT.is.any.node.supported
2d540 20 62 79 20 60 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 27 2e 0a 52 65 74 75 72 .by.`js2-node-child-list'..Retur
2d560 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 20 61 70 70 6c 69 63 61 62 6c 65 20 63 68 69 6c 64 20 69 73 ns.nil.if.no.applicable.child.is
2d580 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 64 73 20 28 69 66 20 28 6a 73 32 2d .found."...(let.((kids.(if.(js2-
2d5a0 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 function-node-p.parent).........
2d5c0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 28 ..........(js2-block-node-kids.(
2d5e0 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 70 61 72 65 6e 74 29 29 0a js2-function-node-body.parent)).
2d600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d ................(js2-node-child-
2d620 6c 69 73 74 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 32 list.parent))).........(beg.(js2
2d640 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 28 69 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d -node-abs-pos.(if.(js2-function-
2d660 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node-p.parent)..................
2d680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d ..................(js2-function-
2d6a0 6e 6f 64 65 2d 62 6f 64 79 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node-body.parent)...............
2d6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 ...................parent)))....
2d6e0 20 20 20 20 20 6b 69 64 20 72 65 73 75 6c 74 20 66 6e 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 .....kid.result.fn.........(cont
2d700 69 6e 75 65 20 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 66 6e 20 28 69 66 20 61 66 74 65 72 20 inue.t)).....(setq.fn.(if.after.
2d720 27 3e 3d 20 27 3c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6b 69 64 73 20 63 6f '>=.'<)).....(while.(and.kids.co
2d740 6e 74 69 6e 75 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6b 69 64 20 28 63 61 72 20 6b 69 64 ntinue).......(setq.kid.(car.kid
2d760 73 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 28 2b 20 62 65 67 s)).......(if.(funcall.fn.(+.beg
2d780 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6b 69 64 29 29 20 70 6f 73 29 0a 20 20 20 20 20 20 .(js2-node-pos.kid)).pos).......
2d7a0 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 6b 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 ....(setq.result.kid............
2d7c0 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 20 28 6e 6f 74 20 61 66 74 65 72 29 29 0a 20 20 20 20 20 .....continue.(not.after))......
2d7e0 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 61 66 74 65 72 29 29 0a 20 20 20 20 20 20 ...(setq.continue.after)).......
2d800 28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 6b 69 64 73 29 29 29 0a 20 20 20 20 72 65 73 75 (setq.kids.(cdr.kids))).....resu
2d820 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 lt))..(defun.js2-node-find-child
2d840 2d 61 66 74 65 72 20 28 70 6f 73 20 70 61 72 65 6e 74 29 0a 20 20 22 46 69 6e 64 20 66 69 72 73 -after.(pos.parent)..."Find.firs
2d860 74 20 63 68 69 6c 64 20 74 68 61 74 20 73 74 61 72 74 73 20 61 66 74 65 72 20 50 4f 53 20 69 6e t.child.that.starts.after.POS.in
2d880 20 70 61 72 65 6e 74 2e 0a 50 4f 53 20 69 73 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 62 75 66 66 .parent..POS.is.an.absolute.buff
2d8a0 65 72 20 70 6f 73 69 74 69 6f 6e 2e 20 20 50 41 52 45 4e 54 20 69 73 20 61 6e 79 20 6e 6f 64 65 er.position...PARENT.is.any.node
2d8c0 0a 73 75 70 70 6f 72 74 65 64 20 62 79 20 60 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 .supported.by.`js2-node-child-li
2d8e0 73 74 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 20 61 70 70 6c 69 63 61 62 6c st'..Returns.nil.if.no.applicabl
2d900 65 20 63 68 69 6c 64 20 69 73 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 e.child.is.found."...(js2-node-f
2d920 69 6e 64 2d 63 68 69 6c 64 2d 62 65 66 6f 72 65 20 70 6f 73 20 70 61 72 65 6e 74 20 27 61 66 74 ind-child-before.pos.parent.'aft
2d940 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 72 65 70 6c 61 63 65 2d 63 68 er))..(defun.js2-node-replace-ch
2d960 69 6c 64 20 28 70 6f 73 20 70 61 72 65 6e 74 20 6e 65 77 2d 6e 6f 64 65 29 0a 20 20 22 52 65 70 ild.(pos.parent.new-node)..."Rep
2d980 6c 61 63 65 20 6e 6f 64 65 20 61 74 20 69 6e 64 65 78 20 50 4f 53 20 69 6e 20 50 41 52 45 4e 54 lace.node.at.index.POS.in.PARENT
2d9a0 20 77 69 74 68 20 4e 45 57 2d 4e 4f 44 45 2e 0a 4f 6e 6c 79 20 77 6f 72 6b 73 20 66 6f 72 20 70 .with.NEW-NODE..Only.works.for.p
2d9c0 61 72 65 6e 74 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 60 6a 73 32 2d 6e 6f 64 65 2d 63 68 arents.supported.by.`js2-node-ch
2d9e0 69 6c 64 2d 6c 69 73 74 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 64 73 20 28 6a 73 32 2d 6e ild-list'."...(let.((kids.(js2-n
2da00 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 ode-child-list.parent)).........
2da20 28 69 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 69 20 70 6f 73 29 0a 20 20 20 20 (i.0)).....(while.(<.i.pos).....
2da40 20 20 28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 ..(setq.kids.(cdr.kids).........
2da60 20 20 20 20 69 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 28 73 65 74 63 61 72 20 6b 69 64 73 20 ....i.(1+.i))).....(setcar.kids.
2da80 6e 65 77 2d 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c new-node).....(js2-node-add-chil
2daa0 64 72 65 6e 20 70 61 72 65 6e 74 20 6e 65 77 2d 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 dren.parent.new-node)))..(defun.
2dac0 6a 73 32 2d 6e 6f 64 65 2d 62 75 66 66 65 72 20 28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 js2-node-buffer.(n)..."Return.th
2dae0 65 20 62 75 66 66 65 72 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 41 53 54 20 4e 2e 0a e.buffer.associated.with.AST.N..
2db00 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 6f 74 Returns.nil.if.the.buffer.is.not
2db20 20 73 65 74 20 61 73 20 61 20 70 72 6f 70 65 72 74 79 20 6f 6e 20 74 68 65 20 72 6f 6f 74 0a 6e .set.as.a.property.on.the.root.n
2db40 6f 64 65 2c 20 6f 72 20 69 66 20 70 61 72 65 6e 74 20 6c 69 6e 6b 73 20 77 65 72 65 20 6e 6f 74 ode,.or.if.parent.links.were.not
2db60 20 72 65 63 6f 72 64 65 64 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 2e 22 0a 20 20 28 6c 65 .recorded.during.parsing."...(le
2db80 74 20 28 28 72 6f 6f 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 72 6f 6f 74 20 6e 29 29 29 0a 20 20 20 t.((root.(js2-node-root.n)))....
2dba0 20 28 61 6e 64 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f .(and.root..........(js2-ast-roo
2dbc0 74 2d 70 20 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 t-p.root)..........(js2-ast-root
2dbe0 2d 62 75 66 66 65 72 20 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 6c 6f -buffer.root))))..(defun.js2-blo
2dc00 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 20 28 6e 20 6b 69 64 29 0a 20 20 22 50 75 73 68 20 6a 73 32 ck-node-push.(n.kid)..."Push.js2
2dc20 2d 6e 6f 64 65 20 4b 49 44 20 6f 6e 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 6a 73 32 2d 62 6c -node.KID.onto.the.end.of.js2-bl
2dc40 6f 63 6b 2d 6e 6f 64 65 20 4e 27 73 20 63 68 69 6c 64 20 6c 69 73 74 2e 0a 4b 49 44 20 69 73 20 ock-node.N's.child.list..KID.is.
2dc60 61 6c 77 61 79 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 2d 65 6e 64 2d 20 6f 66 20 74 68 65 always.added.to.the.-end-.of.the
2dc80 20 6b 69 64 73 20 6c 69 73 74 2e 0a 46 75 6e 63 74 69 6f 6e 20 61 6c 73 6f 20 63 61 6c 6c 73 20 .kids.list..Function.also.calls.
2dca0 60 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 27 20 74 6f 20 61 64 64 20 74 `js2-node-add-children'.to.add.t
2dcc0 68 65 20 70 61 72 65 6e 74 20 6c 69 6e 6b 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 64 73 20 28 he.parent.link."...(let.((kids.(
2dce0 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 6e 29 29 29 0a 20 20 20 20 28 69 66 js2-node-child-list.n))).....(if
2dd00 20 6b 69 64 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 6b 69 64 73 20 28 6e 63 6f 6e .kids.........(setcdr.kids.(ncon
2dd20 63 20 28 63 64 72 20 6b 69 64 73 29 20 28 6c 69 73 74 20 6b 69 64 29 29 29 0a 20 20 20 20 20 20 c.(cdr.kids).(list.kid))).......
2dd40 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 63 68 69 6c 64 2d 6c 69 73 74 20 6e 20 28 6c 69 73 74 (js2-node-set-child-list.n.(list
2dd60 20 6b 69 64 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 .kid))).....(js2-node-add-childr
2dd80 65 6e 20 6e 20 6b 69 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 en.n.kid)))..(defun.js2-node-str
2dda0 69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 ing.(node)...(with-current-buffe
2ddc0 72 20 28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 62 75 66 66 65 72 20 6e 6f 64 65 29 0a 20 20 20 r.(or.(js2-node-buffer.node)....
2dde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 ........................(error."
2de00 4e 6f 20 62 75 66 66 65 72 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 6e 6f 64 65 20 25 73 22 No.buffer.available.for.node.%s"
2de20 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 .node)).....(let.((pos.(js2-node
2de40 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 -abs-pos.node))).......(buffer-s
2de60 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 70 6f 73 20 28 2b 20 70 6f ubstring-no-properties.pos.(+.po
2de80 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 29 29 29 0a 0a 3b 3b 20 43 s.(js2-node-len.node))))))..;;.C
2dea0 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 74 68 65 20 6e 6f 64 65 20 77 65 ontainer.for.storing.the.node.we
2dec0 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 69 6e 20 61 20 74 72 61 76 65 72 73 61 6c 2e 0a 're.looking.for.in.a.traversal..
2dee0 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 64 69 73 63 6f 76 65 72 65 64 2d 6e 6f 64 (js2-deflocal.js2-discovered-nod
2df00 65 20 6e 69 6c 29 0a 0a 3b 3b 20 4b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 61 62 73 6f 6c 75 74 e.nil)..;;.Keep.track.of.absolut
2df20 65 20 6e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 20 64 75 72 69 6e 67 20 74 72 61 76 65 72 73 61 6c e.node.position.during.traversal
2df40 73 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 s..(js2-deflocal.js2-visitor-off
2df60 73 65 74 20 6e 69 6c 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6e 6f 64 65 set.nil)..(js2-deflocal.js2-node
2df80 2d 73 65 61 72 63 68 2d 70 6f 69 6e 74 20 6e 69 6c 29 0a 0a 28 77 68 65 6e 20 6a 73 32 2d 6d 6f -search-point.nil)..(when.js2-mo
2dfa0 64 65 2d 64 65 76 2d 6d 6f 64 65 2d 70 0a 20 20 28 64 65 66 75 6e 20 6a 73 32 2d 66 69 6e 64 2d de-dev-mode-p...(defun.js2-find-
2dfc0 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 node-at-point.().....(interactiv
2dfe0 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d e).....(let.((node.(js2-node-at-
2e000 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 28 6f 72 point))).......(message."%s".(or
2e020 20 6e 6f 64 65 20 22 4e 6f 20 6e 6f 64 65 20 66 6f 75 6e 64 20 61 74 20 70 6f 69 6e 74 22 29 29 .node."No.node.found.at.point"))
2e040 29 29 0a 20 20 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 6e 61 6d 65 2d 61 74 2d 70 6f 69 ))...(defun.js2-node-name-at-poi
2e060 6e 74 20 28 29 0a 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 28 6c 65 74 nt.().....(interactive).....(let
2e080 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 .((node.(js2-node-at-point)))...
2e0a0 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 28 69 66 20 6e 6f 64 65 0a 20 20 20 20 20 ....(message."%s".(if.node......
2e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f ...................(js2-node-sho
2e0e0 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt-name.node)...................
2e100 20 20 20 20 22 4e 6f 20 6e 6f 64 65 20 66 6f 75 6e 64 20 61 74 20 70 6f 69 6e 74 2e 22 29 29 29 ...."No.node.found.at.point.")))
2e120 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 26 6f ))..(defun.js2-node-at-point.(&o
2e140 70 74 69 6f 6e 61 6c 20 70 6f 73 20 73 6b 69 70 2d 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 22 52 65 ptional.pos.skip-comments)..."Re
2e160 74 75 72 6e 20 41 53 54 20 6e 6f 64 65 20 61 74 20 50 4f 53 2c 20 61 20 62 75 66 66 65 72 20 70 turn.AST.node.at.POS,.a.buffer.p
2e180 6f 73 69 74 69 6f 6e 2c 20 64 65 66 61 75 6c 74 69 6e 67 20 74 6f 20 63 75 72 72 65 6e 74 20 70 osition,.defaulting.to.current.p
2e1a0 6f 69 6e 74 2e 0a 54 68 65 20 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 27 20 76 61 72 69 61 62 6c oint..The.`js2-mode-ast'.variabl
2e1c0 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 61 72 e.must.be.set.to.the.current.par
2e1e0 73 65 20 74 72 65 65 2e 0a 53 69 67 6e 61 6c 73 20 61 6e 20 65 72 72 6f 72 20 69 66 20 74 68 65 se.tree..Signals.an.error.if.the
2e200 20 41 53 54 20 28 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 27 29 20 69 73 20 6e 69 6c 2e 0a 41 6c .AST.(`js2-mode-ast').is.nil..Al
2e220 77 61 79 73 20 72 65 74 75 72 6e 73 20 61 20 6e 6f 64 65 20 2d 20 69 66 20 69 74 20 63 61 6e 27 ways.returns.a.node.-.if.it.can'
2e240 74 20 66 69 6e 64 20 6f 6e 65 2c 20 69 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 72 6f 6f 74 2e t.find.one,.it.returns.the.root.
2e260 0a 49 66 20 53 4b 49 50 2d 43 4f 4d 4d 45 4e 54 53 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 6f .If.SKIP-COMMENTS.is.non-nil,.co
2e280 6d 6d 65 6e 74 20 6e 6f 64 65 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 6c 65 74 mment.nodes.are.ignored."...(let
2e2a0 20 28 28 61 73 74 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 72 65 73 .((ast.js2-mode-ast).........res
2e2c0 75 6c 74 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 61 73 74 0a 20 20 20 20 20 20 28 65 72 72 6f ult).....(unless.ast.......(erro
2e2e0 72 20 22 4e 6f 20 4a 61 76 61 53 63 72 69 70 74 20 41 53 54 20 61 76 61 69 6c 61 62 6c 65 22 29 r."No.JavaScript.AST.available")
2e300 29 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 74 68 72 6f 75 67 68 20 63 6f 6d 6d 65 6e 74 73 20 66 ).....;;.Look.through.comments.f
2e320 69 72 73 74 2c 20 73 69 6e 63 65 20 74 68 65 79 20 6d 61 79 20 62 65 20 69 6e 73 69 64 65 20 6e irst,.since.they.may.be.inside.n
2e340 6f 64 65 73 20 74 68 61 74 0a 20 20 20 20 3b 3b 20 77 6f 75 6c 64 20 6f 74 68 65 72 77 69 73 65 odes.that.....;;.would.otherwise
2e360 20 72 65 70 6f 72 74 20 61 20 6d 61 74 63 68 2e 0a 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 .report.a.match......(setq.pos.(
2e380 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 or.pos.(point))...........result
2e3a0 20 28 69 66 20 28 3e 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 61 73 .(if.(>.pos.(js2-node-abs-end.as
2e3c0 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 74 0a 20 20 20 t))......................ast....
2e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 73 6b 69 70 2d 63 6f ................(if.(not.skip-co
2e400 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 mments)........................(
2e420 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 20 70 6f 73 29 29 29 29 0a 20 20 20 js2-comment-at-point.pos))))....
2e440 20 28 75 6e 6c 65 73 73 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d .(unless.result.......(setq.js2-
2e460 64 69 73 63 6f 76 65 72 65 64 2d 6e 6f 64 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 discovered-node.nil.............
2e480 6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65 74 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 js2-visitor-offset.0............
2e4a0 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 61 72 63 68 2d 70 6f 69 6e 74 20 70 6f 73 29 0a 20 20 20 20 .js2-node-search-point.pos).....
2e4c0 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 74 ..(unwind-protect...........(cat
2e4e0 63 68 20 27 6a 73 32 2d 76 69 73 69 74 2d 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ch.'js2-visit-done.............(
2e500 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 61 73 74 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d js2-visit-ast.ast.#'js2-node-at-
2e520 70 6f 69 6e 74 2d 76 69 73 69 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 point-visitor)).........(setq.js
2e540 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 2-visitor-offset.nil............
2e560 20 20 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 61 72 63 68 2d 70 6f 69 6e 74 20 6e 69 6c 29 29 0a 20 ...js2-node-search-point.nil))..
2e580 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 6a 73 32 2d 64 69 73 63 6f 76 65 72 65 64 .....(setq.result.js2-discovered
2e5a0 2d 6e 6f 64 65 29 29 0a 20 20 20 20 3b 3b 20 6d 61 79 20 68 61 76 65 20 66 6f 75 6e 64 20 61 20 -node)).....;;.may.have.found.a.
2e5c0 63 6f 6d 6d 65 6e 74 20 62 65 79 6f 6e 64 20 65 6e 64 20 6f 66 20 6c 61 73 74 20 63 68 69 6c 64 comment.beyond.end.of.last.child
2e5e0 20 6e 6f 64 65 2c 0a 20 20 20 20 3b 3b 20 73 69 6e 63 65 20 76 69 73 69 74 69 6e 67 20 74 68 65 .node,.....;;.since.visiting.the
2e600 20 61 73 74 2d 72 6f 6f 74 20 6c 6f 6f 6b 73 20 61 74 20 74 68 65 20 63 6f 6d 6d 65 6e 74 2d 6c .ast-root.looks.at.the.comment-l
2e620 69 73 74 20 6c 61 73 74 2e 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 6b 69 70 2d 63 6f 6d 6d ist.last......(if.(and.skip-comm
2e640 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e ents..............(js2-comment-n
2e660 6f 64 65 2d 70 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 ode-p.result)).........(setq.res
2e680 75 6c 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 6f 72 20 72 65 73 75 6c 74 20 6a 73 32 2d 6d 6f 64 ult.nil)).....(or.result.js2-mod
2e6a0 65 2d 61 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 e-ast)))..(defun.js2-node-at-poi
2e6c0 6e 74 2d 76 69 73 69 74 6f 72 20 28 6e 6f 64 65 20 65 6e 64 2d 70 29 0a 20 20 28 6c 65 74 20 28 nt-visitor.(node.end-p)...(let.(
2e6e0 28 72 65 6c 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 (rel-pos.(js2-node-pos.node))...
2e700 20 20 20 20 20 20 61 62 73 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 61 62 73 2d 65 6e 64 0a 20 20 ......abs-pos.........abs-end...
2e720 20 20 20 20 20 20 28 70 6f 69 6e 74 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 61 72 63 68 2d 70 6f 69 ......(point.js2-node-search-poi
2e740 6e 74 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 65 6e 64 2d 70 0a 20 20 20 20 20 nt)).....(cond......(end-p......
2e760 20 3b 3b 20 74 68 69 73 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 61 20 6e 6f 6e 2d 6e 69 6c 20 .;;.this.evaluates.to.a.non-nil.
2e780 72 65 74 75 72 6e 20 76 61 6c 75 65 2c 20 65 76 65 6e 20 69 66 20 69 74 27 73 20 7a 65 72 6f 0a return.value,.even.if.it's.zero.
2e7a0 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65 ......(cl-decf.js2-visitor-offse
2e7c0 74 20 72 65 6c 2d 70 6f 73 29 29 0a 20 20 20 20 20 3b 3b 20 77 65 20 61 6c 72 65 61 64 79 20 6c t.rel-pos))......;;.we.already.l
2e7e0 6f 6f 6b 65 64 20 66 6f 72 20 63 6f 6d 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 76 69 73 69 74 69 ooked.for.comments.before.visiti
2e800 6e 67 2c 20 61 6e 64 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 68 65 6d 20 6e 6f 77 0a 20 20 20 20 ng,.and.don't.want.them.now.....
2e820 20 28 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 .((js2-comment-node-p.node).....
2e840 20 20 6e 69 6c 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 62 73 2d 70 ..nil)......(t.......(setq.abs-p
2e860 6f 73 20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65 74 20 72 os.(cl-incf.js2-visitor-offset.r
2e880 65 6c 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 6f 6e 6c 79 20 77 el-pos).............;;.we.only.w
2e8a0 61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 20 6e 6f 64 65 20 69 66 20 74 68 65 20 70 6f 69 6e 74 ant.to.use.the.node.if.the.point
2e8c0 20 69 73 20 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6c 61 .is.before.............;;.the.la
2e8e0 73 74 20 63 68 61 72 61 63 74 65 72 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 74 68 65 20 6e 6f 64 st.character.position.in.the.nod
2e900 65 2c 20 73 6f 20 77 65 20 64 65 63 72 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b e,.so.we.decrement.............;
2e920 3b 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 65 6e 64 20 62 79 20 31 2e 0a 20 20 20 20 20 20 20 ;.the.absolute.end.by.1.........
2e940 20 20 20 20 20 61 62 73 2d 65 6e 64 20 28 2b 20 61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 .....abs-end.(+.abs-pos.(js2-nod
2e960 65 2d 6c 65 6e 20 6e 6f 64 65 29 20 2d 31 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 e-len.node).-1)).......(cond....
2e980 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 6e 6f 64 65 20 73 74 61 72 74 73 20 61 66 74 65 72 ....;;.If.this.node.starts.after
2e9a0 20 73 65 61 72 63 68 2d 70 6f 69 6e 74 2c 20 73 74 6f 70 20 74 68 65 20 73 65 61 72 63 68 2e 0a .search-point,.stop.the.search..
2e9c0 20 20 20 20 20 20 20 28 28 3e 20 61 62 73 2d 70 6f 73 20 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 .......((>.abs-pos.point).......
2e9e0 20 20 28 74 68 72 6f 77 20 27 6a 73 32 2d 76 69 73 69 74 2d 64 6f 6e 65 20 6e 69 6c 29 29 0a 20 ..(throw.'js2-visit-done.nil))..
2ea00 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 6e 6f 64 65 20 65 6e 64 73 20 62 65 66 6f 72 ......;;.If.this.node.ends.befor
2ea20 65 20 74 68 65 20 73 65 61 72 63 68 2d 70 6f 69 6e 74 2c 20 64 6f 6e 27 74 20 63 68 65 63 6b 20 e.the.search-point,.don't.check.
2ea40 6b 69 64 73 2e 0a 20 20 20 20 20 20 20 28 28 3e 20 70 6f 69 6e 74 20 61 62 73 2d 65 6e 64 29 0a kids.........((>.point.abs-end).
2ea60 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 3b ........nil)........(t.........;
2ea80 3b 20 4f 74 68 65 72 77 69 73 65 20 70 6f 69 6e 74 20 69 73 20 77 69 74 68 69 6e 20 74 68 69 73 ;.Otherwise.point.is.within.this
2eaa0 20 6e 6f 64 65 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 20 61 20 63 68 69 6c 64 2e 0a 20 20 20 20 .node,.possibly.in.a.child......
2eac0 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 64 69 73 63 6f 76 65 72 65 64 2d 6e 6f 64 65 20 6e 6f ....(setq.js2-discovered-node.no
2eae0 64 65 29 0a 20 20 20 20 20 20 20 20 74 29 29 29 29 29 29 20 20 3b 20 6b 65 65 70 20 70 72 6f 63 de).........t))))))..;.keep.proc
2eb00 65 73 73 69 6e 67 20 6b 69 64 73 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 6d 6f 72 65 20 73 70 65 essing.kids.to.look.for.more.spe
2eb20 63 69 66 69 63 20 6d 61 74 63 68 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 62 6c 6f 63 6b cific.match..(defsubst.js2-block
2eb40 2d 63 6f 6d 6d 65 6e 74 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d -comment-p.(node)..."Return.non-
2eb60 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 20 6f 66 nil.if.NODE.is.a.comment.node.of
2eb80 20 66 6f 72 6d 61 74 20 60 6a 73 64 6f 63 27 20 6f 72 20 60 62 6c 6f 63 6b 27 2e 22 0a 20 20 28 .format.`jsdoc'.or.`block'."...(
2eba0 61 6e 64 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 and.(js2-comment-node-p.node)...
2ebc0 20 20 20 20 20 28 6d 65 6d 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 66 6f 72 .....(memq.(js2-comment-node-for
2ebe0 6d 61 74 20 6e 6f 64 65 29 20 27 28 6a 73 64 6f 63 20 62 6c 6f 63 6b 29 29 29 29 0a 0a 3b 3b 20 mat.node).'(jsdoc.block))))..;;.
2ec00 54 4f 44 4f 3a 20 20 70 75 74 20 74 68 65 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 76 65 63 TODO:..put.the.comments.in.a.vec
2ec20 74 6f 72 20 61 6e 64 20 62 69 6e 61 72 79 2d 73 65 61 72 63 68 20 74 68 65 6d 20 69 6e 73 74 65 tor.and.binary-search.them.inste
2ec40 61 64 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 20 28 ad.(defun.js2-comment-at-point.(
2ec60 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 4c 6f 6f 6b 20 74 68 72 6f 75 67 68 20 73 &optional.pos)..."Look.through.s
2ec80 63 61 6e 6e 65 64 20 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 73 20 66 6f 72 20 6f 6e 65 20 63 6f 6e canned.comment.nodes.for.one.con
2eca0 74 61 69 6e 69 6e 67 20 50 4f 53 2e 0a 50 4f 53 20 69 73 20 61 20 62 75 66 66 65 72 20 70 6f 73 taining.POS..POS.is.a.buffer.pos
2ecc0 69 74 69 6f 6e 20 74 68 61 74 20 64 65 66 61 75 6c 74 73 20 74 6f 20 63 75 72 72 65 6e 74 20 70 ition.that.defaults.to.current.p
2ece0 6f 69 6e 74 2e 0a 46 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 50 4f oint..Function.returns.nil.if.PO
2ed00 53 20 77 61 73 20 6e 6f 74 20 69 6e 20 61 6e 79 20 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 2e 22 0a S.was.not.in.any.comment.node.".
2ed20 20 20 28 6c 65 74 20 28 28 61 73 74 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 ..(let.((ast.js2-mode-ast)......
2ed40 20 20 20 28 78 20 28 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 ...(x.(or.pos.(point))).........
2ed60 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 61 73 74 0a 20 20 20 20 20 20 28 beg.end).....(unless.ast.......(
2ed80 65 72 72 6f 72 20 22 4e 6f 20 4a 61 76 61 53 63 72 69 70 74 20 41 53 54 20 61 76 61 69 6c 61 62 error."No.JavaScript.AST.availab
2eda0 6c 65 22 29 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 64 6f 6e 65 0a 20 20 20 20 20 20 3b 3b 20 le")).....(catch.'done.......;;.
2edc0 43 6f 6d 6d 65 6e 74 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 6c 65 78 69 63 61 6c 20 6f Comments.are.stored.in.lexical.o
2ede0 72 64 65 72 2e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 28 6a 73 rder........(dolist.(comment.(js
2ee00 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20 61 73 74 29 20 6e 69 6c 29 0a 20 20 2-ast-root-comments.ast).nil)...
2ee20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f ......(setq.beg.(js2-node-abs-po
2ee40 73 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 s.comment)...............end.(+.
2ee60 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 20 beg.(js2-node-len.comment)))....
2ee80 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 78 20 62 65 67 29 0a 20 20 20 20 20 20 20 .....(if.(and.(>=.x.beg)........
2eea0 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 78 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 ..........(<=.x.end))...........
2eec0 28 74 68 72 6f 77 20 27 64 6f 6e 65 20 63 6f 6d 6d 65 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 (throw.'done.comment))))))..(def
2eee0 75 6e 20 6a 73 32 2d 63 6f 6d 6d 65 6e 74 73 2d 62 65 74 77 65 65 6e 20 28 73 74 61 72 74 20 65 un.js2-comments-between.(start.e
2ef00 6e 64 20 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 63 6f 6d 6d nd.comments-list)..."Return.comm
2ef20 65 6e 74 20 6e 6f 64 65 73 20 62 65 74 77 65 65 6e 20 53 54 41 52 54 20 61 6e 64 20 45 4e 44 2c ent.nodes.between.START.and.END,
2ef40 20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 53 54 41 52 54 20 61 6e 64 20 45 4e 44 .nil.if.not.found..START.and.END
2ef60 20 61 72 65 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e 20 63 75 72 72 65 .are.absolute.positions.in.curre
2ef80 6e 74 20 62 75 66 66 65 72 2e 0a 43 4f 4d 4d 45 4e 54 53 2d 4c 49 53 54 20 69 73 20 74 68 65 20 nt.buffer..COMMENTS-LIST.is.the.
2efa0 63 6f 6d 6d 65 6e 74 73 20 6c 69 73 74 20 74 6f 20 63 68 65 63 6b 2e 22 0a 20 20 28 6c 65 74 20 comments.list.to.check."...(let.
2efc0 28 63 6f 6d 6d 65 6e 74 73 20 63 2d 73 74 61 72 74 20 63 2d 65 6e 64 29 0a 20 20 20 20 28 6e 72 (comments.c-start.c-end).....(nr
2efe0 65 76 65 72 73 65 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 63 6f everse.......(dolist.(comment.co
2f000 6d 6d 65 6e 74 73 2d 6c 69 73 74 20 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 28 73 mments-list.comments).........(s
2f020 65 74 71 20 63 2d 73 74 61 72 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 63 6f etq.c-start.(js2-node-abs-pos.co
2f040 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 2d 65 6e 64 20 28 31 2d 20 28 mment)...............c-end.(1-.(
2f060 2b 20 63 2d 73 74 61 72 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 63 6f 6d 6d 65 6e 74 29 +.c-start.(js2-node-len.comment)
2f080 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 3c 20 63 2d 65 6e 64 ))).........(unless.(or.(<.c-end
2f0a0 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 63 .start).....................(>.c
2f0c0 2d 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6d -start.end))...........(push.com
2f0e0 6d 65 6e 74 20 63 6f 6d 6d 65 6e 74 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d ment.comments))))))..(defun.js2-
2f100 6d 6f 64 65 2d 66 69 6e 64 2d 70 61 72 65 6e 74 2d 66 6e 20 28 6e 6f 64 65 29 0a 20 20 22 46 69 mode-find-parent-fn.(node)..."Fi
2f120 6e 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6c 6f 73 69 6e 67 20 4e 4f 44 45 2e 0a 52 65 74 75 nd.function.enclosing.NODE..Retu
2f140 72 6e 73 20 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 6e 6f 74 20 69 6e 73 69 64 65 20 61 20 rns.nil.if.NODE.is.not.inside.a.
2f160 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 function."...(setq.node.(js2-nod
2f180 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6e 6f e-parent.node))...(while.(and.no
2f1a0 64 65 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 de.(not.(js2-function-node-p.nod
2f1c0 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 e))).....(setq.node.(js2-node-pa
2f1e0 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f rent.node)))...(and.(js2-functio
2f200 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 n-node-p.node).node))..(defun.js
2f220 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e 20 28 6e 6f 64 65 29 0a 2-mode-find-enclosing-fn.(node).
2f240 20 20 22 46 69 6e 64 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 72 6f 6f 74 20 65 6e 63 6c 6f 73 69 .."Find.function.or.root.enclosi
2f260 6e 67 20 4e 4f 44 45 2e 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 ng.NODE."...(if.(js2-ast-root-p.
2f280 6e 6f 64 65 29 0a 20 20 20 20 20 20 6e 6f 64 65 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 node).......node.....(setq.node.
2f2a0 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 77 68 69 (js2-node-parent.node)).....(whi
2f2c0 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f 64 65 le.(not.(or.(js2-ast-root-p.node
2f2e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 ).....................(js2-funct
2f300 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e ion-node-p.node))).......(setq.n
2f320 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 ode.(js2-node-parent.node)))....
2f340 20 6e 6f 64 65 29 29 0a 0a 20 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 .node))...(defun.js2-mode-find-e
2f360 6e 63 6c 6f 73 69 6e 67 2d 6e 6f 64 65 20 28 62 65 67 20 65 6e 64 29 0a 20 20 22 46 69 6e 64 20 nclosing-node.(beg.end)..."Find.
2f380 6e 6f 64 65 20 66 75 6c 6c 79 20 65 6e 63 6c 6f 73 69 6e 67 20 42 45 47 20 61 6e 64 20 45 4e 44 node.fully.enclosing.BEG.and.END
2f3a0 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f ."...(let.((node.(js2-node-at-po
2f3c0 69 6e 74 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20 20 20 20 20 20 28 63 int.beg)).........pos.........(c
2f3e0 6f 6e 74 69 6e 75 65 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a ontinue.t)).....(while.continue.
2f400 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f ......(if.(or.(js2-ast-root-p.no
2f420 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 de)...............(and..........
2f440 20 20 20 20 20 20 28 3c 3d 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 ......(<=.(setq.pos.(js2-node-ab
2f460 73 2d 70 6f 73 20 6e 6f 64 65 29 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-pos.node)).beg)...............
2f480 20 28 3e 3d 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 .(>=.(+.pos.(js2-node-len.node))
2f4a0 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 .end)))...........(setq.continue
2f4c0 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f .nil).........(setq.node.(js2-no
2f4e0 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 6e 6f 64 65 29 29 0a 0a 28 de-parent.node)))).....node))..(
2f500 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d defun.js2-node-parent-script-or-
2f520 66 6e 20 28 6e 6f 64 65 29 0a 20 20 22 46 69 6e 64 20 73 63 72 69 70 74 20 6f 72 20 66 75 6e 63 fn.(node)..."Find.script.or.func
2f540 74 69 6f 6e 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 65 6e 63 6c 6f 73 69 6e 67 20 4e 4f 44 45 2e tion.immediately.enclosing.NODE.
2f560 0a 49 66 20 4e 4f 44 45 20 69 73 20 74 68 65 20 61 73 74 2d 72 6f 6f 74 2c 20 72 65 74 75 72 6e .If.NODE.is.the.ast-root,.return
2f580 73 20 6e 69 6c 2e 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f s.nil."...(if.(js2-ast-root-p.no
2f5a0 64 65 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 de).......nil.....(setq.node.(js
2f5c0 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 2-node-parent.node)).....(while.
2f5e0 28 61 6e 64 20 6e 6f 64 65 20 28 6e 6f 74 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e (and.node.(not.(or.(js2-function
2f600 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-p.node)...................
2f620 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 2d 70 20 6e ............(js2-script-node-p.n
2f640 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f ode)))).......(setq.node.(js2-no
2f660 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 6e 6f 64 65 29 29 0a 0a 28 64 de-parent.node))).....node))..(d
2f680 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 69 73 2d 64 65 73 63 65 6e 64 61 6e 74 20 28 6e 6f 64 efun.js2-node-is-descendant.(nod
2f6a0 65 20 61 6e 63 65 73 74 6f 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 20 e.ancestor)..."Return.t.if.NODE.
2f6c0 69 73 20 61 20 64 65 73 63 65 6e 64 61 6e 74 20 6f 66 20 41 4e 43 45 53 54 4f 52 2e 22 0a 20 20 is.a.descendant.of.ANCESTOR."...
2f6e0 28 77 68 69 6c 65 20 28 61 6e 64 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (while.(and.node...............(
2f700 6e 6f 74 20 28 65 71 20 6e 6f 64 65 20 61 6e 63 65 73 74 6f 72 29 29 29 0a 20 20 20 20 28 73 65 not.(eq.node.ancestor))).....(se
2f720 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 tq.node.(js2-node-parent.node)))
2f740 0a 20 20 6e 6f 64 65 29 0a 0a 3b 3b 3b 20 76 69 73 69 74 6f 72 20 69 6e 66 72 61 73 74 72 75 63 ...node)..;;;.visitor.infrastruc
2f760 74 75 72 65 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 20 28 5f 6e 6f ture..(defun.js2-visit-none.(_no
2f780 64 65 20 5f 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 56 69 73 69 74 6f 72 20 66 6f 72 20 41 53 54 de._callback)..."Visitor.for.AST
2f7a0 20 6e 6f 64 65 20 74 68 61 74 20 68 61 76 65 20 6e 6f 20 6e 6f 64 65 20 63 68 69 6c 64 72 65 6e .node.that.have.no.node.children
2f7c0 2e 22 0a 20 20 6e 69 6c 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 6f 6e 65 ."...nil)..(defun.js2-print-none
2f7e0 20 28 5f 6e 6f 64 65 20 5f 69 6e 64 65 6e 74 29 0a 20 20 22 56 69 73 69 74 6f 72 20 66 6f 72 20 .(_node._indent)..."Visitor.for.
2f800 41 53 54 20 6e 6f 64 65 20 77 69 74 68 20 6e 6f 20 70 72 69 6e 74 65 64 20 72 65 70 72 65 73 65 AST.node.with.no.printed.represe
2f820 6e 74 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 ntation.")..(defun.js2-print-bod
2f840 79 20 28 6e 6f 64 65 20 69 6e 64 65 6e 74 29 0a 20 20 22 50 72 69 6e 74 20 61 20 73 74 61 74 65 y.(node.indent)..."Print.a.state
2f860 6d 65 6e 74 2c 20 6f 72 20 61 20 62 6c 6f 63 6b 20 77 69 74 68 6f 75 74 20 62 72 61 63 65 73 2e ment,.or.a.block.without.braces.
2f880 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a "...(if.(js2-block-node-p.node).
2f8a0 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f ......(dolist.(kid.(js2-block-no
2f8c0 64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e de-kids.node)).........(js2-prin
2f8e0 74 2d 61 73 74 20 6b 69 64 20 69 6e 64 65 6e 74 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e t-ast.kid.indent)).....(js2-prin
2f900 74 2d 61 73 74 20 6e 6f 64 65 20 69 6e 64 65 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 t-ast.node.indent)))..(defun.js2
2f920 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 61 72 67 73 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 6c 69 -print-list.(args.&optional.deli
2f940 6d 69 74 65 72 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6c 65 6e 20 3d 20 28 6c 65 miter)...(cl-loop.with.len.=.(le
2f960 6e 67 74 68 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e ngth.args)............for.arg.in
2f980 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d 20 .args............for.count.from.
2f9a0 31 0a 20 20 20 20 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 1............do............(when
2f9c0 20 61 72 67 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 61 72 67 20 30 29 29 0a 20 20 20 20 .arg.(js2-print-ast.arg.0)).....
2f9e0 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 63 6f 75 6e 74 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 .......(if.(<.count.len)........
2fa00 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6f 72 20 64 65 6c 69 6d 69 74 65 72 20 22 2c ........(insert.(or.delimiter.",
2fa20 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 74 72 65 65 20 28 .")))))..(defun.js2-print-tree.(
2fa40 61 73 74 29 0a 20 20 22 50 72 69 6e 74 73 20 61 6e 20 41 53 54 20 74 6f 20 74 68 65 20 63 75 72 ast)..."Prints.an.AST.to.the.cur
2fa60 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 4d 61 6b 65 73 20 60 6a 73 32 2d 61 73 74 2d 70 61 72 65 rent.buffer..Makes.`js2-ast-pare
2fa80 6e 74 2d 6e 6f 64 65 73 27 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 72 69 6e 74 nt-nodes'.available.to.the.print
2faa0 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 61 78 2d 6c 69 73 70 er.functions."...(let.((max-lisp
2fac0 2d 65 76 61 6c 2d 64 65 70 74 68 20 28 6d 61 78 20 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 -eval-depth.(max.max-lisp-eval-d
2fae0 65 70 74 68 20 31 35 30 30 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 epth.1500))).....(js2-print-ast.
2fb00 61 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6e 6f ast)))..(defun.js2-print-ast.(no
2fb20 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 64 65 6e 74 29 0a 20 20 22 48 65 6c 70 65 72 20 66 de.&optional.indent)..."Helper.f
2fb40 75 6e 63 74 69 6f 6e 20 66 6f 72 20 70 72 69 6e 74 69 6e 67 20 41 53 54 20 6e 6f 64 65 73 2e 0a unction.for.printing.AST.nodes..
2fb60 52 65 71 75 69 72 65 73 20 60 6a 73 32 2d 61 73 74 2d 70 61 72 65 6e 74 2d 6e 6f 64 65 73 27 20 Requires.`js2-ast-parent-nodes'.
2fb80 74 6f 20 62 65 20 6e 6f 6e 2d 6e 69 6c 2e 0a 59 6f 75 20 73 68 6f 75 6c 64 20 75 73 65 20 60 6a to.be.non-nil..You.should.use.`j
2fba0 73 32 2d 70 72 69 6e 74 2d 74 72 65 65 27 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 66 s2-print-tree'.instead.of.this.f
2fbc0 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 69 6e 74 65 72 20 28 67 65 74 20 unction."...(let.((printer.(get.
2fbe0 28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 29 29 0a 20 20 20 (aref.node.0).'js2-printer))....
2fc00 20 20 20 20 20 28 69 20 28 6f 72 20 69 6e 64 65 6e 74 20 30 29 29 29 0a 20 20 20 20 3b 3b 20 54 .....(i.(or.indent.0))).....;;.T
2fc20 4f 44 4f 3a 20 20 77 65 64 67 65 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 68 65 72 65 20 73 6f 6d ODO:..wedge.comments.in.here.som
2fc40 65 77 68 65 72 65 0a 20 20 20 20 28 69 66 20 70 72 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 28 ewhere.....(if.printer.........(
2fc60 66 75 6e 63 61 6c 6c 20 70 72 69 6e 74 65 72 20 6e 6f 64 65 20 69 29 29 29 29 0a 0a 28 64 65 66 funcall.printer.node.i))))..(def
2fc80 63 6f 6e 73 74 20 6a 73 32 2d 73 69 64 65 2d 65 66 66 65 63 74 69 6e 67 2d 74 6f 6b 65 6e 73 0a const.js2-side-effecting-tokens.
2fca0 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 73 20 28 6d 61 6b 65 2d 62 6f 6f 6c 2d 76 65 63 74 6f ..(let.((tokens.(make-bool-vecto
2fcc0 72 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 64 6f 6c r.js2-num-tokens.nil))).....(dol
2fce0 69 73 74 20 28 74 74 20 28 6c 69 73 74 20 6a 73 32 2d 41 53 53 49 47 4e 0a 20 20 20 20 20 20 20 ist.(tt.(list.js2-ASSIGN........
2fd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 41 44 44 0a 20 20 ...............js2-ASSIGN_ADD...
2fd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 ....................js2-ASSIGN_B
2fd40 49 54 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d ITAND.......................js2-
2fd60 41 53 53 49 47 4e 5f 42 49 54 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ASSIGN_BITOR....................
2fd80 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 58 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20 ...js2-ASSIGN_BITXOR............
2fda0 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56 0a 20 20 20 20 20 20 ...........js2-ASSIGN_DIV.......
2fdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4c 53 48 0a 20 ................js2-ASSIGN_LSH..
2fde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f .....................js2-ASSIGN_
2fe00 4d 4f 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 MOD.......................js2-AS
2fe20 53 49 47 4e 5f 4d 55 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a SIGN_MUL.......................j
2fe40 73 32 2d 41 53 53 49 47 4e 5f 52 53 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ASSIGN_RSH...................
2fe60 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 53 55 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....js2-ASSIGN_SUB..............
2fe80 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 0a 20 20 20 20 20 20 20 .........js2-ASSIGN_URSH........
2fea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 45 58 50 4f 4e 0a ...............js2-ASSIGN_EXPON.
2fec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e ......................js2-ASSIGN
2fee0 5f 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 _AND.......................js2-A
2ff00 53 53 49 47 4e 5f 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a SSIGN_OR.......................j
2ff20 73 32 2d 41 53 53 49 47 4e 5f 4e 55 4c 4c 49 53 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ASSIGN_NULLISH...............
2ff40 20 20 20 20 20 20 20 20 6a 73 32 2d 42 4c 4f 43 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........js2-BLOCK...............
2ff60 20 20 20 20 20 20 20 20 6a 73 32 2d 42 52 45 41 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........js2-BREAK...............
2ff80 20 20 20 20 20 20 20 20 6a 73 32 2d 43 41 4c 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........js2-CALL................
2ffa0 20 20 20 20 20 20 20 6a 73 32 2d 43 41 54 43 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......js2-CATCH................
2ffc0 20 20 20 20 20 20 20 6a 73 32 2d 43 41 54 43 48 5f 53 43 4f 50 45 0a 20 20 20 20 20 20 20 20 20 .......js2-CATCH_SCOPE..........
2ffe0 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4c 41 53 53 0a 20 20 20 20 20 20 20 20 20 .............js2-CLASS..........
30000 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4f 4e 53 54 0a 20 20 20 20 20 20 20 20 20 .............js2-CONST..........
30020 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 0a 20 20 20 20 20 20 .............js2-CONTINUE.......
30040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45 42 55 47 47 45 52 0a 20 20 20 ................js2-DEBUGGER....
30060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45 43 0a 20 20 20 20 20 ...................js2-DEC......
30080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45 4c 50 52 4f 50 0a 20 20 20 .................js2-DELPROP....
300a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45 4c 5f 52 45 46 0a 20 ...................js2-DEL_REF..
300c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20 .....................js2-DO.....
300e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4c 53 45 0a 20 20 20 20 20 ..................js2-ELSE......
30100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4d 50 54 59 0a 20 20 20 20 20 .................js2-EMPTY......
30120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 54 45 52 57 49 54 48 0a 20 .................js2-ENTERWITH..
30140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 58 50 4f 52 54 0a .....................js2-EXPORT.
30160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52 ......................js2-EXPR_R
30180 45 53 55 4c 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d ESULT.......................js2-
301a0 46 49 4e 41 4c 4c 59 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 FINALLY.......................js
301c0 32 2d 46 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 2-FOR.......................js2-
301e0 46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a FUNCTION.......................j
30200 73 32 2d 47 4f 54 4f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 s2-GOTO.......................js
30220 32 2d 49 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 2-IF.......................js2-I
30240 46 45 51 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 46 FEQ.......................js2-IF
30260 4e 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4d 50 NE.......................js2-IMP
30280 4f 52 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4e ORT.......................js2-IN
302a0 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4a 53 52 0a C.......................js2-JSR.
302c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 41 42 45 4c 0a ......................js2-LABEL.
302e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 41 56 45 57 ......................js2-LEAVEW
30300 49 54 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 ITH.......................js2-LE
30320 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 45 T.......................js2-LETE
30340 58 50 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 4f XPR.......................js2-LO
30360 43 41 4c 5f 42 4c 4f 43 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 CAL_BLOCK.......................
30380 6a 73 32 2d 4c 4f 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a js2-LOOP.......................j
303a0 73 32 2d 4e 45 57 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 s2-NEW.......................js2
303c0 2d 52 45 46 5f 43 41 4c 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -REF_CALL.......................
303e0 6a 73 32 2d 52 45 54 48 52 4f 57 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-RETHROW.....................
30400 20 20 6a 73 32 2d 52 45 54 55 52 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..js2-RETURN....................
30420 20 20 20 6a 73 32 2d 52 45 54 55 52 4e 5f 52 45 53 55 4c 54 0a 20 20 20 20 20 20 20 20 20 20 20 ...js2-RETURN_RESULT............
30440 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 4d 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........js2-SEMI.............
30460 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 54 45 4c 45 4d 0a 20 20 20 20 20 20 20 20 20 20 ..........js2-SETELEM...........
30480 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 54 45 4c 45 4d 5f 4f 50 0a 20 20 20 20 20 ............js2-SETELEM_OP......
304a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 54 4e 41 4d 45 0a 20 20 20 .................js2-SETNAME....
304c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 54 50 52 4f 50 0a 20 ...................js2-SETPROP..
304e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 54 50 52 4f 50 .....................js2-SETPROP
30500 5f 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45 _OP.......................js2-SE
30520 54 56 41 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 TVAR.......................js2-S
30540 45 54 5f 52 45 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 ET_REF.......................js2
30560 2d 53 45 54 5f 52 45 46 5f 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -SET_REF_OP.....................
30580 20 20 6a 73 32 2d 53 57 49 54 43 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..js2-SWITCH....................
305a0 20 20 20 6a 73 32 2d 54 41 52 47 45 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...js2-TARGET...................
305c0 20 20 20 20 6a 73 32 2d 54 48 52 4f 57 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....js2-THROW...................
305e0 20 20 20 20 6a 73 32 2d 54 52 59 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....js2-TRY.....................
30600 20 20 6a 73 32 2d 56 41 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..js2-VAR.......................
30620 6a 73 32 2d 57 48 49 4c 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-WHILE.......................
30640 6a 73 32 2d 57 49 54 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a js2-WITH.......................j
30660 73 32 2d 57 49 54 48 45 58 50 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-WITHEXPR.....................
30680 20 20 6a 73 32 2d 59 49 45 4c 44 29 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 74 6f 6b 65 6e 73 ..js2-YIELD)).......(aset.tokens
306a0 20 74 74 20 74 29 29 0a 20 20 20 20 74 6f 6b 65 6e 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 .tt.t)).....tokens))..(defun.js2
306c0 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6e 6f 64 65 29 0a 20 20 -node-has-side-effects.(node)...
306e0 22 52 65 74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 20 68 61 73 20 73 69 64 65 20 65 66 66 65 63 "Return.t.if.NODE.has.side.effec
30700 74 73 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 64 65 20 20 3b 20 6d 61 6b 65 73 20 69 74 20 65 61 ts."...(when.node..;.makes.it.ea
30720 73 69 65 72 20 74 6f 20 68 61 6e 64 6c 65 20 6d 61 6c 66 6f 72 6d 65 64 20 65 78 70 72 65 73 73 sier.to.handle.malformed.express
30740 69 6f 6e 73 0a 20 20 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 ions.....(let.((tt.(js2-node-typ
30760 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 e.node))).......(cond........;;.
30780 54 68 69 73 20 64 6f 75 62 74 6c 65 73 73 20 6e 65 65 64 73 20 73 6f 6d 65 20 77 6f 72 6b 2c 20 This.doubtless.needs.some.work,.
307a0 73 69 6e 63 65 20 45 58 50 52 5f 56 4f 49 44 20 69 73 20 75 73 65 64 0a 20 20 20 20 20 20 20 3b since.EXPR_VOID.is.used........;
307c0 3b 20 69 6e 20 73 65 76 65 72 61 6c 20 77 61 79 73 20 69 6e 20 52 68 69 6e 6f 20 61 6e 64 20 49 ;.in.several.ways.in.Rhino.and.I
307e0 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 63 61 75 67 68 74 20 74 68 65 6d 20 61 6c 6c 2e 0a 20 .may.not.have.caught.them.all...
30800 20 20 20 20 20 20 3b 3b 20 49 27 6c 6c 20 77 61 69 74 20 66 6f 72 20 70 65 6f 70 6c 65 20 74 6f ......;;.I'll.wait.for.people.to
30820 20 6e 6f 74 69 63 65 20 69 6e 63 6f 72 72 65 63 74 20 77 61 72 6e 69 6e 67 73 2e 0a 20 20 20 20 .notice.incorrect.warnings......
30840 20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 45 58 50 52 5f 56 4f 49 44 29 0a 20 20 ...((and.(=.tt.js2-EXPR_VOID)...
30860 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 ...........(js2-expr-stmt-node-p
30880 20 6e 6f 64 65 29 29 20 3b 20 62 75 74 20 6e 6f 74 20 69 66 20 45 58 50 52 5f 52 45 53 55 4c 54 .node)).;.but.not.if.EXPR_RESULT
308a0 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78 70 72 20 28 6a 73 32 2d 65 78 70 72 2d 73 .........(let.((expr.(js2-expr-s
308c0 74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 tmt-node-expr.node)))...........
308e0 28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 65 (or.(js2-node-has-side-effects.e
30900 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 73 74 xpr)...............(when.(js2-st
30920 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ring-node-p.expr)...............
30940 20 20 28 6d 65 6d 62 65 72 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 ..(member.(js2-string-node-value
30960 20 65 78 70 72 29 20 27 28 22 75 73 65 20 73 74 72 69 63 74 22 20 22 75 73 65 20 61 73 6d 22 29 .expr).'("use.strict"."use.asm")
30980 29 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 41 57 41 49 54 29 20 74 )))))........((=.tt.js2-AWAIT).t
309a0 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 )........((=.tt.js2-COMMA)......
309c0 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6a ...(js2-node-has-side-effects.(j
309e0 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 s2-infix-node-right.node))).....
30a00 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 41 4e 44 29 0a 20 20 20 20 20 20 20 20 20 ...((or.(=.tt.js2-AND)..........
30a20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 ...(=.tt.js2-OR).............(=.
30a40 74 74 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2d 43 4f 41 4c 45 53 43 49 4e 47 29 29 0a 20 20 20 20 tt.js2-NULLISH-COALESCING)).....
30a60 20 20 20 20 28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 ....(or.(js2-node-has-side-effec
30a80 74 73 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 0a ts.(js2-infix-node-right.node)).
30aa0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 ............(js2-node-has-side-e
30ac0 66 66 65 63 74 73 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 ffects.(js2-infix-node-left.node
30ae0 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20 ))))........((=.tt.js2-HOOK)....
30b00 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 .....(and.(js2-node-has-side-eff
30b20 65 63 74 73 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 72 75 65 2d 65 78 70 72 20 6e 6f ects.(js2-cond-node-true-expr.no
30b40 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d de))..............(js2-node-has-
30b60 73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c 73 side-effects.(js2-cond-node-fals
30b80 65 2d 65 78 70 72 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 70 61 72 e-expr.node))))........((js2-par
30ba0 65 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 en-node-p.node).........(js2-nod
30bc0 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f e-has-side-effects.(js2-paren-no
30be0 64 65 2d 65 78 70 72 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 de-expr.node)))........((=.tt.js
30c00 32 2d 45 52 52 4f 52 29 20 3b 20 61 76 6f 69 64 20 63 61 73 63 61 64 65 64 20 65 72 72 6f 72 20 2-ERROR).;.avoid.cascaded.error.
30c20 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 28 6f messages.........nil)........((o
30c40 72 20 28 61 6e 64 20 6a 73 32 2d 69 6e 73 74 61 6e 63 65 6f 66 2d 68 61 73 2d 73 69 64 65 2d 65 r.(and.js2-instanceof-has-side-e
30c60 66 66 65 63 74 73 20 28 3d 20 74 74 20 6a 73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 29 29 0a 20 20 ffects.(=.tt.js2-INSTANCEOF))...
30c80 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6a 73 32 2d 67 65 74 70 72 6f 70 2d 68 61 73 2d 73 ..........(and.js2-getprop-has-s
30ca0 69 64 65 2d 65 66 66 65 63 74 73 20 28 3d 20 74 74 20 6a 73 32 2d 47 45 54 50 52 4f 50 29 29 29 ide-effects.(=.tt.js2-GETPROP)))
30cc0 0a 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 61 .........t)........(t.........(a
30ce0 72 65 66 20 6a 73 32 2d 73 69 64 65 2d 65 66 66 65 63 74 69 6e 67 2d 74 6f 6b 65 6e 73 20 74 74 ref.js2-side-effecting-tokens.tt
30d00 29 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d ))))))..(defconst.js2-stmt-node-
30d20 74 79 70 65 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 42 4c 4f 43 4b 0a 20 20 20 20 20 20 20 20 types...(list.js2-BLOCK.........
30d40 6a 73 32 2d 42 52 45 41 4b 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 0a 20 js2-BREAK.........js2-CONTINUE..
30d60 20 20 20 20 20 20 20 6a 73 32 2d 44 45 46 41 55 4c 54 20 20 3b 20 65 34 78 20 22 64 65 66 61 75 .......js2-DEFAULT..;.e4x."defau
30d80 6c 74 20 78 6d 6c 20 6e 61 6d 65 73 70 61 63 65 22 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 lt.xml.namespace".statement.....
30da0 20 20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 45 58 50 4f 52 54 0a 20 20 ....js2-DO.........js2-EXPORT...
30dc0 20 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 0a 20 20 20 20 20 20 20 20 6a 73 ......js2-EXPR_RESULT.........js
30de0 32 2d 45 58 50 52 5f 56 4f 49 44 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 46 4f 52 0a 20 20 20 20 2-EXPR_VOID.........js2-FOR.....
30e00 20 20 20 20 6a 73 32 2d 49 46 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4d 50 4f 52 54 0a 20 20 ....js2-IF.........js2-IMPORT...
30e20 20 20 20 20 20 20 6a 73 32 2d 52 45 54 55 52 4e 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 53 57 49 ......js2-RETURN.........js2-SWI
30e40 54 43 48 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 54 48 52 4f 57 0a 20 20 20 20 20 20 20 20 6a 73 TCH.........js2-THROW.........js
30e60 32 2d 54 52 59 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 57 48 49 4c 45 0a 20 20 20 20 20 20 20 20 2-TRY.........js2-WHILE.........
30e80 6a 73 32 2d 57 49 54 48 29 0a 20 20 22 4e 6f 64 65 20 74 79 70 65 73 20 74 68 61 74 20 6f 6e 6c js2-WITH)..."Node.types.that.onl
30ea0 79 20 61 70 70 65 61 72 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 73 2e 0a y.appear.in.statement.contexts..
30ec0 54 68 65 20 6c 69 73 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 6e 6f 64 65 73 20 The.list.does.not.include.nodes.
30ee0 74 68 61 74 20 61 6c 77 61 79 73 20 61 70 70 65 61 72 20 61 73 20 74 68 65 20 63 68 69 6c 64 0a that.always.appear.as.the.child.
30f00 6f 66 20 61 6e 6f 74 68 65 72 20 73 70 65 63 69 66 69 63 20 73 74 61 74 65 6d 65 6e 74 20 74 79 of.another.specific.statement.ty
30f20 70 65 2c 20 73 75 63 68 20 61 73 20 73 77 69 74 63 68 2d 63 61 73 65 73 2c 0a 63 61 74 63 68 20 pe,.such.as.switch-cases,.catch.
30f40 61 6e 64 20 66 69 6e 61 6c 6c 79 20 62 6c 6f 63 6b 73 2c 20 61 6e 64 20 65 6c 73 65 2d 63 6c 61 and.finally.blocks,.and.else-cla
30f60 75 73 65 73 2e 20 20 54 68 65 20 6c 69 73 74 20 61 6c 73 6f 20 65 78 63 6c 75 64 65 73 0a 6e 6f uses...The.list.also.excludes.no
30f80 64 65 73 20 6c 69 6b 65 20 79 69 65 6c 64 2c 20 6c 65 74 20 61 6e 64 20 76 61 72 2c 20 77 68 69 des.like.yield,.let.and.var,.whi
30fa0 63 68 20 6d 61 79 20 61 70 70 65 61 72 20 69 6e 20 65 69 74 68 65 72 20 65 78 70 72 65 73 73 69 ch.may.appear.in.either.expressi
30fc0 6f 6e 0a 6f 72 20 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2c 20 61 6e 64 20 69 6e 20 on.or.statement.context,.and.in.
30fe0 74 68 65 20 6c 61 74 74 65 72 20 63 6f 6e 74 65 78 74 20 61 6c 77 61 79 73 20 68 61 76 65 20 61 the.latter.context.always.have.a
31000 0a 60 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 27 20 70 61 72 65 6e 74 2e 20 20 46 .`js2-expr-stmt-node'.parent...F
31020 69 6e 61 6c 6c 79 2c 20 74 68 65 20 6c 69 73 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 inally,.the.list.does.not.includ
31040 65 0a 66 75 6e 63 74 69 6f 6e 73 20 6f 72 20 73 63 72 69 70 74 73 2c 20 77 68 69 63 68 20 61 72 e.functions.or.scripts,.which.ar
31060 65 20 74 72 65 61 74 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 66 72 6f 6d 20 73 74 61 74 65 6d e.treated.separately.from.statem
31080 65 6e 74 73 0a 62 79 20 74 68 65 20 4a 61 76 61 53 63 72 69 70 74 20 70 61 72 73 65 72 20 61 6e ents.by.the.JavaScript.parser.an
310a0 64 20 72 75 6e 74 69 6d 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f d.runtime.")..(defun.js2-stmt-no
310c0 64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 48 65 75 72 69 73 74 69 63 20 66 6f 72 20 66 69 67 de-p.(node)..."Heuristic.for.fig
310e0 75 72 69 6e 67 20 6f 75 74 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 73 74 61 74 65 6d 65 6e 74 uring.out.if.NODE.is.a.statement
31100 2e 0a 53 6f 6d 65 20 6e 6f 64 65 20 74 79 70 65 73 20 63 61 6e 20 61 70 70 65 61 72 20 69 6e 20 ..Some.node.types.can.appear.in.
31120 65 69 74 68 65 72 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 63 6f 6e 74 65 78 74 20 6f 72 20 either.an.expression.context.or.
31140 61 0a 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2c 20 65 2e 67 2e 20 6c 65 74 2d 6e 6f a.statement.context,.e.g..let-no
31160 64 65 73 2c 20 79 69 65 6c 64 2d 6e 6f 64 65 73 2c 20 61 6e 64 20 76 61 72 2d 64 65 63 6c 20 6e des,.yield-nodes,.and.var-decl.n
31180 6f 64 65 73 2e 0a 46 6f 72 20 74 68 65 73 65 20 6e 6f 64 65 20 74 79 70 65 73 20 69 6e 20 61 20 odes..For.these.node.types.in.a.
311a0 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2c 20 74 68 65 20 70 61 72 65 6e 74 20 77 69 statement.context,.the.parent.wi
311c0 6c 6c 20 62 65 20 61 0a 60 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 27 2e 0a 46 75 ll.be.a.`js2-expr-stmt-node'..Fu
311e0 6e 63 74 69 6f 6e 73 20 61 72 65 6e 27 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 nctions.aren't.included.in.the.c
31200 68 65 63 6b 2e 22 0a 20 20 28 6d 65 6d 71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f heck."...(memq.(js2-node-type.no
31220 64 65 29 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d 74 79 70 65 73 29 29 0a 0a 28 64 65 66 75 de).js2-stmt-node-types))..(defu
31240 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 66 69 72 73 74 2d 73 74 6d 74 20 28 6e 6f 64 65 n.js2-mode-find-first-stmt.(node
31260 29 0a 20 20 22 53 65 61 72 63 68 20 75 70 77 61 72 64 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d )..."Search.upward.starting.from
31280 20 4e 4f 44 45 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 61 20 73 74 61 74 65 6d 65 6e 74 2e 0a 46 .NODE.looking.for.a.statement..F
312a0 6f 72 20 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 61 20 or.purposes.of.this.function,.a.
312c0 60 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 27 20 63 6f 75 6e 74 73 2e 22 0a 20 20 28 `js2-function-node'.counts."...(
312e0 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 20 while.(not.(or.(js2-stmt-node-p.
31300 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e node)...................(js2-fun
31320 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e ction-node-p.node))).....(setq.n
31340 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 6e ode.(js2-node-parent.node)))...n
31360 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 74 6d ode)..(defun.js2-node-parent-stm
31380 74 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 6f 64 65 27 73 20 66 69 t.(node)..."Return.the.node's.fi
313a0 72 73 74 20 61 6e 63 65 73 74 6f 72 20 74 68 61 74 20 69 73 20 61 20 73 74 61 74 65 6d 65 6e 74 rst.ancestor.that.is.a.statement
313c0 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 60 6a 73 32 2d ..Returns.nil.if.NODE.is.a.`js2-
313e0 61 73 74 2d 72 6f 6f 74 27 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 61 6e 79 20 65 78 70 72 65 73 ast-root'...Note.that.any.expres
31400 73 69 6f 6e 0a 61 70 70 65 61 72 69 6e 67 20 69 6e 20 61 20 73 74 61 74 65 6d 65 6e 74 20 63 6f sion.appearing.in.a.statement.co
31420 6e 74 65 78 74 20 77 69 6c 6c 20 68 61 76 65 20 61 20 70 61 72 65 6e 74 20 74 68 61 74 20 69 73 ntext.will.have.a.parent.that.is
31440 20 61 0a 60 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 27 20 74 68 61 74 20 77 69 6c .a.`js2-expr-stmt-node'.that.wil
31460 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 l.be.returned.by.this.function."
31480 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e ...(let.((parent.(js2-node-paren
314a0 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 75 6c 6c 20 70 61 72 65 t.node))).....(if.(or.(null.pare
314c0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 nt).............(js2-stmt-node-p
314e0 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 66 .parent).............(and.(js2-f
31500 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 unction-node-p.parent)..........
31520 20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66 ........(eq.(js2-function-node-f
31540 6f 72 6d 20 70 61 72 65 6e 74 29 20 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29 orm.parent).'FUNCTION_STATEMENT)
31560 29 29 0a 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 )).........parent.......(js2-nod
31580 65 2d 70 61 72 65 6e 74 2d 73 74 6d 74 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 3b 3b 20 49 6e 20 e-parent-stmt.parent))))..;;.In.
315a0 74 68 65 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 20 73 6f 75 72 63 65 73 2c 20 52 6f 73 68 61 the.Mozilla.Rhino.sources,.Rosha
315c0 6e 20 4a 61 6d 65 73 20 77 72 69 74 65 73 3a 0a 3b 3b 20 20 44 6f 65 73 20 63 6f 6e 73 69 73 74 n.James.writes:.;;..Does.consist
315e0 65 6e 74 2d 72 65 74 75 72 6e 20 61 6e 61 6c 79 73 69 73 20 6f 6e 20 74 68 65 20 66 75 6e 63 74 ent-return.analysis.on.the.funct
31600 69 6f 6e 20 62 6f 64 79 20 77 68 65 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 20 69 73 0a 3b 3b 20 ion.body.when.strict.mode.is.;;.
31620 20 65 6e 61 62 6c 65 64 2e 0a 3b 3b 0a 3b 3b 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 28 78 29 20 .enabled..;;.;;....function.(x).
31640 7b 20 72 65 74 75 72 6e 20 28 78 2b 31 29 20 7d 0a 3b 3b 0a 3b 3b 20 20 69 73 20 6f 6b 2c 20 62 {.return.(x+1).}.;;.;;..is.ok,.b
31660 75 74 0a 3b 3b 0a 3b 3b 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 28 78 29 20 7b 20 69 66 20 28 78 ut.;;.;;....function.(x).{.if.(x
31680 20 3c 20 30 29 20 72 65 74 75 72 6e 20 28 78 2b 31 29 3b 20 7d 0a 3b 3b 0a 3b 3b 20 20 69 73 20 .<.0).return.(x+1);.}.;;.;;..is.
316a0 6e 6f 74 20 62 65 63 61 75 73 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 70 6f 74 not.because.the.function.can.pot
316c0 65 6e 74 69 61 6c 6c 79 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 20 77 68 65 6e 20 74 68 65 entially.return.a.value.when.the
316e0 0a 3b 3b 20 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 73 61 74 69 73 66 69 65 64 20 61 6e 64 20 .;;..condition.is.satisfied.and.
31700 69 66 20 6e 6f 74 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 if.not,.the.function.does.not.ex
31720 70 6c 69 63 69 74 6c 79 0a 3b 3b 20 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 2e 0a 3b 3b 0a plicitly.;;..return.a.value..;;.
31740 3b 3b 20 20 54 68 69 73 20 65 78 74 65 6e 64 73 20 74 6f 20 63 68 65 63 6b 69 6e 67 20 6d 69 73 ;;..This.extends.to.checking.mis
31760 6d 61 74 63 68 65 73 20 73 75 63 68 20 61 73 20 22 72 65 74 75 72 6e 22 20 61 6e 64 20 22 72 65 matches.such.as."return".and."re
31780 74 75 72 6e 20 3c 76 61 6c 75 65 3e 22 0a 3b 3b 20 20 75 73 65 64 20 69 6e 20 74 68 65 20 73 61 turn.<value>".;;..used.in.the.sa
317a0 6d 65 20 66 75 6e 63 74 69 6f 6e 2e 20 57 61 72 6e 69 6e 67 73 20 61 72 65 20 6e 6f 74 20 65 6d me.function..Warnings.are.not.em
317c0 69 74 74 65 64 20 69 66 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 0a 3b 3b 20 20 72 65 74 75 72 6e itted.if.inconsistent.;;..return
317e0 73 20 65 78 69 73 74 20 69 6e 20 63 6f 64 65 20 74 68 61 74 20 63 61 6e 20 62 65 20 73 74 61 74 s.exist.in.code.that.can.be.stat
31800 69 63 61 6c 6c 79 20 73 68 6f 77 6e 20 74 6f 20 62 65 20 75 6e 72 65 61 63 68 61 62 6c 65 2e 0a ically.shown.to.be.unreachable..
31820 3b 3b 20 20 45 78 2e 0a 3b 3b 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 28 78 29 20 7b 20 77 68 69 ;;..Ex..;;....function.(x).{.whi
31840 6c 65 20 28 74 72 75 65 29 20 7b 20 2e 2e 2e 20 69 66 20 28 2e 2e 29 20 7b 20 72 65 74 75 72 6e le.(true).{.....if.(..).{.return
31860 20 76 61 6c 75 65 20 7d 20 2e 2e 2e 20 7d 20 7d 0a 3b 3b 0a 3b 3b 20 20 65 6d 69 74 73 20 6e 6f .value.}.....}.}.;;.;;..emits.no
31880 20 77 61 72 6e 69 6e 67 2e 20 48 6f 77 65 76 65 72 20 69 66 20 74 68 65 20 6c 6f 6f 70 20 68 61 .warning..However.if.the.loop.ha
318a0 64 20 61 20 62 72 65 61 6b 20 73 74 61 74 65 6d 65 6e 74 2c 20 74 68 65 6e 20 61 0a 3b 3b 20 20 d.a.break.statement,.then.a.;;..
318c0 77 61 72 6e 69 6e 67 20 77 6f 75 6c 64 20 62 65 20 65 6d 69 74 74 65 64 2e 0a 3b 3b 0a 3b 3b 20 warning.would.be.emitted..;;.;;.
318e0 20 54 68 65 20 63 6f 6e 73 69 73 74 65 6e 63 79 20 61 6e 61 6c 79 73 69 73 20 6c 6f 6f 6b 73 20 .The.consistency.analysis.looks.
31900 61 74 20 63 6f 6e 74 72 6f 6c 20 73 74 72 75 63 74 75 72 65 73 20 73 75 63 68 20 61 73 20 6c 6f at.control.structures.such.as.lo
31920 6f 70 73 2c 20 69 66 73 2c 0a 3b 3b 20 20 73 77 69 74 63 68 2c 20 74 72 79 2d 63 61 74 63 68 2d ops,.ifs,.;;..switch,.try-catch-
31940 66 69 6e 61 6c 6c 79 20 62 6c 6f 63 6b 73 2c 20 65 78 61 6d 69 6e 65 73 20 74 68 65 20 72 65 61 finally.blocks,.examines.the.rea
31960 63 68 61 62 6c 65 20 63 6f 64 65 20 70 61 74 68 73 20 61 6e 64 0a 3b 3b 20 20 77 61 72 6e 73 20 chable.code.paths.and.;;..warns.
31980 74 68 65 20 75 73 65 72 20 61 62 6f 75 74 20 61 6e 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 73 the.user.about.an.inconsistent.s
319a0 65 74 20 6f 66 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 70 6f 73 73 69 62 69 6c 69 74 69 65 73 2e et.of.termination.possibilities.
319c0 0a 3b 3b 0a 3b 3b 20 20 54 68 65 73 65 20 66 6c 61 67 73 20 65 6e 75 6d 65 72 61 74 65 20 74 68 .;;.;;..These.flags.enumerate.th
319e0 65 20 70 6f 73 73 69 62 6c 65 20 77 61 79 73 20 61 20 73 74 61 74 65 6d 65 6e 74 2f 66 75 6e 63 e.possible.ways.a.statement/func
31a00 74 69 6f 6e 20 63 61 6e 0a 3b 3b 20 20 74 65 72 6d 69 6e 61 74 65 2e 20 54 68 65 73 65 20 66 6c tion.can.;;..terminate..These.fl
31a20 61 67 73 20 61 72 65 20 75 73 65 64 20 62 79 20 65 6e 64 43 68 65 63 6b 28 29 20 61 6e 64 20 62 ags.are.used.by.endCheck().and.b
31a40 79 20 74 68 65 20 50 61 72 73 65 72 20 74 6f 0a 3b 3b 20 20 64 65 74 65 63 74 20 69 6e 63 6f 6e y.the.Parser.to.;;..detect.incon
31a60 73 69 73 74 65 6e 74 20 72 65 74 75 72 6e 20 75 73 61 67 65 2e 0a 3b 3b 0a 3b 3b 20 20 45 4e 44 sistent.return.usage..;;.;;..END
31a80 5f 55 4e 52 45 41 43 48 45 44 20 69 73 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 63 6f 64 65 20 _UNREACHED.is.reserved.for.code.
31aa0 70 61 74 68 73 20 74 68 61 74 20 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 61 6c 77 61 79 73 paths.that.are.assumed.to.always
31ac0 20 62 65 0a 3b 3b 20 20 61 62 6c 65 20 74 6f 20 65 78 65 63 75 74 65 20 28 65 78 61 6d 70 6c 65 .be.;;..able.to.execute.(example
31ae0 3a 20 74 68 72 6f 77 2c 20 63 6f 6e 74 69 6e 75 65 29 0a 3b 3b 0a 3b 3b 20 20 45 4e 44 5f 44 52 :.throw,.continue).;;.;;..END_DR
31b00 4f 50 53 5f 4f 46 46 20 69 6e 64 69 63 61 74 65 73 20 69 66 20 74 68 65 20 73 74 61 74 65 6d 65 OPS_OFF.indicates.if.the.stateme
31b20 6e 74 20 63 61 6e 20 74 72 61 6e 73 66 65 72 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 0a 3b nt.can.transfer.control.to.the.;
31b40 3b 20 20 6e 65 78 74 20 6f 6e 65 2e 20 53 74 61 74 65 6d 65 6e 74 20 73 75 63 68 20 61 73 20 72 ;..next.one..Statement.such.as.r
31b60 65 74 75 72 6e 20 64 6f 6e 74 2e 20 41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 eturn.dont..A.compound.statement
31b80 20 6d 61 79 20 68 61 76 65 0a 3b 3b 20 20 73 6f 6d 65 20 62 72 61 6e 63 68 20 74 68 61 74 20 64 .may.have.;;..some.branch.that.d
31ba0 72 6f 70 73 20 6f 66 66 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 20 6e 65 78 74 20 73 74 61 rops.off.control.to.the.next.sta
31bc0 74 65 6d 65 6e 74 2e 0a 3b 3b 0a 3b 3b 20 20 45 4e 44 5f 52 45 54 55 52 4e 53 20 69 6e 64 69 63 tement..;;.;;..END_RETURNS.indic
31be0 61 74 65 73 20 74 68 61 74 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 72 65 74 75 ates.that.the.statement.can.retu
31c00 72 6e 20 77 69 74 68 20 6e 6f 20 76 61 6c 75 65 2e 0a 3b 3b 20 20 45 4e 44 5f 52 45 54 55 52 4e rn.with.no.value..;;..END_RETURN
31c20 53 5f 56 41 4c 55 45 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 20 73 74 61 74 65 S_VALUE.indicates.that.the.state
31c40 6d 65 6e 74 20 63 61 6e 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 2e 0a 3b 3b 0a 3b 3b 20 20 ment.can.return.a.value..;;.;;..
31c60 41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 73 75 63 68 20 61 73 0a 3b 3b 20 A.compound.statement.such.as.;;.
31c80 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 7b 0a 3b 3b 20 20 20 20 72 65 74 75 72 6e 20 76 .if.(condition).{.;;....return.v
31ca0 61 6c 75 65 3b 0a 3b 3b 20 20 7d 0a 3b 3b 20 20 57 69 6c 6c 20 62 65 20 64 65 74 65 63 74 65 64 alue;.;;..}.;;..Will.be.detected
31cc0 20 61 73 20 28 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 7c 20 45 4e 44 5f 52 45 54 55 52 4e 5f .as.(END_DROPS_OFF.|.END_RETURN_
31ce0 56 41 4c 55 45 29 20 62 79 20 65 6e 64 43 68 65 63 6b 28 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 VALUE).by.endCheck()..(defconst.
31d00 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43 48 45 44 20 30 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a js2-END_UNREACHED.0).(defconst.j
31d20 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 31 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 s2-END_DROPS_OFF.1).(defconst.js
31d40 32 2d 45 4e 44 5f 52 45 54 55 52 4e 53 20 32 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 45 2-END_RETURNS.2).(defconst.js2-E
31d60 4e 44 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 20 34 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 ND_RETURNS_VALUE.4).(defconst.js
31d80 32 2d 45 4e 44 5f 59 49 45 4c 44 53 20 38 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 61 73 2d 2-END_YIELDS.8)..(defun.js2-has-
31da0 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 75 73 61 67 65 20 28 6e 6f 64 65 29 0a 20 consistent-return-usage.(node)..
31dc0 20 22 43 68 65 63 6b 20 74 68 61 74 20 65 76 65 72 79 20 72 65 74 75 72 6e 20 75 73 61 67 65 20 ."Check.that.every.return.usage.
31de0 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 20 69 73 20 63 6f 6e 73 69 73 74 65 6e 74 in.a.function.body.is.consistent
31e00 2e 0a 52 65 74 75 72 6e 73 20 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 ..Returns.t.if.the.function.sati
31e20 73 66 69 65 73 20 73 74 72 69 63 74 20 6d 6f 64 65 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 22 0a sfies.strict.mode.requirement.".
31e40 20 20 28 6c 65 74 20 28 28 6e 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 6e 6f 64 65 29 29 ..(let.((n.(js2-end-check.node))
31e60 29 0a 20 20 20 20 3b 3b 20 65 69 74 68 65 72 20 69 74 20 64 6f 65 73 6e 27 74 20 72 65 74 75 72 ).....;;.either.it.doesn't.retur
31e80 6e 20 61 20 76 61 6c 75 65 20 69 6e 20 61 6e 79 20 62 72 61 6e 63 68 2e 2e 2e 0a 20 20 20 20 28 n.a.value.in.any.branch........(
31ea0 6f 72 20 28 6a 73 32 2d 66 6c 61 67 2d 6e 6f 74 2d 73 65 74 2d 70 20 6e 20 6a 73 32 2d 45 4e 44 or.(js2-flag-not-set-p.n.js2-END
31ec0 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 74 _RETURNS_VALUE).........;;.or.it
31ee0 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65 20 28 6f 72 20 69 73 20 75 6e 72 65 61 63 68 65 .returns.a.value.(or.is.unreache
31f00 64 29 20 61 74 20 65 76 65 72 79 20 62 72 61 6e 63 68 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d d).at.every.branch.........(js2-
31f20 66 6c 61 67 2d 6e 6f 74 2d 73 65 74 2d 70 20 6e 20 28 6c 6f 67 69 6f 72 20 6a 73 32 2d 45 4e 44 flag-not-set-p.n.(logior.js2-END
31f40 5f 44 52 4f 50 53 5f 4f 46 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _DROPS_OFF......................
31f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 52 45 54 55 52 4e 53 .................js2-END_RETURNS
31f80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31fa0 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 59 49 45 4c 44 53 29 29 29 29 29 0a 0a 28 64 65 66 .......js2-END_YIELDS)))))..(def
31fc0 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 69 66 20 28 6e 6f 64 65 29 0a 20 20 22 45 6e un.js2-end-check-if.(node)..."En
31fe0 73 75 72 65 20 74 68 61 74 20 72 65 74 75 72 6e 20 75 73 61 67 65 20 69 6e 20 74 68 65 6e 2f 65 sure.that.return.usage.in.then/e
32000 6c 73 65 20 62 6c 6f 63 6b 73 20 69 73 20 63 6f 6e 73 69 73 74 65 6e 74 2e 0a 49 66 20 74 68 65 lse.blocks.is.consistent..If.the
32020 72 65 20 69 73 20 6e 6f 20 65 6c 73 65 20 62 6c 6f 63 6b 2c 20 74 68 65 6e 20 74 68 65 20 72 65 re.is.no.else.block,.then.the.re
32040 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 2e turn.statement.can.fall.through.
32060 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 .Returns.logical.OR.of.END_*.fla
32080 67 73 22 0a 20 20 28 6c 65 74 20 28 28 74 68 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 74 68 65 gs"...(let.((th.(js2-if-node-the
320a0 6e 2d 70 61 72 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 65 6c 20 28 6a 73 32 2d 69 n-part.node)).........(el.(js2-i
320c0 66 2d 6e 6f 64 65 2d 65 6c 73 65 2d 70 61 72 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 f-node-else-part.node))).....(if
320e0 20 28 6e 75 6c 6c 20 74 68 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 .(null.th).........js2-END_UNREA
32100 43 48 45 44 0a 20 20 20 20 20 20 28 6c 6f 67 69 6f 72 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 CHED.......(logior.(js2-end-chec
32120 6b 20 74 68 29 20 28 69 66 20 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k.th).(if.el....................
32140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b ..................(js2-end-check
32160 20 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .el)............................
32180 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 29 29 29 0a 0a ........js2-END_DROPS_OFF)))))..
321a0 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 73 77 69 74 63 68 20 28 6e 6f 64 (defun.js2-end-check-switch.(nod
321c0 65 29 0a 20 20 22 43 6f 6e 73 69 73 74 65 6e 63 79 20 6f 66 20 72 65 74 75 72 6e 20 73 74 61 74 e)..."Consistency.of.return.stat
321e0 65 6d 65 6e 74 73 20 69 73 20 63 68 65 63 6b 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 20 63 61 ements.is.checked.between.the.ca
32200 73 65 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 64 65 se.statements..If.there.is.no.de
32220 66 61 75 6c 74 2c 20 74 68 65 6e 20 74 68 65 20 73 77 69 74 63 68 20 63 61 6e 20 66 61 6c 6c 20 fault,.then.the.switch.can.fall.
32240 74 68 72 6f 75 67 68 2e 20 49 66 20 74 68 65 72 65 20 69 73 20 61 0a 64 65 66 61 75 6c 74 2c 20 through..If.there.is.a.default,.
32260 77 65 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 61 6c 6c 20 63 6f 64 65 20 70 61 74 68 we.check.to.see.if.all.code.path
32280 73 20 69 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 72 65 74 75 72 6e 20 6f 72 20 69 66 0a 74 68 s.in.the.default.return.or.if.th
322a0 65 72 65 20 69 73 20 61 20 63 6f 64 65 20 70 61 74 68 20 74 68 61 74 20 63 61 6e 20 66 61 6c 6c ere.is.a.code.path.that.can.fall
322c0 20 74 68 72 6f 75 67 68 2e 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 .through..Returns.logical.OR.of.
322e0 45 4e 44 5f 2a 20 66 6c 61 67 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 76 20 6a 73 32 2d 45 4e END_*.flags."...(let.((rv.js2-EN
32300 44 5f 55 4e 52 45 41 43 48 45 44 29 0a 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 2d 63 61 73 D_UNREACHED).........default-cas
32320 65 29 0a 20 20 20 20 3b 3b 20 65 78 61 6d 69 6e 65 20 74 68 65 20 63 61 73 65 73 0a 20 20 20 20 e).....;;.examine.the.cases.....
32340 28 63 61 74 63 68 20 27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 20 28 (catch.'break.......(dolist.(c.(
32360 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 63 61 73 65 73 20 6e 6f 64 65 29 29 0a 20 20 20 js2-switch-node-cases.node))....
32380 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 2d 65 78 70 72 20 63 29 0a .....(if.(js2-case-node-expr.c).
323a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73 ............(js2-set-flag.rv.(js
323c0 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 62 6c 6f 63 6b 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 2-end-check-block.c))...........
323e0 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 63 61 73 65 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 (setq.default-case.c)...........
32400 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 (throw.'break.nil)))).....;;.we.
32420 64 6f 6e 27 74 20 63 61 72 65 20 68 6f 77 20 74 68 65 20 63 61 73 65 73 20 64 72 6f 70 20 69 6e don't.care.how.the.cases.drop.in
32440 74 6f 20 65 61 63 68 20 6f 74 68 65 72 0a 20 20 20 20 28 6a 73 32 2d 63 6c 65 61 72 2d 66 6c 61 to.each.other.....(js2-clear-fla
32460 67 20 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 0a 20 20 20 20 3b 3b 20 65 g.rv.js2-END_DROPS_OFF).....;;.e
32480 78 61 6d 69 6e 65 20 74 68 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d xamine.the.default.....(js2-set-
324a0 66 6c 61 67 20 72 76 20 28 69 66 20 64 65 66 61 75 6c 74 2d 63 61 73 65 0a 20 20 20 20 20 20 20 flag.rv.(if.default-case........
324c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b ..................(js2-end-check
324e0 20 64 65 66 61 75 6c 74 2d 63 61 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .default-case)..................
32500 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 20 20 20 20 72 76 ......js2-END_DROPS_OFF)).....rv
32520 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 74 72 79 20 28 6e 6f ))..(defun.js2-end-check-try.(no
32540 64 65 29 0a 20 22 49 66 20 74 68 65 20 62 6c 6f 63 6b 20 68 61 73 20 61 20 66 69 6e 61 6c 6c 79 de).."If.the.block.has.a.finally
32560 2c 20 72 65 74 75 72 6e 20 63 6f 6e 73 69 73 74 65 6e 63 79 20 69 73 20 63 68 65 63 6b 65 64 20 ,.return.consistency.is.checked.
32580 69 6e 20 74 68 65 0a 66 69 6e 61 6c 6c 79 20 62 6c 6f 63 6b 2e 20 49 66 20 61 6c 6c 20 63 6f 64 in.the.finally.block..If.all.cod
325a0 65 20 70 61 74 68 73 20 69 6e 20 74 68 65 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 2c 20 74 e.paths.in.the.finally.return,.t
325c0 68 65 6e 20 74 68 65 0a 72 65 74 75 72 6e 73 20 69 6e 20 74 68 65 20 74 72 79 2d 63 61 74 63 68 hen.the.returns.in.the.try-catch
325e0 20 62 6c 6f 63 6b 73 20 64 6f 6e 27 74 20 6d 61 74 74 65 72 2e 20 49 66 20 74 68 65 72 65 20 69 .blocks.don't.matter..If.there.i
32600 73 20 61 20 63 6f 64 65 20 70 61 74 68 0a 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 72 65 74 75 s.a.code.path.that.does.not.retu
32620 72 6e 20 6f 72 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 66 69 6e 61 6c 6c 79 20 62 6c 6f rn.or.if.there.is.no.finally.blo
32640 63 6b 2c 20 74 68 65 20 72 65 74 75 72 6e 73 0a 6f 66 20 74 68 65 20 74 72 79 20 61 6e 64 20 63 ck,.the.returns.of.the.try.and.c
32660 61 74 63 68 20 62 6c 6f 63 6b 73 20 61 72 65 20 63 68 65 63 6b 65 64 20 66 6f 72 20 6d 69 73 6d atch.blocks.are.checked.for.mism
32680 61 74 63 68 2e 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f atch..Returns.logical.OR.of.END_
326a0 2a 20 66 6c 61 67 73 2e 22 0a 20 28 6c 65 74 20 28 28 66 69 6e 61 6c 6c 79 20 28 6a 73 32 2d 74 *.flags."..(let.((finally.(js2-t
326c0 72 79 2d 6e 6f 64 65 2d 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 6e 6f 64 65 29 29 0a 20 20 20 ry-node-finally-block.node))....
326e0 20 20 20 20 72 76 29 0a 20 20 20 3b 3b 20 63 68 65 63 6b 20 74 68 65 20 66 69 6e 61 6c 6c 79 20 ....rv)....;;.check.the.finally.
32700 69 66 20 69 74 20 65 78 69 73 74 73 0a 20 20 20 28 73 65 74 71 20 72 76 20 28 69 66 20 66 69 6e if.it.exists....(setq.rv.(if.fin
32720 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 ally.................(js2-end-ch
32740 65 63 6b 20 28 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 69 6e 61 6c eck.(js2-finally-node-body.final
32760 6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 ly))...............js2-END_DROPS
32780 5f 4f 46 46 29 29 0a 20 20 20 3b 3b 20 49 66 20 74 68 65 20 66 69 6e 61 6c 6c 79 20 62 6c 6f 63 _OFF))....;;.If.the.finally.bloc
327a0 6b 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 2c 20 74 68 65 6e 20 6e 6f 6e 65 20 6f 66 20 74 k.always.returns,.then.none.of.t
327c0 68 65 20 72 65 74 75 72 6e 73 0a 20 20 20 3b 3b 20 69 6e 20 74 68 65 20 74 72 79 20 6f 72 20 63 he.returns....;;.in.the.try.or.c
327e0 61 74 63 68 20 62 6c 6f 63 6b 73 20 6d 61 74 74 65 72 2e 0a 20 20 20 28 77 68 65 6e 20 28 6a 73 atch.blocks.matter.....(when.(js
32800 32 2d 66 6c 61 67 2d 73 65 74 2d 70 20 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 2-flag-set-p.rv.js2-END_DROPS_OF
32820 46 29 0a 20 20 20 20 20 28 6a 73 32 2d 63 6c 65 61 72 2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45 F)......(js2-clear-flag.rv.js2-E
32840 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 0a 20 20 20 20 20 3b 3b 20 65 78 61 6d 69 6e 65 20 74 68 ND_DROPS_OFF)......;;.examine.th
32860 65 20 74 72 79 20 62 6c 6f 63 6b 0a 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72 e.try.block......(js2-set-flag.r
32880 76 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 74 v.(js2-end-check.(js2-try-node-t
328a0 72 79 2d 62 6c 6f 63 6b 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 65 ry-block.node)))......;;.check.e
328c0 61 63 68 20 63 61 74 63 68 20 62 6c 6f 63 6b 0a 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 62 ach.catch.block......(dolist.(cb
328e0 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c 61 75 73 65 73 20 6e 6f 64 .(js2-try-node-catch-clauses.nod
32900 65 29 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73 32 e))........(js2-set-flag.rv.(js2
32920 2d 65 6e 64 2d 63 68 65 63 6b 20 63 62 29 29 29 29 0a 20 20 20 72 76 29 29 0a 0a 28 64 65 66 75 -end-check.cb))))....rv))..(defu
32940 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 6c 6f 6f 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 n.js2-end-check-loop.(node)..."R
32960 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c 6f 6f 70 20 62 6f 64 79 eturn.statement.in.the.loop.body
32980 20 6d 75 73 74 20 62 65 20 63 6f 6e 73 69 73 74 65 6e 74 2e 0a 54 68 65 20 64 65 66 61 75 6c 74 .must.be.consistent..The.default
329a0 20 61 73 73 75 6d 70 74 69 6f 6e 20 66 6f 72 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 61 20 6c 6f .assumption.for.any.kind.of.a.lo
329c0 6f 70 20 69 73 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 65 76 65 6e 74 75 61 6c 6c 79 0a 74 65 op.is.that.it.will.eventually.te
329e0 72 6d 69 6e 61 74 65 2e 20 20 54 68 65 20 6f 6e 6c 79 20 65 78 63 65 70 74 69 6f 6e 20 69 73 20 rminate...The.only.exception.is.
32a00 61 20 6c 6f 6f 70 20 77 69 74 68 20 61 20 63 6f 6e 73 74 61 6e 74 20 74 72 75 65 20 63 6f 6e 64 a.loop.with.a.constant.true.cond
32a20 69 74 69 6f 6e 2e 0a 43 6f 64 65 20 74 68 61 74 20 66 6f 6c 6c 6f 77 73 20 73 75 63 68 20 61 20 ition..Code.that.follows.such.a.
32a40 6c 6f 6f 70 20 69 73 20 65 78 61 6d 69 6e 65 64 20 6f 6e 6c 79 20 69 66 20 6f 6e 65 20 63 61 6e loop.is.examined.only.if.one.can
32a60 20 64 65 74 65 72 6d 69 6e 65 0a 73 74 61 74 69 63 61 6c 6c 79 20 74 68 61 74 20 74 68 65 72 65 .determine.statically.that.there
32a80 20 69 73 20 61 20 62 72 65 61 6b 20 6f 75 74 20 6f 66 20 74 68 65 20 6c 6f 6f 70 2e 0a 0a 20 20 .is.a.break.out.of.the.loop.....
32aa0 20 20 66 6f 72 28 2e 2e 2e 20 3b 20 2e 2e 2e 20 3b 20 2e 2e 2e 29 20 7b 7d 0a 20 20 20 20 66 6f ..for(....;.....;....).{}.....fo
32ac0 72 28 2e 2e 2e 20 69 6e 20 2e 2e 2e 20 29 20 7b 7d 0a 20 20 20 20 77 68 69 6c 65 28 2e 2e 2e 29 r(....in.....).{}.....while(...)
32ae0 20 7b 20 7d 0a 20 20 20 20 64 6f 20 7b 20 7d 20 77 68 69 6c 65 28 2e 2e 2e 29 0a 0a 52 65 74 75 .{.}.....do.{.}.while(...)..Retu
32b00 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 2e 22 0a rns.logical.OR.of.END_*.flags.".
32b20 20 20 28 6c 65 74 20 28 28 72 76 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 28 6a 73 32 2d ..(let.((rv.(js2-end-check.(js2-
32b40 6c 6f 6f 70 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 loop-node-body.node))).........(
32b60 63 6f 6e 64 69 74 69 6f 6e 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 condition.(cond.................
32b80 20 20 20 20 28 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 ....((js2-while-node-p.node)....
32ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 ..................(js2-while-nod
32bc0 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e-condition.node))..............
32be0 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 ........((js2-do-node-p.node)...
32c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 ....................(js2-do-node
32c20 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -condition.node))...............
32c40 20 20 20 20 20 20 20 28 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 .......((js2-for-node-p.node)...
32c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 ....................(js2-for-nod
32c80 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 63 68 e-condition.node)))))......;;.ch
32ca0 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e eck.to.see.if.the.loop.condition
32cc0 20 69 73 20 61 6c 77 61 79 73 20 74 72 75 65 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 63 6f 6e .is.always.true.....(if.(and.con
32ce0 64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32 2d 61 6c 77 dition..............(eq.(js2-alw
32d00 61 79 73 2d 64 65 66 69 6e 65 64 2d 62 6f 6f 6c 65 61 6e 2d 70 20 63 6f 6e 64 69 74 69 6f 6e 29 ays-defined-boolean-p.condition)
32d20 20 27 41 4c 57 41 59 53 5f 54 52 55 45 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 65 .'ALWAYS_TRUE)).........(js2-cle
32d40 61 72 2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 0a ar-flag.rv.js2-END_DROPS_OFF))..
32d60 20 20 20 20 3b 3b 20 6c 6f 6f 6b 20 66 6f 72 20 65 66 66 65 63 74 20 6f 66 20 62 72 65 61 6b 73 ....;;.look.for.effect.of.breaks
32d80 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73 32 2d 6e 6f 64 65 2d .....(js2-set-flag.rv.(js2-node-
32da0 67 65 74 2d 70 72 6f 70 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 get-prop.node...................
32dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 43 4f 4e 54 52 4f 4c 5f 42 ......................'CONTROL_B
32de0 4c 4f 43 4b 5f 50 52 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LOCK_PROP.......................
32e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43 ..................js2-END_UNREAC
32e20 48 45 44 29 29 0a 20 20 20 20 72 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 HED)).....rv))..(defun.js2-end-c
32e40 68 65 63 6b 2d 62 6c 6f 63 6b 20 28 6e 6f 64 65 29 0a 20 20 22 41 20 67 65 6e 65 72 61 6c 20 62 heck-block.(node)..."A.general.b
32e60 6c 6f 63 6b 20 6f 66 20 63 6f 64 65 20 69 73 20 65 78 61 6d 69 6e 65 64 20 73 74 61 74 65 6d 65 lock.of.code.is.examined.stateme
32e80 6e 74 20 62 79 20 73 74 61 74 65 6d 65 6e 74 2e 0a 49 66 20 61 6e 79 20 73 74 61 74 65 6d 65 6e nt.by.statement..If.any.statemen
32ea0 74 20 28 65 76 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 6f 6e 65 29 20 72 65 74 75 72 6e 73 20 t.(even.a.compound.one).returns.
32ec0 69 6e 20 61 6c 6c 20 62 72 61 6e 63 68 65 73 2c 20 74 68 65 6e 0a 73 75 62 73 65 71 75 65 6e 74 in.all.branches,.then.subsequent
32ee0 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 6e 6f 74 20 65 78 61 6d 69 6e 65 64 2e 0a 52 65 .statements.are.not.examined..Re
32f00 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 2e turns.logical.OR.of.END_*.flags.
32f20 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 "...(let*.((rv.js2-END_DROPS_OFF
32f40 29 0a 20 20 20 20 20 20 20 20 20 28 6b 69 64 73 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 )..........(kids.(js2-block-node
32f60 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 20 28 63 61 72 20 6b 69 -kids.node))..........(n.(car.ki
32f80 64 73 29 29 29 0a 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e ds))).....;;.Check.each.statemen
32fa0 74 2e 20 20 49 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 63 6f 6e 74 69 6e 75 t...If.the.statement.can.continu
32fc0 65 20 6f 6e 74 6f 20 74 68 65 20 6e 65 78 74 0a 20 20 20 20 3b 3b 20 6f 6e 65 20 28 69 2e 65 2e e.onto.the.next.....;;.one.(i.e.
32fe0 20 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 69 73 20 73 65 74 29 2c 20 74 68 65 6e 20 63 68 65 .END_DROPS_OFF.is.set),.then.che
33000 63 6b 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 28 77 68 69 6c ck.the.next.statement......(whil
33020 65 20 28 61 6e 64 20 6e 20 28 6a 73 32 2d 66 6c 61 67 2d 73 65 74 2d 70 20 72 76 20 6a 73 32 2d e.(and.n.(js2-flag-set-p.rv.js2-
33040 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 65 61 72 END_DROPS_OFF)).......(js2-clear
33060 2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 0a 20 20 20 20 -flag.rv.js2-END_DROPS_OFF).....
33080 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 ..(js2-set-flag.rv.(js2-end-chec
330a0 6b 20 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 6b 69 64 73 k.n)).......(setq.kids.(cdr.kids
330c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 20 28 63 61 72 20 6b 69 64 73 29 29 29 0a 20 20 20 ).............n.(car.kids)))....
330e0 20 72 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 6c 61 62 65 .rv))..(defun.js2-end-check-labe
33100 6c 20 28 6e 6f 64 65 29 0a 20 20 22 41 20 6c 61 62 65 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 l.(node)..."A.labeled.statement.
33120 69 6d 70 6c 69 65 73 20 74 68 61 74 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 62 72 65 61 implies.that.there.may.be.a.brea
33140 6b 20 74 6f 20 74 68 65 20 6c 61 62 65 6c 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f k.to.the.label..The.function.pro
33160 63 65 73 73 65 73 20 74 68 65 20 6c 61 62 65 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 61 6e 64 cesses.the.labeled.statement.and
33180 20 74 68 65 6e 20 63 68 65 63 6b 73 20 74 68 65 0a 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 5f 50 .then.checks.the.CONTROL_BLOCK_P
331a0 52 4f 50 20 70 72 6f 70 65 72 74 79 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 72 65 20 69 73 20 ROP.property.to.see.if.there.is.
331c0 65 76 65 72 20 61 20 62 72 65 61 6b 20 74 6f 20 74 68 65 0a 70 61 72 74 69 63 75 6c 61 72 20 6c ever.a.break.to.the.particular.l
331e0 61 62 65 6c 2e 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f abel..Returns.logical.OR.of.END_
33200 2a 20 66 6c 61 67 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 76 20 28 6a 73 32 2d 65 6e 64 2d 63 *.flags."...(let.((rv.(js2-end-c
33220 68 65 63 6b 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 heck.(js2-labeled-stmt-node-stmt
33240 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 28 6c 6f 67 69 6f 72 20 72 76 20 28 6a 73 32 2d 6e 6f .node)))).....(logior.rv.(js2-no
33260 64 65 2d 67 65 74 2d 70 72 6f 70 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-get-prop.node................
33280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 ...................'CONTROL_BLOC
332a0 4b 5f 50 52 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 K_PROP..........................
332c0 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43 48 45 44 29 29 29 29 0a 0a .........js2-END_UNREACHED))))..
332e0 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 62 72 65 61 6b 20 28 6e 6f 64 65 (defun.js2-end-check-break.(node
33300 29 0a 20 20 22 57 68 65 6e 20 61 20 62 72 65 61 6b 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 )..."When.a.break.is.encountered
33320 20 61 6e 6e 6f 74 61 74 65 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 62 65 69 6e 67 20 62 72 .annotate.the.statement.being.br
33340 6f 6b 65 6e 0a 6f 75 74 20 6f 66 20 62 79 20 73 65 74 74 69 6e 67 20 69 74 73 20 43 4f 4e 54 52 oken.out.of.by.setting.its.CONTR
33360 4f 4c 5f 42 4c 4f 43 4b 5f 50 52 4f 50 20 70 72 6f 70 65 72 74 79 2e 0a 52 65 74 75 72 6e 73 20 OL_BLOCK_PROP.property..Returns.
33380 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 2e 22 0a 20 20 28 61 logical.OR.of.END_*.flags."...(a
333a0 6e 64 20 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 0a nd.(js2-break-node-target.node).
333c0 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70 72 6f 70 20 28 6a 73 32 2d 62 .......(js2-node-set-prop.(js2-b
333e0 72 65 61 6b 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 reak-node-target.node)..........
33400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 5f .................'CONTROL_BLOCK_
33420 50 52 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a PROP...........................j
33440 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 s2-END_DROPS_OFF))...js2-END_UNR
33460 45 41 43 48 45 44 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 28 6e EACHED)..(defun.js2-end-check.(n
33480 6f 64 65 29 0a 20 20 22 45 78 61 6d 69 6e 65 20 74 68 65 20 62 6f 64 79 20 6f 66 20 61 20 66 75 ode)..."Examine.the.body.of.a.fu
334a0 6e 63 74 69 6f 6e 2c 20 64 6f 69 6e 67 20 61 20 62 61 73 69 63 20 72 65 61 63 68 61 62 69 6c 69 nction,.doing.a.basic.reachabili
334c0 74 79 20 61 6e 61 6c 79 73 69 73 2e 0a 52 65 74 75 72 6e 73 20 61 20 63 6f 6d 62 69 6e 61 74 69 ty.analysis..Returns.a.combinati
334e0 6f 6e 20 6f 66 20 66 6c 61 67 73 20 45 4e 44 5f 2a 20 66 6c 61 67 73 20 74 68 61 74 20 69 6e 64 on.of.flags.END_*.flags.that.ind
33500 69 63 61 74 65 0a 68 6f 77 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 69 6f 6e icate.how.the.function.execution
33520 20 63 61 6e 20 74 65 72 6d 69 6e 61 74 65 2e 20 54 68 65 73 65 20 63 6f 6e 73 74 69 74 75 74 65 .can.terminate..These.constitute
33540 20 6f 6e 6c 79 20 74 68 65 0a 70 65 73 73 69 6d 69 73 74 69 63 20 73 65 74 20 6f 66 20 74 65 72 .only.the.pessimistic.set.of.ter
33560 6d 69 6e 61 74 69 6f 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 20 49 74 20 69 73 20 70 6f 73 73 69 mination.conditions..It.is.possi
33580 62 6c 65 20 74 68 61 74 20 61 74 0a 72 75 6e 74 69 6d 65 20 63 65 72 74 61 69 6e 20 63 6f 64 65 ble.that.at.runtime.certain.code
335a0 20 70 61 74 68 73 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 61 63 74 75 61 6c 6c 79 20 74 61 .paths.will.never.be.actually.ta
335c0 6b 65 6e 2e 20 48 65 6e 63 65 20 74 68 69 73 0a 61 6e 61 6c 79 73 69 73 20 77 69 6c 6c 20 66 6c ken..Hence.this.analysis.will.fl
335e0 61 67 20 65 72 72 6f 72 73 20 69 6e 20 63 61 73 65 73 20 77 68 65 72 65 20 74 68 65 72 65 20 6d ag.errors.in.cases.where.there.m
33600 61 79 20 6e 6f 74 20 62 65 20 65 72 72 6f 72 73 2e 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 ay.not.be.errors..Returns.logica
33620 6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 22 0a 20 20 28 6c 65 74 20 28 6b 69 64 l.OR.of.END_*.flags"...(let.(kid
33640 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 ).....(cond......((js2-break-nod
33660 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 62 e-p.node).......(js2-end-check-b
33680 72 65 61 6b 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 reak.node))......((js2-expr-stmt
336a0 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 6b 69 -node-p.node).......(if.(setq.ki
336c0 64 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 6f 64 65 29 d.(js2-expr-stmt-node-expr.node)
336e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 6b 69 64 29 0a )...........(js2-end-check.kid).
33700 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 20 20 20 20 ........js2-END_DROPS_OFF)).....
33720 20 28 28 6f 72 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 .((or.(js2-continue-node-p.node)
33740 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 2d 70 20 6e 6f 64 ...........(js2-throw-node-p.nod
33760 65 29 29 0a 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43 48 45 44 29 0a 20 20 20 e)).......js2-END_UNREACHED)....
33780 20 20 28 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 ..((js2-return-node-p.node).....
337a0 20 20 28 69 66 20 28 73 65 74 71 20 6b 69 64 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 ..(if.(setq.kid.(js2-return-node
337c0 2d 72 65 74 76 61 6c 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 -retval.node))...........js2-END
337e0 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 52 _RETURNS_VALUE.........js2-END_R
33800 45 54 55 52 4e 53 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20 ETURNS))......((js2-loop-node-p.
33820 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 6c 6f 6f 70 20 node).......(js2-end-check-loop.
33840 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 70 20 node))......((js2-switch-node-p.
33860 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 73 77 69 74 63 node).......(js2-end-check-switc
33880 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 h.node))......((js2-labeled-stmt
338a0 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 -node-p.node).......(js2-end-che
338c0 63 6b 2d 6c 61 62 65 6c 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f ck-label.node))......((js2-if-no
338e0 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d de-p.node).......(js2-end-check-
33900 69 66 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 70 20 if.node))......((js2-try-node-p.
33920 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 74 72 79 20 6e node).......(js2-end-check-try.n
33940 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 20 6e 6f ode))......((js2-block-node-p.no
33960 64 65 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e de).......(if.(null.(js2-block-n
33980 6f 64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e ode-kids.node))...........js2-EN
339a0 44 5f 44 52 4f 50 53 5f 4f 46 46 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 D_DROPS_OFF.........(js2-end-che
339c0 63 6b 2d 62 6c 6f 63 6b 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 79 69 65 6c ck-block.node)))......((js2-yiel
339e0 64 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 59 49 45 d-node-p.node).......js2-END_YIE
33a00 4c 44 53 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 LDS)......(t.......js2-END_DROPS
33a20 5f 4f 46 46 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 6c 77 61 79 73 2d 64 65 66 69 _OFF))))..(defun.js2-always-defi
33a40 6e 65 64 2d 62 6f 6f 6c 65 61 6e 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 43 68 65 63 6b 20 69 66 ned-boolean-p.(node)..."Check.if
33a60 20 4e 4f 44 45 20 61 6c 77 61 79 73 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 74 72 75 65 20 6f .NODE.always.evaluates.to.true.o
33a80 72 20 66 61 6c 73 65 20 69 6e 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 74 65 78 74 2e 0a 52 65 74 75 r.false.in.boolean.context..Retu
33aa0 72 6e 73 20 60 41 4c 57 41 59 53 5f 54 52 55 45 27 2c 20 60 41 4c 57 41 59 53 5f 46 41 4c 53 45 rns.`ALWAYS_TRUE',.`ALWAYS_FALSE
33ac0 27 2c 20 6f 72 20 6e 69 6c 20 69 66 20 69 74 27 73 20 6e 65 69 74 68 65 72 20 61 6c 77 61 79 73 ',.or.nil.if.it's.neither.always
33ae0 20 74 72 75 65 0a 6e 6f 72 20 61 6c 77 61 79 73 20 66 61 6c 73 65 2e 22 0a 20 20 28 6c 65 74 20 .true.nor.always.false."...(let.
33b00 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 ((tt.(js2-node-type.node))......
33b20 20 20 20 6e 75 6d 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 ...num).....(cond......((or.(=.t
33b40 74 20 6a 73 32 2d 46 41 4c 53 45 29 20 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4c 4c 29 29 0a 20 20 t.js2-FALSE).(=.tt.js2-NULL))...
33b60 20 20 20 20 27 41 4c 57 41 59 53 5f 46 41 4c 53 45 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a ....'ALWAYS_FALSE)......((=.tt.j
33b80 73 32 2d 54 52 55 45 29 0a 20 20 20 20 20 20 27 41 4c 57 41 59 53 5f 54 52 55 45 29 0a 20 20 20 s2-TRUE).......'ALWAYS_TRUE)....
33ba0 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20 20 20 20 20 28 73 65 74 71 ..((=.tt.js2-NUMBER).......(setq
33bc0 20 6e 75 6d 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 6e 75 6d 2d 76 61 6c 75 65 20 .num.(js2-number-node-num-value.
33be0 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71 20 6e node)).......(if.(and.(not.(eq.n
33c00 75 6d 20 30 2e 30 65 2b 4e 61 4e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f um.0.0e+NaN))................(no
33c20 74 20 28 7a 65 72 6f 70 20 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 41 4c 57 41 59 t.(zerop.num)))...........'ALWAY
33c40 53 5f 54 52 55 45 0a 20 20 20 20 20 20 20 20 27 41 4c 57 41 59 53 5f 46 41 4c 53 45 29 29 0a 20 S_TRUE.........'ALWAYS_FALSE))..
33c60 20 20 20 20 28 74 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a 3b 3b 3b 20 53 63 61 6e 6e 65 ....(t.......nil))))..;;;.Scanne
33c80 72 20 2d 2d 20 61 20 70 6f 72 74 20 6f 66 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 27 73 20 6c r.--.a.port.of.Mozilla.Rhino's.l
33ca0 65 78 65 72 2e 0a 3b 3b 20 43 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 52 68 69 6e 6f 20 66 69 exer..;;.Corresponds.to.Rhino.fi
33cc0 6c 65 73 20 54 6f 6b 65 6e 2e 6a 61 76 61 20 61 6e 64 20 54 6f 6b 65 6e 53 74 72 65 61 6d 2e 6a les.Token.java.and.TokenStream.j
33ce0 61 76 61 2e 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 74 6f 6b 65 6e 73 20 6e 69 6c 0a 20 20 22 ava...(defvar.js2-tokens.nil..."
33d00 4c 69 73 74 20 6f 66 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 74 6f 6b 65 6e 20 6e 61 6d 65 73 2e List.of.all.defined.token.names.
33d20 22 29 20 20 3b 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 6e 20 60 6a 73 32 2d 74 6f 6b 65 6e 2d ")..;.initialized.in.`js2-token-
33d40 6e 61 6d 65 73 27 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 61 6d 65 names'..(defconst.js2-token-name
33d60 73 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 73 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 6a s...(let*.((names.(make-vector.j
33d80 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 73 s2-num-tokens.-1))..........(cas
33da0 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 20 20 3b 20 6f 6e 6c 79 20 6d 61 74 63 68 e-fold-search.nil)..;.only.match
33dc0 20 6a 73 32 2d 55 50 50 45 52 5f 43 41 53 45 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 73 20 28 .js2-UPPER_CASE..........(syms.(
33de0 61 70 72 6f 70 6f 73 2d 69 6e 74 65 72 6e 61 6c 20 22 5e 6a 73 32 2d 5c 5c 28 3f 3a 5b 5b 3a 75 apropos-internal."^js2-\\(?:[[:u
33e00 70 70 65 72 3a 5d 5f 5d 2b 5c 5c 29 22 29 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f pper:]_]+\\)"))).....(cl-loop.fo
33e20 72 20 73 79 6d 20 69 6e 20 73 79 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 r.sym.in.syms..............for.i
33e40 20 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 .from.0..............do.........
33e60 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6d 65 6d 71 20 73 79 6d 20 27 28 6a 73 32 .....(unless.(or.(memq.sym.'(js2
33e80 2d 45 4f 46 5f 43 48 41 52 20 6a 73 32 2d 45 52 52 4f 52 29 29 0a 20 20 20 20 20 20 20 20 20 20 -EOF_CHAR.js2-ERROR))...........
33ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 ...............(not.(boundp.sym)
33ec0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 6e 61 6d 65 73 20 28 73 ))................(aset.names.(s
33ee0 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 64 ymbol-value.sym)...........;.cod
33f00 65 2c 20 65 2e 67 2e 20 31 35 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e,.e.g..152.....................
33f20 20 28 64 6f 77 6e 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(downcase......................
33f40 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 20 34 29 .(substring.(symbol-name.sym).4)
33f60 29 29 20 3b 20 6e 61 6d 65 2c 20 65 2e 67 2e 20 22 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 20 )).;.name,.e.g.."let"...........
33f80 20 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 6a 73 32 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 .....(push.sym.js2-tokens)))....
33fa0 20 6e 61 6d 65 73 29 0a 20 20 22 56 65 63 74 6f 72 20 6d 61 70 70 69 6e 67 20 69 6e 74 20 76 61 .names)..."Vector.mapping.int.va
33fc0 6c 75 65 73 20 74 6f 20 74 6f 6b 65 6e 20 73 74 72 69 6e 67 20 6e 61 6d 65 73 2c 20 73 61 6e 73 lues.to.token.string.names,.sans
33fe0 20 60 6a 73 32 2d 27 20 70 72 65 66 69 78 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 74 74 .`js2-'.prefix.")..(defun.js2-tt
34000 2d 6e 61 6d 65 20 28 74 6f 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 6e -name.(tok)..."Return.a.string.n
34020 61 6d 65 20 66 6f 72 20 54 4f 4b 2c 20 61 20 74 6f 6b 65 6e 20 73 79 6d 62 6f 6c 20 6f 72 20 63 ame.for.TOK,.a.token.symbol.or.c
34040 6f 64 65 2e 0a 53 69 67 6e 61 6c 73 20 61 6e 20 65 72 72 6f 72 20 69 66 20 69 74 27 73 20 6e 6f ode..Signals.an.error.if.it's.no
34060 74 20 61 20 72 65 63 6f 67 6e 69 7a 65 64 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 t.a.recognized.token."...(let.((
34080 63 6f 64 65 20 74 6f 6b 29 29 0a 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 74 6f 6b 29 code.tok)).....(if.(symbolp.tok)
340a0 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 64 65 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 .........(setq.code.(symbol-valu
340c0 65 20 74 6f 6b 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 63 6f 64 65 20 2d 31 29 0a 20 20 e.tok))).....(if.(eq.code.-1)...
340e0 20 20 20 20 20 20 22 45 52 52 4f 52 22 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75 ......"ERROR".......(if.(and.(nu
34100 6d 62 65 72 70 20 63 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 mberp.code)................(not.
34120 28 63 6c 2d 6d 69 6e 75 73 70 20 63 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (cl-minusp.code))...............
34140 20 28 3c 20 63 6f 64 65 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 .(<.code.js2-num-tokens)).......
34160 20 20 20 20 28 61 72 65 66 20 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 61 6d 65 73 20 63 6f 64 65 29 0a ....(aref.js2-token-names.code).
34180 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 74 6f 6b 65 6e 3a 20 25 ........(error."Invalid.token:.%
341a0 73 22 20 63 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74 74 2d 73 s".code)))))..(defsubst.js2-tt-s
341c0 79 6d 20 28 74 6f 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 73 79 6d 62 6f 6c 20 66 6f 72 20 54 4f ym.(tok)..."Return.symbol.for.TO
341e0 4b 20 67 69 76 65 6e 20 69 74 73 20 63 6f 64 65 2c 20 65 2e 67 2e 20 60 6a 73 32 2d 4c 50 27 20 K.given.its.code,.e.g..`js2-LP'.
34200 66 6f 72 20 63 6f 64 65 20 38 36 2e 22 0a 20 20 28 69 6e 74 65 72 6e 20 28 6a 73 32 2d 74 74 2d for.code.86."...(intern.(js2-tt-
34220 6e 61 6d 65 20 74 6f 6b 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 74 6f 6b 65 6e name.tok)))..(defconst.js2-token
34240 2d 63 6f 64 65 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 -codes...(let.((table.(make-hash
34260 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 20 3a 73 69 7a 65 20 32 35 36 29 29 29 0a 20 20 -table.:test.'eq.:size.256)))...
34280 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 6a 73 32 2d 74 ..(cl-loop.for.name.across.js2-t
342a0 6f 6b 65 6e 2d 6e 61 6d 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 79 6d 20 oken-names..............for.sym.
342c0 3d 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6a 73 32 2d 22 20 28 75 70 63 61 73 65 =.(intern.(concat."js2-".(upcase
342e0 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 .name)))..............do........
34300 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 73 79 6d 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 ......(puthash.sym.(symbol-value
34320 20 73 79 6d 29 20 74 61 62 6c 65 29 29 0a 20 20 20 20 3b 3b 20 63 6c 65 61 6e 20 75 70 20 61 20 .sym).table)).....;;.clean.up.a.
34340 66 65 77 20 74 68 61 74 20 61 72 65 20 22 77 72 6f 6e 67 22 20 69 6e 20 52 68 69 6e 6f 27 73 20 few.that.are."wrong".in.Rhino's.
34360 74 6f 6b 65 6e 20 63 6f 64 65 73 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 27 6a 73 32 2d 44 45 token.codes.....(puthash.'js2-DE
34380 4c 45 54 45 20 6a 73 32 2d 44 45 4c 50 52 4f 50 20 74 61 62 6c 65 29 0a 20 20 20 20 74 61 62 6c LETE.js2-DELPROP.table).....tabl
343a0 65 29 0a 20 20 22 48 61 73 68 74 61 62 6c 65 20 6d 61 70 70 69 6e 67 20 74 6f 6b 65 6e 20 74 79 e)..."Hashtable.mapping.token.ty
343c0 70 65 20 73 79 6d 62 6f 6c 73 20 74 6f 20 74 68 65 69 72 20 62 79 74 65 63 6f 64 65 73 2e 22 29 pe.symbols.to.their.bytecodes.")
343e0 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74 74 2d 63 6f 64 65 20 28 73 79 6d 29 0a 20 20 ..(defsubst.js2-tt-code.(sym)...
34400 22 52 65 74 75 72 6e 20 63 6f 64 65 20 66 6f 72 20 74 6f 6b 65 6e 20 73 79 6d 62 6f 6c 20 53 59 "Return.code.for.token.symbol.SY
34420 4d 2c 20 65 2e 67 2e 20 38 36 20 66 6f 72 20 60 6a 73 32 2d 4c 50 27 2e 22 0a 20 20 28 6f 72 20 M,.e.g..86.for.`js2-LP'."...(or.
34440 28 67 65 74 68 61 73 68 20 73 79 6d 20 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 64 65 73 29 0a 20 20 (gethash.sym.js2-token-codes)...
34460 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 74 6f 6b 65 6e 20 73 79 6d 62 6f 6c ....(error."Invalid.token.symbol
34480 3a 20 25 73 20 22 20 73 79 6d 29 29 29 20 20 3b 20 73 69 67 6e 61 6c 20 63 6f 64 65 20 62 75 67 :.%s.".sym)))..;.signal.code.bug
344a0 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 28 ..(defun.js2-report-scan-error.(
344c0 6d 73 67 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 74 68 72 6f 77 20 62 65 67 20 6c 65 6e 29 0a msg.&optional.no-throw.beg.len).
344e0 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 ..(setf.(js2-token-end.(js2-curr
34500 65 6e 74 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 28 6a 73 ent-token)).js2-ts-cursor)...(js
34520 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d 73 67 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 2-report-error.msg.nil..........
34540 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d ...........(or.beg.(js2-current-
34560 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 token-beg)).....................
34580 28 6f 72 20 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 29 29 (or.len.(js2-current-token-len))
345a0 29 0a 20 20 28 75 6e 6c 65 73 73 20 6e 6f 2d 74 68 72 6f 77 0a 20 20 20 20 28 74 68 72 6f 77 20 )...(unless.no-throw.....(throw.
345c0 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 'return.js2-ERROR)))..(defun.js2
345e0 2d 73 65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 28 74 6f 6b 65 6e 29 0a -set-string-from-buffer.(token).
34600 20 20 22 53 65 74 20 60 73 74 72 69 6e 67 27 20 61 6e 64 20 60 65 6e 64 27 20 73 6c 6f 74 73 20 .."Set.`string'.and.`end'.slots.
34620 66 6f 72 20 54 4f 4b 45 4e 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 2e 22 0a 20 for.TOKEN,.return.the.string."..
34640 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 .(setf.(js2-token-end.token).js2
34660 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 -ts-cursor.........(js2-token-st
34680 72 69 6e 67 20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 63 6f 6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 ring.token).(js2-collect-string.
346a0 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f js2-ts-string-buffer)))..;;.TODO
346c0 3a 20 20 63 6f 75 6c 64 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 61 76 6f 69 64 20 61 20 6c 6f 74 :..could.potentially.avoid.a.lot
346e0 20 6f 66 20 63 6f 6e 73 69 6e 67 20 62 79 20 61 6c 6c 6f 63 61 74 69 6e 67 20 61 0a 3b 3b 20 63 .of.consing.by.allocating.a.;;.c
34700 68 61 72 20 62 75 66 66 65 72 20 74 68 65 20 77 61 79 20 52 68 69 6e 6f 20 64 6f 65 73 2e 0a 28 har.buffer.the.way.Rhino.does..(
34720 64 65 66 73 75 62 73 74 20 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 29 0a 20 defsubst.js2-add-to-string.(c)..
34740 20 28 70 75 73 68 20 63 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a .(push.c.js2-ts-string-buffer)).
34760 0a 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 77 68 65 6e 20 77 65 20 22 72 65 61 64 22 20 74 68 65 .;;.Note.that.when.we."read".the
34780 20 65 6e 64 2d 6f 66 2d 66 69 6c 65 2c 20 77 65 20 61 64 76 61 6e 63 65 20 6a 73 32 2d 74 73 2d .end-of-file,.we.advance.js2-ts-
347a0 63 75 72 73 6f 72 0a 3b 3b 20 74 6f 20 28 31 2b 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 2c 20 77 cursor.;;.to.(1+.(point-max)),.w
347c0 68 69 63 68 20 6c 65 74 73 20 74 68 65 20 73 63 61 6e 6e 65 72 20 74 72 65 61 74 20 65 6e 64 2d hich.lets.the.scanner.treat.end-
347e0 6f 66 2d 66 69 6c 65 20 6c 69 6b 65 0a 3b 3b 20 61 6e 79 20 6f 74 68 65 72 20 63 68 61 72 61 63 of-file.like.;;.any.other.charac
34800 74 65 72 3a 20 20 77 68 65 6e 20 69 74 27 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 ter:..when.it's.not.part.of.the.
34820 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 2c 20 77 65 0a 3b 3b 20 75 6e 67 65 74 20 69 74 2c 20 61 current.token,.we.;;.unget.it,.a
34840 6c 6c 6f 77 69 6e 67 20 69 74 20 74 6f 20 62 65 20 72 65 61 64 20 61 67 61 69 6e 20 62 79 20 74 llowing.it.to.be.read.again.by.t
34860 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c 6c 2e 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 he.following.call..(defsubst.js2
34880 2d 75 6e 67 65 74 2d 63 68 61 72 20 28 29 0a 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 73 -unget-char.()...(cl-decf.js2-ts
348a0 2d 63 75 72 73 6f 72 29 29 0a 0a 3b 3b 20 52 68 69 6e 6f 20 64 69 73 74 69 6e 67 75 69 73 68 65 -cursor))..;;.Rhino.distinguishe
348c0 73 20 5c 72 20 61 6e 64 20 5c 6e 20 6c 69 6e 65 20 65 6e 64 69 6e 67 73 2e 20 20 57 65 20 64 6f s.\r.and.\n.line.endings...We.do
348e0 6e 27 74 20 6e 65 65 64 20 74 6f 0a 3b 3b 20 62 65 63 61 75 73 65 20 77 65 20 6f 6e 6c 79 20 73 n't.need.to.;;.because.we.only.s
34900 63 61 6e 20 66 72 6f 6d 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 2c 20 77 68 69 63 68 20 61 6c can.from.Emacs.buffers,.which.al
34920 77 61 79 73 20 75 73 65 20 5c 6e 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 63 68 61 72 ways.use.\n..(defun.js2-get-char
34940 20 28 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 .()..."Read.and.return.the.next.
34960 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 75 74 20 62 75 66 66 65 72 2e character.from.the.input.buffer.
34980 0a 49 6e 63 72 65 6d 65 6e 74 73 20 60 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 27 20 69 66 20 74 .Increments.`js2-ts-lineno'.if.t
349a0 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 20 6e 65 77 6c 69 6e 65 20 63 68 61 he.return.value.is.a.newline.cha
349c0 72 2e 0a 55 70 64 61 74 65 73 20 60 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 27 20 74 6f 20 74 68 r..Updates.`js2-ts-cursor'.to.th
349e0 65 20 70 6f 69 6e 74 20 61 66 74 65 72 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 63 68 61 72 2e e.point.after.the.returned.char.
34a00 0a 52 65 74 75 72 6e 73 20 60 6a 73 32 2d 45 4f 46 5f 43 48 41 52 27 20 69 66 20 77 65 20 68 69 .Returns.`js2-EOF_CHAR'.if.we.hi
34a20 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2e 0a 41 6c 73 6f 20 75 70 t.the.end.of.the.buffer..Also.up
34a40 64 61 74 65 73 20 60 6a 73 32 2d 74 73 2d 68 69 74 2d 65 6f 66 27 20 61 6e 64 20 60 6a 73 32 2d dates.`js2-ts-hit-eof'.and.`js2-
34a60 74 73 2d 6c 69 6e 65 2d 73 74 61 72 74 27 20 61 73 20 6e 65 65 64 65 64 2e 22 0a 20 20 28 6c 65 ts-line-start'.as.needed."...(le
34a80 74 20 28 63 29 0a 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 66 6f 72 20 65 6e 64 20 6f 66 20 62 75 t.(c).....;;.check.for.end.of.bu
34aa0 66 66 65 72 0a 20 20 20 20 28 69 66 20 28 3e 3d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28 ffer.....(if.(>=.js2-ts-cursor.(
34ac0 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 point-max)).........(setq.js2-ts
34ae0 2d 68 69 74 2d 65 6f 66 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d -hit-eof.t...............js2-ts-
34b00 63 75 72 73 6f 72 20 28 31 2b 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 cursor.(1+.js2-ts-cursor).......
34b20 20 20 20 20 20 20 20 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 20 20 3b 20 72 65 74 75 72 ........c.js2-EOF_CHAR)..;.retur
34b40 6e 20 76 61 6c 75 65 0a 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 72 65 61 64 20 n.value.......;;.otherwise.read.
34b60 6e 65 78 74 20 63 68 61 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 63 68 61 72 2d 62 65 next.char.......(setq.c.(char-be
34b80 66 6f 72 65 20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 29 29 0a 20 fore.(cl-incf.js2-ts-cursor)))..
34ba0 20 20 20 20 20 3b 3b 20 69 66 20 77 65 20 72 65 61 64 20 61 20 6e 65 77 6c 69 6e 65 2c 20 75 70 .....;;.if.we.read.a.newline,.up
34bc0 64 61 74 65 20 63 6f 75 6e 74 65 72 73 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 63 20 3f 5c 6e date.counters.......(if.(=.c.?\n
34be0 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 2d 73 74 )...........(setq.js2-ts-line-st
34c00 61 72 74 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 art.js2-ts-cursor...............
34c20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 20 28 31 2b 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e ..js2-ts-lineno.(1+.js2-ts-linen
34c40 6f 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 73 6b 69 70 20 6f 76 65 72 20 66 o))).......;;.TODO:..skip.over.f
34c60 6f 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 73 0a 20 20 20 20 20 20 63 29 29 29 0a 0a 28 64 65 ormat.characters.......c)))..(de
34c80 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65 20 28 29 0a 20 fun.js2-read-unicode-escape.()..
34ca0 20 22 52 65 61 64 20 61 20 5c 5c 75 4e 4e 4e 4e 20 73 65 71 75 65 6e 63 65 20 66 72 6f 6d 20 74 ."Read.a.\\uNNNN.sequence.from.t
34cc0 68 65 20 69 6e 70 75 74 2e 0a 41 73 73 75 6d 65 73 20 74 68 65 20 3f 5c 5c 20 61 6e 64 20 3f 75 he.input..Assumes.the.?\\.and.?u
34ce0 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 72 65 61 64 2e 0a 52 65 74 75 72 6e 73 .have.already.been.read..Returns
34d00 20 74 68 65 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 2c 20 6f 72 20 6e 69 6c 20 69 .the.unicode.character,.or.nil.i
34d20 66 20 69 74 20 77 61 73 6e 27 74 20 61 20 76 61 6c 69 64 20 63 68 61 72 61 63 74 65 72 2e 0a 44 f.it.wasn't.a.valid.character..D
34d40 6f 65 73 6e 27 74 20 63 68 61 6e 67 65 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 61 6e 79 20 oesn't.change.the.values.of.any.
34d60 73 63 61 6e 6e 65 72 20 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 3b 3b 20 49 20 72 65 61 6c 6c scanner.variables."...;;.I.reall
34d80 79 20 77 69 73 68 20 49 20 6b 6e 65 77 20 61 20 62 65 74 74 65 72 20 77 61 79 20 74 6f 20 64 6f y.wish.I.knew.a.better.way.to.do
34da0 20 74 68 69 73 2c 20 62 75 74 20 49 20 63 61 6e 27 74 0a 20 20 3b 3b 20 66 69 6e 64 20 74 68 65 .this,.but.I.can't...;;.find.the
34dc0 20 45 6d 61 63 73 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 31 36 2d .Emacs.function.that.takes.a.16-
34de0 62 69 74 20 69 6e 74 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 0a 20 20 3b 3b 20 69 74 20 74 6f 20 bit.int.and.converts...;;.it.to.
34e00 61 20 55 6e 69 63 6f 64 65 2f 75 74 66 2d 38 20 63 68 61 72 61 63 74 65 72 2e 20 20 53 6f 20 49 a.Unicode/utf-8.character...So.I
34e20 20 62 61 73 69 63 61 6c 6c 79 20 65 76 61 6c 20 69 74 20 77 69 74 68 20 28 72 65 61 64 29 2e 0a .basically.eval.it.with.(read)..
34e40 20 20 3b 3b 20 48 61 76 65 20 74 6f 20 66 69 72 73 74 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 ..;;.Have.to.first.check.that.it
34e60 27 73 20 34 20 68 65 78 20 63 68 61 72 61 63 74 65 72 73 20 6f 72 20 69 74 20 6d 61 79 20 73 74 's.4.hex.characters.or.it.may.st
34e80 6f 70 0a 20 20 3b 3b 20 74 68 65 20 72 65 61 64 20 65 61 72 6c 79 2e 0a 20 20 28 69 67 6e 6f 72 op...;;.the.read.early....(ignor
34ea0 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 6c 65 74 20 28 28 73 20 28 62 75 66 66 65 72 2d 73 75 e-errors.....(let.((s.(buffer-su
34ec0 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 6a 73 32 2d 74 73 2d 63 75 72 bstring-no-properties.js2-ts-cur
34ee0 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sor.............................
34f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 34 20 6a 73 32 2d 74 73 2d 63 75 72 .................(+.4.js2-ts-cur
34f20 73 6f 72 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 sor)))).......(if.(string-match.
34f40 22 5b 30 2d 39 61 2d 66 41 2d 46 5d 5c 5c 7b 34 5c 5c 7d 22 20 73 29 0a 20 20 20 20 20 20 20 20 "[0-9a-fA-F]\\{4\\}".s).........
34f60 20 20 28 72 65 61 64 20 28 63 6f 6e 63 61 74 20 22 3f 5c 5c 75 22 20 73 29 29 29 29 29 29 0a 0a ..(read.(concat."?\\u".s))))))..
34f80 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 28 74 65 73 74 29 0a 20 20 22 (defun.js2-match-char.(test)..."
34fa0 43 6f 6e 73 75 6d 65 20 61 6e 64 20 72 65 74 75 72 6e 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 Consume.and.return.next.characte
34fc0 72 20 69 66 20 69 74 20 6d 61 74 63 68 65 73 20 54 45 53 54 2c 20 61 20 63 68 61 72 61 63 74 65 r.if.it.matches.TEST,.a.characte
34fe0 72 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 61 6e 64 20 63 6f 6e 73 75 6d 65 73 20 6e 6f 74 68 r..Returns.nil.and.consumes.noth
35000 69 6e 67 20 69 66 20 54 45 53 54 20 69 73 20 6e 6f 74 20 74 68 65 20 6e 65 78 74 20 63 68 61 72 ing.if.TEST.is.not.the.next.char
35020 61 63 74 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 acter."...(let.((c.(js2-get-char
35040 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 63 20 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 ))).....(if.(eq.c.test).........
35060 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 6e t.......(js2-unget-char).......n
35080 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 20 28 29 0a 20 il)))..(defun.js2-peek-char.()..
350a0 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 0a 20 20 20 .(prog1.......(js2-get-char)....
350c0 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d .(js2-unget-char)))..(defun.js2-
350e0 69 64 65 6e 74 69 66 69 65 72 2d 73 74 61 72 74 2d 70 20 28 63 29 0a 20 20 22 49 73 20 43 20 61 identifier-start-p.(c)..."Is.C.a
35100 20 76 61 6c 69 64 20 73 74 61 72 74 20 74 6f 20 61 6e 20 45 53 35 20 49 64 65 6e 74 69 66 69 65 .valid.start.to.an.ES5.Identifie
35120 72 3f 0a 53 65 65 20 68 74 74 70 3a 2f 2f 65 73 35 2e 67 69 74 68 75 62 2e 69 6f 2f 23 78 37 2e r?.See.http://es5.github.io/#x7.
35140 36 22 0a 20 20 28 6f 72 0a 20 20 20 28 6d 65 6d 71 20 63 20 27 28 3f 24 20 3f 5f 29 29 0a 20 20 6"...(or....(memq.c.'(?$.?_))...
35160 20 28 6d 65 6d 71 20 28 67 65 74 2d 63 68 61 72 2d 63 6f 64 65 2d 70 72 6f 70 65 72 74 79 20 63 .(memq.(get-char-code-property.c
35180 20 27 67 65 6e 65 72 61 6c 2d 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 .'general-category)..........;;.
351a0 4c 65 74 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 27 28 4c 75 20 4c 6c 20 4c 74 20 4c 6d 20 4c Letters..........'(Lu.Ll.Lt.Lm.L
351c0 6f 20 4e 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 64 65 6e 74 69 66 69 65 72 2d o.Nl))))..(defun.js2-identifier-
351e0 70 61 72 74 2d 70 20 28 63 29 0a 20 20 22 49 73 20 43 20 61 20 76 61 6c 69 64 20 70 61 72 74 20 part-p.(c)..."Is.C.a.valid.part.
35200 6f 66 20 61 6e 20 45 53 35 20 49 64 65 6e 74 69 66 69 65 72 3f 0a 53 65 65 20 68 74 74 70 3a 2f of.an.ES5.Identifier?.See.http:/
35220 2f 65 73 35 2e 67 69 74 68 75 62 2e 69 6f 2f 23 78 37 2e 36 22 0a 20 20 28 6f 72 0a 20 20 20 28 /es5.github.io/#x7.6"...(or....(
35240 6d 65 6d 71 20 63 20 27 28 3f 24 20 3f 5f 20 3f 5c 75 32 30 30 63 20 20 3f 5c 75 32 30 30 64 29 memq.c.'(?$.?_.?\u200c..?\u200d)
35260 29 0a 20 20 20 28 6d 65 6d 71 20 28 67 65 74 2d 63 68 61 72 2d 63 6f 64 65 2d 70 72 6f 70 65 72 )....(memq.(get-char-code-proper
35280 74 79 20 63 20 27 67 65 6e 65 72 61 6c 2d 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 ty.c.'general-category).........
352a0 20 27 28 3b 3b 20 4c 65 74 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 4c 75 20 4c 6c 20 4c .'(;;.Letters............Lu.Ll.L
352c0 74 20 4c 6d 20 4c 6f 20 4e 6c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6d 62 69 6e 69 t.Lm.Lo.Nl............;;.Combini
352e0 6e 67 20 4d 61 72 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 4d 6e 20 4d 63 0a 20 20 20 20 20 20 ng.Marks............Mn.Mc.......
35300 20 20 20 20 20 3b 3b 20 44 69 67 69 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 4e 64 0a 20 20 20 .....;;.Digits............Nd....
35320 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 6e 65 63 74 6f 72 20 50 75 6e 63 74 75 61 74 69 6f 6e ........;;.Connector.Punctuation
35340 0a 20 20 20 20 20 20 20 20 20 20 20 50 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 ............Pc))))..(defun.js2-a
35360 6c 70 68 61 2d 70 20 28 63 29 0a 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 28 3c 3d 20 3f 41 20 lpha-p.(c)...(cond.((and.(<=.?A.
35380 63 29 20 28 3c 3d 20 63 20 3f 5a 29 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 c).(<=.c.?Z)).t).........((and.(
353a0 3c 3d 20 3f 61 20 63 29 20 28 3c 3d 20 63 20 3f 7a 29 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 <=.?a.c).(<=.c.?z)).t).........(
353c0 74 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 64 69 67 69 74 2d 70 20 t.nil)))..(defsubst.js2-digit-p.
353e0 28 63 29 0a 20 20 28 61 6e 64 20 28 3c 3d 20 3f 30 20 63 29 20 28 3c 3d 20 63 20 3f 39 29 29 29 (c)...(and.(<=.?0.c).(<=.c.?9)))
35400 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6a 73 2d 73 70 61 63 65 2d 70 20 28 63 29 0a 20 20 28 69 ..(defun.js2-js-space-p.(c)...(i
35420 66 20 28 3c 3d 20 63 20 31 32 37 29 0a 20 20 20 20 20 20 28 6d 65 6d 71 20 63 20 27 28 23 78 32 f.(<=.c.127).......(memq.c.'(#x2
35440 30 20 23 78 39 20 23 78 42 20 23 78 43 20 23 78 44 29 29 0a 20 20 20 20 28 6f 72 0a 20 20 20 20 0.#x9.#xB.#xC.#xD)).....(or.....
35460 20 28 65 71 20 63 20 23 78 41 30 29 0a 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 63 68 61 6e .(eq.c.#xA0)......;;.TODO:..chan
35480 67 65 20 74 68 69 73 20 6e 69 6c 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 55 6e 69 63 6f 64 65 ge.this.nil.to.check.for.Unicode
354a0 20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72 0a 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 .space.character......nil)))..(d
354c0 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6f 6c 2d 63 68 61 72 73 20 28 6c 69 73 74 20 6a 73 32 2d efconst.js2-eol-chars.(list.js2-
354e0 45 4f 46 5f 43 48 41 52 20 3f 5c 6e 20 3f 5c 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 EOF_CHAR.?\n.?\r))..(defun.js2-s
35500 6b 69 70 2d 6c 69 6e 65 20 28 29 0a 20 20 22 53 6b 69 70 20 74 6f 20 65 6e 64 20 6f 66 20 6c 69 kip-line.()..."Skip.to.end.of.li
35520 6e 65 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6d 65 6d 71 20 28 6a 73 32 2d 67 65 ne."...(while.(not.(memq.(js2-ge
35540 74 2d 63 68 61 72 29 20 6a 73 32 2d 65 6f 6c 2d 63 68 61 72 73 29 29 29 0a 20 20 28 6a 73 32 2d t-char).js2-eol-chars)))...(js2-
35560 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 unget-char)...(setf.(js2-token-e
35580 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 74 73 2d 63 nd.(js2-current-token)).js2-ts-c
355a0 75 72 73 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 69 74 2d 73 63 61 6e 6e 65 72 ursor))..(defun.js2-init-scanner
355c0 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 20 6c 69 6e 65 29 0a 20 20 22 43 72 65 61 74 65 20 .(&optional.buf.line)..."Create.
355e0 74 6f 6b 65 6e 20 73 74 72 65 61 6d 20 66 6f 72 20 42 55 46 20 73 74 61 72 74 69 6e 67 20 6f 6e token.stream.for.BUF.starting.on
35600 20 4c 49 4e 45 2e 0a 42 55 46 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 63 75 72 72 65 6e 74 2d .LINE..BUF.defaults.to.`current-
35620 62 75 66 66 65 72 27 20 61 6e 64 20 4c 49 4e 45 20 64 65 66 61 75 6c 74 73 20 74 6f 20 31 2e 0a buffer'.and.LINE.defaults.to.1..
35640 0a 41 20 62 75 66 66 65 72 20 63 61 6e 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 73 63 61 6e .A.buffer.can.only.have.one.scan
35660 6e 65 72 20 61 63 74 69 76 65 20 61 74 20 61 20 74 69 6d 65 2c 20 77 68 69 63 68 20 79 69 65 6c ner.active.at.a.time,.which.yiel
35680 64 73 0a 64 72 61 6d 61 74 69 63 61 6c 6c 79 20 73 69 6d 70 6c 65 72 20 63 6f 64 65 20 74 68 61 ds.dramatically.simpler.code.tha
356a0 6e 20 75 73 69 6e 67 20 61 20 64 65 66 73 74 72 75 63 74 2e 20 20 49 66 20 79 6f 75 20 6e 65 65 n.using.a.defstruct...If.you.nee
356c0 64 20 74 6f 0a 68 61 76 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 73 63 61 6e 6e 65 72 73 20 d.to.have.simultaneous.scanners.
356e0 69 6e 20 61 20 62 75 66 66 65 72 2c 20 63 6f 70 79 20 74 68 65 20 72 65 67 69 6f 6e 73 20 74 6f in.a.buffer,.copy.the.regions.to
35700 20 73 63 61 6e 0a 69 6e 74 6f 20 74 65 6d 70 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 73 61 76 .scan.into.temp.buffers."...(sav
35720 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 61 6e 64 20 62 75 66 20 28 73 65 74 2d 62 75 e-excursion.....(and.buf.(set-bu
35740 66 66 65 72 20 62 75 66 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 ffer.buf)).....(goto-char.(point
35760 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 23 21 -min)).....(when.(looking-at."#!
35780 2f 22 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 /").......(forward-line.1)).....
357a0 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 20 20 (setq.js2-ts-dirty-line.nil.....
357c0 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 68 69 74 2d 65 6f 66 20 6e 69 6c 0a 20 20 20 20 20 20 20 ......js2-ts-hit-eof.nil........
357e0 20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 2d 73 74 61 72 74 20 30 0a 20 20 20 20 20 20 20 20 20 ...js2-ts-line-start.0..........
35800 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 20 28 6f 72 20 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 .js2-ts-lineno.(or.line.1)......
35820 20 20 20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 2d 65 6e 64 2d 63 68 61 72 20 2d 31 0a 20 20 20 .....js2-ts-line-end-char.-1....
35840 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28 70 6f 69 6e 74 29 0a 20 20 20 .......js2-ts-cursor.(point)....
35860 20 20 20 20 20 20 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 28 6d 61 6b 65 2d 76 65 63 74 6f .......js2-ti-tokens.(make-vecto
35880 72 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 r.js2-ti-ntokens.nil)...........
358a0 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20 30 0a 20 20 20 20 20 20 20 20 20 js2-ti-tokens-cursor.0..........
358c0 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 20 30 0a 20 20 20 20 20 20 20 20 20 20 6a 73 .js2-ti-lookahead.0...........js
358e0 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 72 69 62 75 74 65 20 6e 69 6c 0a 20 20 20 20 20 20 2-ts-is-xml-attribute.nil.......
35900 20 20 20 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 ....js2-ts-xml-is-tag-content.ni
35920 6c 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 l...........js2-ts-xml-open-tags
35940 2d 63 6f 75 6e 74 20 30 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 -count.0...........js2-ts-string
35960 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 29 0a 0a 3b 3b 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e -buffer.nil)))..;;.This.function
35980 20 75 73 65 73 20 74 68 65 20 63 61 63 68 65 64 20 6f 70 2c 20 73 74 72 69 6e 67 20 61 6e 64 20 .uses.the.cached.op,.string.and.
359a0 6e 75 6d 62 65 72 20 66 69 65 6c 64 73 20 69 6e 0a 3b 3b 20 54 6f 6b 65 6e 53 74 72 65 61 6d 3b number.fields.in.;;.TokenStream;
359c0 20 69 66 20 67 65 74 54 6f 6b 65 6e 20 68 61 73 20 62 65 65 6e 20 63 61 6c 6c 65 64 20 73 69 6e .if.getToken.has.been.called.sin
359e0 63 65 20 74 68 65 20 70 61 73 73 65 64 20 74 6f 6b 65 6e 0a 3b 3b 20 77 61 73 20 73 63 61 6e 6e ce.the.passed.token.;;.was.scann
35a00 65 64 2c 20 74 68 65 20 6f 70 20 6f 72 20 73 74 72 69 6e 67 20 70 72 69 6e 74 65 64 20 6d 61 79 ed,.the.op.or.string.printed.may
35a20 20 62 65 20 69 6e 63 6f 72 72 65 63 74 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 74 6f 6b 65 6e 2d .be.incorrect..(defun.js2-token-
35a40 74 6f 2d 73 74 72 69 6e 67 20 28 74 6f 6b 65 6e 29 0a 20 20 3b 3b 20 4e 6f 74 20 73 75 72 65 20 to-string.(token)...;;.Not.sure.
35a60 77 68 65 72 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 69 6e 20 52 where.this.function.is.used.in.R
35a80 68 69 6e 6f 2e 20 20 4e 6f 74 20 74 65 73 74 65 64 2e 0a 20 20 28 69 66 20 28 6e 6f 74 20 6a 73 hino...Not.tested....(if.(not.js
35aa0 32 2d 64 65 62 75 67 2d 70 72 69 6e 74 2d 74 72 65 65 73 29 0a 20 20 20 20 20 20 22 22 0a 20 20 2-debug-print-trees).......""...
35ac0 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a 73 32 2d 74 74 2d 6e 61 6d 65 20 74 6f 6b 65 6e ..(let.((name.(js2-tt-name.token
35ae0 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 74 6f ))).......(cond........((memq.to
35b00 6b 65 6e 20 27 28 6a 73 32 2d 53 54 52 49 4e 47 20 6a 73 32 2d 52 45 47 45 58 50 20 6a 73 32 2d ken.'(js2-STRING.js2-REGEXP.js2-
35b20 4e 41 4d 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 NAME.......................js2-T
35b40 45 4d 50 4c 41 54 45 5f 48 45 41 44 20 6a 73 32 2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 EMPLATE_HEAD.js2-NO_SUBS_TEMPLAT
35b60 45 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 20 22 20 60 22 20 28 6a E)).........(concat.name.".`".(j
35b80 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 20 22 27 22 29 29 0a 20 s2-current-token-string)."'"))..
35ba0 20 20 20 20 20 20 28 28 65 71 20 74 6f 6b 65 6e 20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20 20 ......((eq.token.js2-NUMBER)....
35bc0 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4e 55 4d 42 45 52 20 25 67 22 20 28 6a 73 32 2d 74 6f .....(format."NUMBER.%g".(js2-to
35be0 6b 65 6e 2d 6e 75 6d 62 65 72 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 ken-number.(js2-current-token)))
35c00 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 29 29 29 29 29 0a 0a 28 )........(t.........name)))))..(
35c20 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 62 72 65 61 6b 0a defconst.js2-keywords...'(break.
35c40 20 20 20 20 63 61 73 65 20 63 61 74 63 68 20 63 6c 61 73 73 20 63 6f 6e 73 74 20 63 6f 6e 74 69 ....case.catch.class.const.conti
35c60 6e 75 65 0a 20 20 20 20 64 65 62 75 67 67 65 72 20 64 65 66 61 75 6c 74 20 64 65 6c 65 74 65 20 nue.....debugger.default.delete.
35c80 64 6f 0a 20 20 20 20 65 6c 73 65 20 65 78 74 65 6e 64 73 20 65 78 70 6f 72 74 0a 20 20 20 20 66 do.....else.extends.export.....f
35ca0 61 6c 73 65 20 66 69 6e 61 6c 6c 79 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 69 66 alse.finally.for.function.....if
35cc0 20 69 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 69 6d 70 6f 72 74 0a 20 20 20 20 6c 65 74 0a 20 20 .in.instanceof.import.....let...
35ce0 20 20 6e 65 77 20 6e 75 6c 6c 0a 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 73 75 70 65 72 20 ..new.null.....return.....super.
35d00 73 77 69 74 63 68 0a 20 20 20 20 74 68 69 73 20 74 68 72 6f 77 20 74 72 75 65 20 74 72 79 20 74 switch.....this.throw.true.try.t
35d20 79 70 65 6f 66 0a 20 20 20 20 76 61 72 20 76 6f 69 64 0a 20 20 20 20 77 68 69 6c 65 20 77 69 74 ypeof.....var.void.....while.wit
35d40 68 0a 20 20 20 20 79 69 65 6c 64 29 29 0a 0a 3b 3b 20 54 6f 6b 65 6e 20 6e 61 6d 65 73 20 61 72 h.....yield))..;;.Token.names.ar
35d60 65 6e 27 74 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 6b 65 79 en't.exactly.the.same.as.the.key
35d80 77 6f 72 64 73 2c 20 75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 2e 0a 3b 3b 20 45 2e 67 2e 20 64 65 words,.unfortunately..;;.E.g..de
35da0 6c 65 74 65 20 69 73 20 6a 73 32 2d 44 45 4c 50 52 4f 50 2e 0a 28 64 65 66 63 6f 6e 73 74 20 6a lete.is.js2-DELPROP..(defconst.j
35dc0 73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d 61 s2-kwd-tokens...(let.((table.(ma
35de0 6b 65 2d 76 65 63 74 6f 72 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 20 6e 69 6c 29 29 0a 20 ke-vector.js2-num-tokens.nil))..
35e00 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6a 73 .......(tokens..........(list.js
35e20 32 2d 42 52 45 41 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 43 41 53 45 20 2-BREAK................js2-CASE.
35e40 6a 73 32 2d 43 41 54 43 48 20 6a 73 32 2d 43 4c 41 53 53 20 6a 73 32 2d 43 4f 4e 53 54 20 6a 73 js2-CATCH.js2-CLASS.js2-CONST.js
35e60 32 2d 43 4f 4e 54 49 4e 55 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45 2-CONTINUE................js2-DE
35e80 42 55 47 47 45 52 20 6a 73 32 2d 44 45 46 41 55 4c 54 20 6a 73 32 2d 44 45 4c 50 52 4f 50 20 6a BUGGER.js2-DEFAULT.js2-DELPROP.j
35ea0 73 32 2d 44 4f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4c 53 45 20 6a 73 s2-DO................js2-ELSE.js
35ec0 32 2d 45 58 50 4f 52 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4c 53 45 2-EXPORT................js2-ELSE
35ee0 20 6a 73 32 2d 45 58 54 45 4e 44 53 20 6a 73 32 2d 45 58 50 4f 52 54 0a 20 20 20 20 20 20 20 20 .js2-EXTENDS.js2-EXPORT.........
35f00 20 20 20 20 20 20 20 6a 73 32 2d 46 41 4c 53 45 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 20 6a 73 32 .......js2-FALSE.js2-FINALLY.js2
35f20 2d 46 4f 52 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -FOR.js2-FUNCTION...............
35f40 20 6a 73 32 2d 49 46 20 6a 73 32 2d 49 4e 20 6a 73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 20 6a 73 .js2-IF.js2-IN.js2-INSTANCEOF.js
35f60 32 2d 49 4d 50 4f 52 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 0a 2-IMPORT................js2-LET.
35f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4e 45 57 20 6a 73 32 2d 4e 55 4c 4c 0a ...............js2-NEW.js2-NULL.
35fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 52 45 54 55 52 4e 0a 20 20 20 20 20 20 ...............js2-RETURN.......
35fc0 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 55 50 45 52 20 6a 73 32 2d 53 57 49 54 43 48 0a 20 20 .........js2-SUPER.js2-SWITCH...
35fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 48 49 53 20 6a 73 32 2d 54 48 52 4f 57 20 .............js2-THIS.js2-THROW.
36000 6a 73 32 2d 54 52 55 45 20 6a 73 32 2d 54 52 59 20 6a 73 32 2d 54 59 50 45 4f 46 0a 20 20 20 20 js2-TRUE.js2-TRY.js2-TYPEOF.....
36020 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 56 41 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........js2-VAR..............
36040 20 20 6a 73 32 2d 57 48 49 4c 45 20 6a 73 32 2d 57 49 54 48 0a 20 20 20 20 20 20 20 20 20 20 20 ..js2-WHILE.js2-WITH............
36060 20 20 20 20 6a 73 32 2d 59 49 45 4c 44 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 20 ....js2-YIELD))).....(dolist.(i.
36080 74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 69 20 27 66 6f 6e tokens).......(aset.table.i.'fon
360a0 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20 20 20 20 28 61 73 65 74 20 t-lock-keyword-face)).....(aset.
360c0 74 61 62 6c 65 20 6a 73 32 2d 53 54 52 49 4e 47 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 table.js2-STRING.'font-lock-stri
360e0 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 52 45 47 ng-face).....(aset.table.js2-REG
36100 45 58 50 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 EXP.'font-lock-string-face).....
36120 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 45 (aset.table.js2-NO_SUBS_TEMPLATE
36140 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 .'font-lock-string-face).....(as
36160 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 54 45 4d 50 4c 41 54 45 5f 48 45 41 44 20 27 66 6f 6e 74 et.table.js2-TEMPLATE_HEAD.'font
36180 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 -lock-string-face).....(aset.tab
361a0 6c 65 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e le.js2-COMMENT.'font-lock-commen
361c0 74 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 54 48 49 53 t-face).....(aset.table.js2-THIS
361e0 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 0a 20 20 20 20 28 61 .'font-lock-builtin-face).....(a
36200 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 53 55 50 45 52 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 set.table.js2-SUPER.'font-lock-b
36220 75 69 6c 74 69 6e 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 uiltin-face).....(aset.table.js2
36240 2d 56 4f 49 44 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a -VOID.'font-lock-constant-face).
36260 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 4e 55 4c 4c 20 27 66 6f 6e 74 2d 6c ....(aset.table.js2-NULL.'font-l
36280 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 ock-constant-face).....(aset.tab
362a0 6c 65 20 6a 73 32 2d 54 52 55 45 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d le.js2-TRUE.'font-lock-constant-
362c0 66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 46 41 4c 53 45 20 face).....(aset.table.js2-FALSE.
362e0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 28 61 'font-lock-constant-face).....(a
36300 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 4e 4f 54 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6e 65 67 set.table.js2-NOT.'font-lock-neg
36320 61 74 69 6f 6e 2d 63 68 61 72 2d 66 61 63 65 29 0a 20 20 20 20 74 61 62 6c 65 29 0a 20 20 22 56 ation-char-face).....table)..."V
36340 65 63 74 6f 72 20 77 68 6f 73 65 20 76 61 6c 75 65 73 20 61 72 65 20 6e 6f 6e 2d 6e 69 6c 20 66 ector.whose.values.are.non-nil.f
36360 6f 72 20 74 6f 6b 65 6e 73 20 74 68 61 74 20 61 72 65 20 6b 65 79 77 6f 72 64 73 2e 0a 54 68 65 or.tokens.that.are.keywords..The
36380 20 76 61 6c 75 65 73 20 61 72 65 20 64 65 66 61 75 6c 74 20 66 61 63 65 73 20 74 6f 20 75 73 65 .values.are.default.faces.to.use
363a0 20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 68 65 20 6b 65 79 77 6f 72 64 73 2e 22 .for.highlighting.the.keywords."
363c0 29 0a 0a 3b 3b 20 46 49 58 4d 45 3a 20 53 75 70 70 6f 72 74 20 73 74 72 69 63 74 20 6d 6f 64 65 )..;;.FIXME:.Support.strict.mode
363e0 2d 6f 6e 6c 79 20 66 75 74 75 72 65 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 73 2c 20 61 66 74 -only.future.reserved.words,.aft
36400 65 72 20 77 65 20 6b 6e 6f 77 0a 3b 3b 20 77 68 69 63 68 20 70 61 72 74 73 20 73 63 6f 70 65 73 er.we.know.;;.which.parts.scopes
36420 20 61 72 65 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2c 20 61 6e 64 20 77 68 69 63 68 20 61 .are.in.strict.mode,.and.which.a
36440 72 65 20 6e 6f 74 2e 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 72 65 73 65 72 76 65 64 2d 77 re.not..(defconst.js2-reserved-w
36460 6f 72 64 73 20 27 28 63 6c 61 73 73 20 65 6e 75 6d 20 65 78 70 6f 72 74 20 65 78 74 65 6e 64 73 ords.'(class.enum.export.extends
36480 20 69 6d 70 6f 72 74 20 73 74 61 74 69 63 20 73 75 70 65 72 29 0a 20 20 22 46 75 74 75 72 65 20 .import.static.super)..."Future.
364a0 72 65 73 65 72 76 65 64 20 6b 65 79 77 6f 72 64 73 20 69 6e 20 45 43 4d 41 53 63 72 69 70 74 20 reserved.keywords.in.ECMAScript.
364c0 35 2e 31 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 61 5.1.")..(defconst.js2-keyword-na
364e0 6d 65 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 mes...(let.((table.(make-hash-ta
36500 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 ble.:test.'equal))).....(cl-loop
36520 20 66 6f 72 20 6b 20 69 6e 20 6a 73 32 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 .for.k.in.js2-keywords..........
36540 20 20 20 20 64 6f 20 28 70 75 74 68 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....do.(puthash.................
36560 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(symbol-name.k)................
36580 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 73 74 61 6e 63 65 6f 66 0a 20 20 20 20 20 20 20 ............;.instanceof........
365a0 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6a 73 32 2d 22 ..........(intern.(concat."js2-"
365c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
365e0 20 20 28 75 70 63 61 73 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 29 29 29 29 20 3b 20 6a ..(upcase.(symbol-name.k)))).;.j
36600 73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 s2-INSTANCEOF..................t
36620 61 62 6c 65 29 29 0a 20 20 20 20 74 61 62 6c 65 29 0a 20 20 22 4a 61 76 61 53 63 72 69 70 74 20 able)).....table)..."JavaScript.
36640 6b 65 79 77 6f 72 64 73 20 62 79 20 6e 61 6d 65 2c 20 6d 61 70 70 65 64 20 74 6f 20 74 68 65 69 keywords.by.name,.mapped.to.thei
36660 72 20 73 79 6d 62 6f 6c 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 72 65 73 65 r.symbols.")..(defconst.js2-rese
36680 72 76 65 64 2d 77 6f 72 64 2d 6e 61 6d 65 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 rved-word-names...(let.((table.(
366a0 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 0a make-hash-table.:test.'equal))).
366c0 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6b 20 69 6e 20 6a 73 32 2d 72 65 73 65 72 76 ....(cl-loop.for.k.in.js2-reserv
366e0 65 64 2d 77 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 ed-words..............do........
36700 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 29 20 27 ......(puthash.(symbol-name.k).'
36720 6a 73 32 2d 52 45 53 45 52 56 45 44 20 74 61 62 6c 65 29 29 0a 20 20 20 20 74 61 62 6c 65 29 0a js2-RESERVED.table)).....table).
36740 20 20 22 4a 61 76 61 53 63 72 69 70 74 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 73 20 62 79 20 .."JavaScript.reserved.words.by.
36760 6e 61 6d 65 2c 20 6d 61 70 70 65 64 20 74 6f 20 60 6a 73 32 2d 52 45 53 45 52 56 45 44 27 2e 22 name,.mapped.to.`js2-RESERVED'."
36780 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f 6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 28 62 75 )..(defun.js2-collect-string.(bu
367a0 66 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 42 55 46 2c 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 f)..."Convert.BUF,.a.list.of.cha
367c0 72 73 2c 20 74 6f 20 61 20 73 74 72 69 6e 67 2e 0a 52 65 76 65 72 73 65 73 20 42 55 46 20 62 65 rs,.to.a.string..Reverses.BUF.be
367e0 66 6f 72 65 20 63 6f 6e 76 65 72 74 69 6e 67 2e 22 0a 20 20 28 69 66 20 62 75 66 0a 20 20 20 20 fore.converting."...(if.buf.....
36800 20 20 28 61 70 70 6c 79 20 23 27 73 74 72 69 6e 67 20 28 6e 72 65 76 65 72 73 65 20 62 75 66 29 ..(apply.#'string.(nreverse.buf)
36820 29 0a 20 20 20 20 22 22 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 74 72 69 6e 67 2d 74 6f ).....""))..(defun.js2-string-to
36840 2d 6b 65 79 77 6f 72 64 20 28 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 6f 6b 65 6e 20 66 6f 72 -keyword.(s)..."Return.token.for
36860 20 53 2c 20 61 20 73 74 72 69 6e 67 2c 20 69 66 20 53 20 69 73 20 61 20 6b 65 79 77 6f 72 64 20 .S,.a.string,.if.S.is.a.keyword.
36880 6f 72 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 2e 0a 52 65 74 75 72 6e 73 20 61 20 73 79 6d 62 or.reserved.word..Returns.a.symb
368a0 6f 6c 20 73 75 63 68 20 61 73 20 60 6a 73 32 2d 42 52 45 41 4b 27 2c 20 6f 72 20 6e 69 6c 20 69 ol.such.as.`js2-BREAK',.or.nil.i
368c0 66 20 6e 6f 74 20 6b 65 79 77 6f 72 64 2f 72 65 73 65 72 76 65 64 2e 22 0a 20 20 28 6f 72 20 28 f.not.keyword/reserved."...(or.(
368e0 67 65 74 68 61 73 68 20 73 20 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 61 6d 65 73 29 0a 20 20 20 gethash.s.js2-keyword-names)....
36900 20 20 20 28 67 65 74 68 61 73 68 20 73 20 6a 73 32 2d 72 65 73 65 72 76 65 64 2d 77 6f 72 64 2d ...(gethash.s.js2-reserved-word-
36920 6e 61 6d 65 73 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74 73 2d 73 65 74 2d 63 names)))..(defsubst.js2-ts-set-c
36940 68 61 72 2d 74 6f 6b 65 6e 2d 62 6f 75 6e 64 73 20 28 74 6f 6b 65 6e 29 0a 20 20 22 55 73 65 64 har-token-bounds.(token)..."Used
36960 20 77 68 65 6e 20 6e 65 78 74 20 74 6f 6b 65 6e 20 69 73 20 6f 6e 65 20 63 68 61 72 61 63 74 65 .when.next.token.is.one.characte
36980 72 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e r."...(setf.(js2-token-beg.token
369a0 29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 28 6a 73 ).(1-.js2-ts-cursor).........(js
369c0 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 2-token-end.token).js2-ts-cursor
369e0 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74 73 2d 72 65 74 75 72 6e 20 28 74 6f 6b ))..(defsubst.js2-ts-return.(tok
36a00 65 6e 20 74 79 70 65 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 20 60 65 6e 64 27 20 61 6e 64 en.type)..."Update.the.`end'.and
36a20 20 60 74 79 70 65 27 20 73 6c 6f 74 73 20 6f 66 20 54 4f 4b 45 4e 2c 0a 74 68 65 6e 20 74 68 72 .`type'.slots.of.TOKEN,.then.thr
36a40 6f 77 20 60 72 65 74 75 72 6e 27 20 77 69 74 68 20 76 61 6c 75 65 20 54 59 50 45 2e 22 0a 20 20 ow.`return'.with.value.TYPE."...
36a60 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d (setf.(js2-token-end.token).js2-
36a80 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 ts-cursor.........(js2-token-typ
36aa0 65 20 74 6f 6b 65 6e 29 20 74 79 70 65 29 0a 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 e.token).type)...(throw.'return.
36ac0 74 79 70 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e type))..(defun.js2-x-digit-to-in
36ae0 74 20 28 63 20 61 63 63 75 6d 75 6c 61 74 6f 72 29 0a 20 20 22 42 75 69 6c 64 20 75 70 20 61 20 t.(c.accumulator)..."Build.up.a.
36b00 68 65 78 20 6e 75 6d 62 65 72 2e 0a 49 66 20 43 20 69 73 20 61 20 68 65 78 61 64 65 63 69 6d 61 hex.number..If.C.is.a.hexadecima
36b20 6c 20 64 69 67 69 74 2c 20 72 65 74 75 72 6e 20 41 43 43 55 4d 55 4c 41 54 4f 52 20 2a 20 31 36 l.digit,.return.ACCUMULATOR.*.16
36b40 20 70 6c 75 73 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 6e 75 6d 62 65 72 2e 20 20 4f 74 68 .plus.corresponding.number...Oth
36b60 65 72 77 69 73 65 20 72 65 74 75 72 6e 20 2d 31 2e 22 0a 20 20 28 63 61 74 63 68 20 27 72 65 74 erwise.return.-1."...(catch.'ret
36b80 75 72 6e 0a 20 20 20 20 28 63 61 74 63 68 20 27 63 68 65 63 6b 0a 20 20 20 20 20 20 3b 3b 20 55 urn.....(catch.'check.......;;.U
36ba0 73 65 20 30 2e 2e 39 20 3c 20 41 2e 2e 5a 20 3c 20 61 2e 2e 7a 0a 20 20 20 20 20 20 28 63 6f 6e se.0..9.<.A..Z.<.a..z.......(con
36bc0 64 0a 20 20 20 20 20 20 20 28 28 3c 3d 20 63 20 3f 39 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d d........((<=.c.?9).........(cl-
36be0 64 65 63 66 20 63 20 3f 30 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 3d 20 30 20 63 29 0a decf.c.?0).........(if.(<=.0.c).
36c00 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 68 65 63 6b 20 6e 69 6c 29 29 29 ............(throw.'check.nil)))
36c20 0a 20 20 20 20 20 20 20 28 28 3c 3d 20 63 20 3f 46 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e ........((<=.c.?F).........(when
36c40 20 28 3c 3d 20 3f 41 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 63 20 .(<=.?A.c)...........(cl-decf.c.
36c60 28 2d 20 3f 41 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 68 65 (-.?A.10))...........(throw.'che
36c80 63 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 28 28 3c 3d 20 63 20 3f 66 29 0a 20 20 20 20 ck.nil)))........((<=.c.?f).....
36ca0 20 20 20 20 28 77 68 65 6e 20 28 3c 3d 20 3f 61 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 ....(when.(<=.?a.c)...........(c
36cc0 6c 2d 64 65 63 66 20 63 20 28 2d 20 3f 61 20 31 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 l-decf.c.(-.?a.10))...........(t
36ce0 68 72 6f 77 20 27 63 68 65 63 6b 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 28 74 68 72 6f 77 hrow.'check.nil)))).......(throw
36d00 20 27 72 65 74 75 72 6e 20 2d 31 29 29 0a 20 20 20 20 28 6c 6f 67 69 6f 72 20 63 20 28 6c 73 68 .'return.-1)).....(logior.c.(lsh
36d20 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 34 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 .accumulator.4))))..(defun.js2-g
36d40 65 74 2d 74 6f 6b 65 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 64 69 66 69 65 72 29 0a 20 20 et-token.(&optional.modifier)...
36d60 22 49 66 20 60 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 27 20 69 73 20 7a 65 72 6f 2c 20 "If.`js2-ti-lookahead'.is.zero,.
36d80 63 61 6c 6c 20 73 63 61 6e 6e 65 72 20 74 6f 20 67 65 74 20 6e 65 77 20 74 6f 6b 65 6e 2e 0a 4f call.scanner.to.get.new.token..O
36da0 74 68 65 72 77 69 73 65 2c 20 6d 6f 76 65 20 60 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 therwise,.move.`js2-ti-tokens-cu
36dc0 72 73 6f 72 27 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 0a 6e 65 78 rsor'.and.return.the.type.of.nex
36de0 74 20 73 61 76 65 64 20 74 6f 6b 65 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 t.saved.token...This.function.wi
36e00 6c 6c 20 6e 6f 74 20 72 65 74 75 72 6e 20 61 20 6e 65 77 6c 69 6e 65 20 28 6a 73 32 2d 45 4f 4c ll.not.return.a.newline.(js2-EOL
36e20 29 20 2d 20 69 6e 73 74 65 61 64 2c 20 69 74 0a 67 6f 62 62 6c 65 73 20 6e 65 77 6c 69 6e 65 73 ).-.instead,.it.gobbles.newlines
36e40 20 75 6e 74 69 6c 20 69 74 20 66 69 6e 64 73 20 61 20 6e 6f 6e 2d 6e 65 77 6c 69 6e 65 20 74 6f .until.it.finds.a.non-newline.to
36e60 6b 65 6e 2e 20 20 43 61 6c 6c 0a 60 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f ken...Call.`js2-peek-token-or-eo
36e80 6c 27 20 77 68 65 6e 20 79 6f 75 20 63 61 72 65 20 61 62 6f 75 74 20 6e 65 77 6c 69 6e 65 73 2e l'.when.you.care.about.newlines.
36ea0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 61 6c 73 6f 20 6e 6f 74 20 72 65 ..This.function.will.also.not.re
36ec0 74 75 72 6e 20 61 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 2e 20 20 49 6e 73 74 65 61 64 2c 20 69 74 turn.a.js2-COMMENT...Instead,.it
36ee0 0a 72 65 63 6f 72 64 73 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 75 6e 64 20 69 6e 20 60 6a 73 32 2d .records.comments.found.in.`js2-
36f00 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 27 2e 20 20 49 66 20 74 68 65 20 74 6f 6b 65 6e scanned-comments'...If.the.token
36f20 0a 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6d 6d 65 64 .returned.by.this.function.immed
36f40 69 61 74 65 6c 79 20 66 6f 6c 6c 6f 77 73 20 61 20 6a 73 64 6f 63 20 63 6f 6d 6d 65 6e 74 2c 0a iately.follows.a.jsdoc.comment,.
36f60 74 68 65 20 74 6f 6b 65 6e 20 69 73 20 66 6c 61 67 67 65 64 20 61 73 20 73 75 63 68 2e 22 0a 20 the.token.is.flagged.as.such."..
36f80 20 28 69 66 20 28 7a 65 72 6f 70 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 29 0a 20 20 .(if.(zerop.js2-ti-lookahead)...
36fa0 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 20 6d 6f 64 69 ....(js2-get-token-internal.modi
36fc0 66 69 65 72 29 0a 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 fier).....(cl-decf.js2-ti-lookah
36fe0 65 61 64 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 ead).....(setq.js2-ti-tokens-cur
37000 73 6f 72 20 28 6d 6f 64 20 28 31 2b 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f sor.(mod.(1+.js2-ti-tokens-curso
37020 72 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 r).js2-ti-ntokens)).....(let.((t
37040 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 29 0a 20 20 20 t.(js2-current-token-type)))....
37060 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 6f 74 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 4c ...(cl-assert.(not.(=.tt.js2-EOL
37080 29 29 29 0a 20 20 20 20 20 20 74 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 75 6e 67 65 ))).......tt)))..(defun.js2-unge
370a0 74 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 3c 20 6a 73 32 2d 74 t-token.()...(cl-assert.(<.js2-t
370c0 69 2d 6c 6f 6f 6b 61 68 65 61 64 20 6a 73 32 2d 74 69 2d 6d 61 78 2d 6c 6f 6f 6b 61 68 65 61 64 i-lookahead.js2-ti-max-lookahead
370e0 29 29 0a 20 20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 29 0a ))...(cl-incf.js2-ti-lookahead).
37100 20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20 28 6d 6f ..(setq.js2-ti-tokens-cursor.(mo
37120 64 20 28 31 2d 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 29 20 6a 73 32 2d d.(1-.js2-ti-tokens-cursor).js2-
37140 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 74 6f ti-ntokens)))..(defun.js2-get-to
37160 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 20 28 6d 6f 64 69 66 69 65 72 29 0a 20 20 28 6c 65 74 2a 20 ken-internal.(modifier)...(let*.
37180 28 28 74 6f 6b 65 6e 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 2d ((token.(js2-get-token-internal-
371a0 31 20 6d 6f 64 69 66 69 65 72 29 29 20 3b 20 63 61 6c 6c 20 73 63 61 6e 6e 65 72 0a 20 20 20 20 1.modifier)).;.call.scanner.....
371c0 20 20 20 20 20 28 74 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f 6b 65 6e 29 29 .....(tt.(js2-token-type.token))
371e0 0a 20 20 20 20 20 20 20 20 20 73 61 77 2d 65 6f 6c 0a 20 20 20 20 20 20 20 20 20 66 61 63 65 29 ..........saw-eol..........face)
37200 0a 20 20 20 20 3b 3b 20 70 72 6f 63 65 73 73 20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 28 77 68 .....;;.process.comments.....(wh
37220 69 6c 65 20 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 4c 29 20 28 3d 20 74 74 20 6a 73 32 ile.(or.(=.tt.js2-EOL).(=.tt.js2
37240 2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 45 -COMMENT)).......(if.(=.tt.js2-E
37260 4f 4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 61 77 2d 65 6f 6c 20 74 29 0a 20 OL)...........(setq.saw-eol.t)..
37280 20 20 20 20 20 20 20 28 73 65 74 71 20 73 61 77 2d 65 6f 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20 .......(setq.saw-eol.nil).......
372a0 20 20 28 77 68 65 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 ..(when.js2-record-comments.....
372c0 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 63 6f 6d 6d 65 6e 74 20 74 6f 6b 65 6e 29 ......(js2-record-comment.token)
372e0 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 )).......(setq.js2-ti-tokens-cur
37300 73 6f 72 20 28 6d 6f 64 20 28 31 2d 20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f sor.(mod.(1-.js2-ti-tokens-curso
37320 72 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 r).js2-ti-ntokens)).......(setq.
37340 74 6f 6b 65 6e 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 2d 31 20 token.(js2-get-token-internal-1.
37360 6d 6f 64 69 66 69 65 72 29 20 3b 20 63 61 6c 6c 20 73 63 61 6e 6e 65 72 20 61 67 61 69 6e 0a 20 modifier).;.call.scanner.again..
37380 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f ...........tt.(js2-token-type.to
373a0 6b 65 6e 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 73 61 77 2d 65 6f 6c 0a 20 20 20 20 20 20 ken)))......(when.saw-eol.......
373c0 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 20 74 (setf.(js2-token-follows-eol-p.t
373e0 6f 6b 65 6e 29 20 74 29 29 0a 0a 20 20 20 20 3b 3b 20 70 65 72 66 6f 72 6d 20 6c 65 78 69 63 61 oken).t))......;;.perform.lexica
37400 6c 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 61 73 20 73 6f 6f 6e 20 61 73 20 74 6f 6b 65 6e l.fontification.as.soon.as.token
37420 20 69 73 20 73 63 61 6e 6e 65 64 0a 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d .is.scanned.....(when.js2-parse-
37440 69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 63 6c ide-mode.......(cond........((cl
37460 2d 6d 69 6e 75 73 70 20 74 74 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d -minusp.tt).........(js2-record-
37480 66 61 63 65 20 27 6a 73 32 2d 65 72 72 6f 72 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 28 face.'js2-error.token))........(
374a0 28 73 65 74 71 20 66 61 63 65 20 28 61 72 65 66 20 6a 73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 20 (setq.face.(aref.js2-kwd-tokens.
374c0 74 74 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 66 61 tt)).........(js2-record-face.fa
374e0 63 65 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 ce.token))........((and.(=.tt.js
37500 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 6a 73 32 2-NAME)..............(equal.(js2
37520 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 22 75 6e 64 65 66 69 6e 65 64 22 -token-string.token)."undefined"
37540 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e )).........(js2-record-face.'fon
37560 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 20 74 6f 6b 65 6e 29 29 29 29 0a 20 t-lock-constant-face.token))))..
37580 20 20 20 74 74 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 73 74 72 69 6e 67 2d 74 6f ...tt))..(defsubst.js2-string-to
375a0 2d 6e 75 6d 62 65 72 20 28 73 74 72 20 62 61 73 65 29 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 4d -number.(str.base)...;;.TODO:..M
375c0 61 79 62 65 20 70 6f 72 74 20 53 63 72 69 70 74 52 75 6e 74 69 6d 65 2e 73 74 72 69 6e 67 54 6f aybe.port.ScriptRuntime.stringTo
375e0 4e 75 6d 62 65 72 2e 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 Number....(condition-case.nil...
37600 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 73 74 72 20 62 61 73 65 29 0a ....(string-to-number.str.base).
37620 20 20 20 20 28 6f 76 65 72 66 6c 6f 77 2d 65 72 72 6f 72 20 2d 31 29 29 29 0a 0a 28 64 65 66 75 ....(overflow-error.-1)))..(defu
37640 6e 20 6a 73 32 2d 68 61 6e 64 6c 65 2d 6e 75 6d 65 72 69 63 2d 73 65 70 61 72 61 74 6f 72 20 28 n.js2-handle-numeric-separator.(
37660 29 0a 20 20 22 44 65 74 65 63 74 20 61 6e 64 20 68 61 6e 64 6c 65 20 6e 75 6d 65 72 69 63 20 73 )..."Detect.and.handle.numeric.s
37680 65 70 61 72 61 74 6f 72 20 3f 5f 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 6e eparator.?_."...(let.((buffer.(n
376a0 72 65 76 65 72 73 65 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a 20 reverse.js2-ts-string-buffer))..
376c0 20 20 20 20 20 20 20 28 72 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 .......(res.nil)).....(while.(>.
376e0 28 6c 65 6e 67 74 68 20 62 75 66 66 65 72 29 20 30 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 (length.buffer).0).......(let.((
37700 63 75 72 72 65 6e 74 2d 63 20 28 63 61 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 current-c.(car.buffer)).........
37720 20 20 20 20 28 6e 65 78 74 2d 63 20 28 63 61 64 72 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 ....(next-c.(cadr.buffer))).....
37740 20 20 20 20 28 69 66 20 28 65 71 20 63 75 72 72 65 6e 74 2d 63 20 3f 5f 29 0a 20 20 20 20 20 20 ....(if.(eq.current-c.?_).......
37760 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 3d 20 28 6c 65 6e 67 74 68 20 62 75 66 66 65 72 29 ......(if.(or.(=.(length.buffer)
37780 20 31 29 20 28 6d 65 6d 71 20 6e 65 78 74 2d 63 20 27 28 3f 2e 20 3f 65 20 3f 45 29 29 29 0a 20 .1).(memq.next-c.'(?..?e.?E)))..
377a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d ...............(js2-report-scan-
377c0 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 74 72 61 69 6c 69 6e 67 2e 6e 75 6d 65 72 69 63 2e 6c error."msg.no.trailing.numeric.l
377e0 69 74 65 72 61 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 iteral")...............(when.(=.
37800 28 63 61 64 72 20 62 75 66 66 65 72 29 20 3f 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (cadr.buffer).?_)...............
37820 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f ..(js2-report-scan-error."msg.no
37840 2e 63 6f 6e 73 65 63 75 74 69 76 65 2e 6e 75 6d 65 72 69 63 2e 6c 69 74 65 72 61 6c 22 29 29 29 .consecutive.numeric.literal")))
37860 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 62 75 66 66 65 72 29 20 72 65 ...........(push.(car.buffer).re
37880 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 20 28 63 64 72 20 62 75 66 s))).......(setq.buffer.(cdr.buf
378a0 66 65 72 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 fer))).....(setq.js2-ts-string-b
378c0 75 66 66 65 72 20 72 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 74 6f 6b uffer.res)))..(defun.js2-get-tok
378e0 65 6e 2d 69 6e 74 65 72 6e 61 6c 2d 31 20 28 6d 6f 64 69 66 69 65 72 29 0a 20 20 22 52 65 74 75 en-internal-1.(modifier)..."Retu
37900 72 6e 20 6e 65 78 74 20 4a 61 76 61 53 63 72 69 70 74 20 74 6f 6b 65 6e 20 74 79 70 65 2c 20 61 rn.next.JavaScript.token.type,.a
37920 6e 20 69 6e 74 20 73 75 63 68 20 61 73 20 6a 73 32 2d 52 45 54 55 52 4e 2e 0a 44 75 72 69 6e 67 n.int.such.as.js2-RETURN..During
37940 20 6f 70 65 72 61 74 69 6f 6e 2c 20 63 72 65 61 74 65 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 .operation,.creates.an.instance.
37960 6f 66 20 60 6a 73 32 2d 74 6f 6b 65 6e 27 20 73 74 72 75 63 74 2c 20 73 65 74 73 0a 69 74 73 20 of.`js2-token'.struct,.sets.its.
37980 72 65 6c 65 76 61 6e 74 20 66 69 65 6c 64 73 20 61 6e 64 20 70 75 74 73 20 69 74 20 69 6e 74 6f relevant.fields.and.puts.it.into
379a0 20 60 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 69 64 65 6e 74 .`js2-ti-tokens'."...(let.(ident
379c0 69 66 69 65 72 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 69 64 65 6e 74 69 66 69 65 72 2d 70 ifier-start.........identifier-p
379e0 72 69 76 61 74 65 0a 20 20 20 20 20 20 20 20 69 73 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65 rivate.........is-unicode-escape
37a00 2d 73 74 61 72 74 20 63 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 73 2d 65 73 63 61 70 65 -start.c.........contains-escape
37a20 20 65 73 63 61 70 65 2d 76 61 6c 20 73 74 72 20 72 65 73 75 6c 74 20 62 61 73 65 0a 20 20 20 20 .escape-val.str.result.base.....
37a40 20 20 20 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 63 6f 6e 74 69 6e 75 65 20 74 74 20 6c ....look-for-slash.continue.tt.l
37a60 65 67 61 63 79 2d 6f 63 74 61 6c 0a 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 20 28 6a 73 32 2d egacy-octal.........(token.(js2-
37a80 6e 65 77 2d 74 6f 6b 65 6e 20 30 29 29 29 0a 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 74 74 new-token.0))).....(setq......tt
37aa0 0a 20 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 28 77 68 65 ......(catch.'return........(whe
37ac0 6e 20 28 65 71 20 6d 6f 64 69 66 69 65 72 20 27 54 45 4d 50 4c 41 54 45 5f 54 41 49 4c 29 0a 20 n.(eq.modifier.'TEMPLATE_TAIL)..
37ae0 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b ........(setf.(js2-token-beg.tok
37b00 65 6e 29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 29 0a 20 20 20 20 20 20 20 20 en).(1-.js2-ts-cursor)).........
37b20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 28 6a 73 32 2d 67 65 74 2d 73 74 72 69 6e 67 2d .(throw.'return.(js2-get-string-
37b40 6f 72 2d 74 65 6d 70 6c 61 74 65 2d 74 6f 6b 65 6e 20 3f 60 20 74 6f 6b 65 6e 29 29 29 0a 20 20 or-template-token.?`.token)))...
37b60 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 45 61 74 20 77 68 .....(while.t..........;;.Eat.wh
37b80 69 74 65 73 70 61 63 65 2c 20 70 6f 73 73 69 62 6c 79 20 73 65 6e 73 69 74 69 76 65 20 74 6f 20 itespace,.possibly.sensitive.to.
37ba0 6e 65 77 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 newlines...........(setq.continu
37bc0 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 e.t)..........(while.continue...
37be0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 .........(setq.c.(js2-get-char))
37c00 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 ............(cond.............((
37c20 65 71 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 eq.c.js2-EOF_CHAR)..............
37c40 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a (js2-unget-char)..............(j
37c60 73 32 2d 74 73 2d 73 65 74 2d 63 68 61 72 2d 74 6f 6b 65 6e 2d 62 6f 75 6e 64 73 20 74 6f 6b 65 s2-ts-set-char-token-bounds.toke
37c80 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a n)..............(throw.'return.j
37ca0 73 32 2d 45 4f 46 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 6e 29 s2-EOF)).............((eq.c.?\n)
37cc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 73 65 74 2d 63 68 61 72 2d 74 ..............(js2-ts-set-char-t
37ce0 6f 6b 65 6e 2d 62 6f 75 6e 64 73 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 oken-bounds.token)..............
37d00 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20 (setq.js2-ts-dirty-line.nil)....
37d20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 4f 4c ..........(throw.'return.js2-EOL
37d40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 6a 73 32 2d 6a 73 2d 73 70 61 )).............((not.(js2-js-spa
37d60 63 65 2d 70 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 63 20 ce-p.c))..............(if.(/=.c.
37d80 3f 2d 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 20 63 61 73 65 20 65 6e 64 20 6f ?-)..............;.in.case.end.o
37da0 66 20 48 54 4d 4c 20 63 6f 6d 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.HTML.comment..................
37dc0 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69 6e 65 20 74 29 29 0a 20 20 20 20 (setq.js2-ts-dirty-line.t)).....
37de0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a .........(setq.continue.nil)))).
37e00 20 20 20 20 20 20 20 20 20 3b 3b 20 41 73 73 75 6d 65 20 74 68 65 20 74 6f 6b 65 6e 20 77 69 6c .........;;.Assume.the.token.wil
37e20 6c 20 62 65 20 31 20 63 68 61 72 20 2d 20 66 69 78 65 64 20 75 70 20 62 65 6c 6f 77 2e 0a 20 20 l.be.1.char.-.fixed.up.below....
37e40 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 73 65 74 2d 63 68 61 72 2d 74 6f 6b 65 6e 2d 62 6f .......(js2-ts-set-char-token-bo
37e60 75 6e 64 73 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 63 unds.token)..........(when.(eq.c
37e80 20 3f 40 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a .?@)............(throw.'return.j
37ea0 73 32 2d 58 4d 4c 41 54 54 52 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 69 64 65 6e 74 69 66 s2-XMLATTR))..........;;.identif
37ec0 69 65 72 2f 6b 65 79 77 6f 72 64 2f 69 6e 73 74 61 6e 63 65 6f 66 3f 0a 20 20 20 20 20 20 20 20 ier/keyword/instanceof?.........
37ee0 20 3b 3b 20 77 61 74 63 68 20 6f 75 74 20 66 6f 72 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 .;;.watch.out.for.starting.with.
37f00 61 20 3c 62 61 63 6b 73 6c 61 73 68 3e 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 a.<backslash>..........(cond....
37f20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 5c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 .......((eq.c.?\\)............(s
37f40 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 etq.c.(js2-get-char))...........
37f60 20 28 69 66 20 28 65 71 20 63 20 3f 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 .(if.(eq.c.?u)................(s
37f80 65 74 71 20 69 64 65 6e 74 69 66 69 65 72 2d 73 74 61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20 etq.identifier-start.t..........
37fa0 20 20 20 20 20 20 20 20 20 20 20 20 69 73 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65 2d 73 74 ............is-unicode-escape-st
37fc0 61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 art.t......................js2-t
37fe0 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 s-string-buffer.nil)............
38000 20 20 28 73 65 74 71 20 69 64 65 6e 74 69 66 69 65 72 2d 73 74 61 72 74 20 6e 69 6c 29 0a 20 20 ..(setq.identifier-start.nil)...
38020 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 ...........(js2-unget-char).....
38040 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 3f 5c 5c 29 29 29 0a 20 20 20 20 20 20 20 20 .........(setq.c.?\\))).........
38060 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 74 71 20 69 64 65 6e ..(t............(when.(setq.iden
38080 74 69 66 69 65 72 2d 73 74 61 72 74 20 28 6f 72 20 28 6a 73 32 2d 69 64 65 6e 74 69 66 69 65 72 tifier-start.(or.(js2-identifier
380a0 2d 73 74 61 72 74 2d 70 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -start-p.c).....................
380c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 ........................(and....
380e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38100 20 20 20 20 20 20 20 20 20 20 28 65 71 20 63 20 3f 23 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........(eq.c.?#).............
38120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38140 20 28 73 65 74 71 20 69 64 65 6e 74 69 66 69 65 72 2d 70 72 69 76 61 74 65 20 74 29 29 29 29 0a .(setq.identifier-private.t)))).
38160 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 .............(setq.js2-ts-string
38180 2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 -buffer.nil)..............(js2-a
381a0 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 dd-to-string.c))))..........(whe
381c0 6e 20 69 64 65 6e 74 69 66 69 65 72 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 n.identifier-start............(s
381e0 65 74 71 20 63 6f 6e 74 61 69 6e 73 2d 65 73 63 61 70 65 20 69 73 2d 75 6e 69 63 6f 64 65 2d 65 etq.contains-escape.is-unicode-e
38200 73 63 61 70 65 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27 scape-start)............(catch.'
38220 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 break..............(while.t.....
38240 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 73 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65 ...........(if.is-unicode-escape
38260 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 72 -start....................;;.str
38280 69 63 74 6c 79 20 73 70 65 61 6b 69 6e 67 20 77 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c ictly.speaking.we.should.probabl
382a0 79 20 70 75 73 68 2d 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b y.push-back....................;
382c0 3b 20 61 6c 6c 20 74 68 65 20 62 61 64 20 63 68 61 72 61 63 74 65 72 73 20 69 66 20 74 68 65 20 ;.all.the.bad.characters.if.the.
382e0 3c 62 61 63 6b 73 6c 61 73 68 3e 75 58 58 58 58 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <backslash>uXXXX................
38300 20 20 20 20 3b 3b 20 73 65 71 75 65 6e 63 65 20 69 73 20 6d 61 6c 66 6f 72 6d 65 64 2e 20 42 75 ....;;.sequence.is.malformed..Bu
38320 74 20 73 69 6e 63 65 20 74 68 65 72 65 20 69 73 6e 27 74 20 61 0a 20 20 20 20 20 20 20 20 20 20 t.since.there.isn't.a...........
38340 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 72 72 65 63 74 20 63 6f 6e 74 65 78 74 28 69 73 20 74 .........;;.correct.context(is.t
38360 68 65 72 65 3f 29 20 66 6f 72 20 61 20 62 61 64 20 55 6e 69 63 6f 64 65 0a 20 20 20 20 20 20 20 here?).for.a.bad.Unicode........
38380 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 73 63 61 70 65 20 73 65 71 75 65 6e 63 65 20 69 ............;;.escape.sequence.i
383a0 6e 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2c 20 77 65 20 63 61 6e 20 72 65 70 6f 72 74 0a 20 n.an.identifier,.we.can.report..
383c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 20 65 72 72 6f 72 20 68 65 ..................;;.an.error.he
383e0 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 re.....................(progn...
38400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 73 63 61 70 65 2d ...................(setq.escape-
38420 76 61 6c 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 val.0)......................(dot
38440 69 6d 65 73 20 28 5f 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 imes.(_.4)......................
38460 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 ..(setq.c.(js2-get-char)........
38480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 73 63 61 70 65 2d 76 61 6c ......................escape-val
384a0 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 65 73 63 61 70 65 2d 76 61 .(js2-x-digit-to-int.c.escape-va
384c0 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 65 l))........................;;.Ne
384e0 78 74 20 63 68 65 63 6b 20 74 61 6b 65 73 20 63 61 72 65 20 6f 66 20 63 20 3c 20 30 20 61 6e 64 xt.check.takes.care.of.c.<.0.and
38500 20 62 61 64 20 65 73 63 61 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .bad.escape.....................
38520 20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 ...(if.(cl-minusp.escape-val)...
38540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 .........................(throw.
38560 27 62 72 65 61 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'break.nil)))...................
38580 20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 ...(if.(cl-minusp.escape-val)...
385a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f .......................(js2-repo
385c0 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 65 73 63 61 70 rt-scan-error."msg.invalid.escap
385e0 65 22 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 e".t))......................(js2
38600 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 20 20 20 -add-to-string.escape-val)......
38620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73 2d 75 6e 69 63 6f 64 65 ................(setq.is-unicode
38640 2d 65 73 63 61 70 65 2d 73 74 61 72 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -escape-start.nil)).............
38660 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 .....(setq.c.(js2-get-char))....
38680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..............(cond.............
386a0 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 5c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......((eq.c.?\\)...............
386c0 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 .....(setq.c.(js2-get-char))....
386e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 63 20 3f 75 29 0a 20 20 ................(if.(eq.c.?u)...
38700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73 2d 75 6e .....................(setq.is-un
38720 69 63 6f 64 65 2d 65 73 63 61 70 65 2d 73 74 61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 icode-escape-start.t............
38740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 61 69 6e 73 2d 65 73 63 61 70 ..................contains-escap
38760 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 e.t)......................(js2-r
38780 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6c 6c 65 67 61 6c 2e 63 68 eport-scan-error."msg.illegal.ch
387a0 61 72 61 63 74 65 72 22 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aracter".t)))...................
387c0 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 65 (t....................(if.(or.(e
387e0 71 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 q.c.js2-EOF_CHAR)...............
38800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 69 64 65 6e 74 69 66 69 65 .............(not.(js2-identifie
38820 72 2d 70 61 72 74 2d 70 20 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-part-p.c)))...................
38840 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 .....(throw.'break.nil))........
38860 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 ............(js2-add-to-string.c
38880 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 ))))))............(js2-unget-cha
388a0 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 73 74 72 20 28 6a 73 32 2d 63 6f 6c r)............(setf.str.(js2-col
388c0 6c 65 63 74 2d 73 74 72 69 6e 67 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 lect-string.js2-ts-string-buffer
388e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e )..................(js2-token-en
38900 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 d.token).js2-ts-cursor).........
38920 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 49 6e 76 61 6c 69 64 20 69 6e 20 45 53 35 20 61 6e 64 20 ...;;.FIXME:.Invalid.in.ES5.and.
38940 45 53 36 2c 20 73 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 62 ES6,.see............;;.https://b
38960 75 67 7a 69 6c 6c 61 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 73 68 6f 77 5f 62 75 67 2e 63 67 69 ugzilla.mozilla.org/show_bug.cgi
38980 3f 69 64 3d 36 39 34 33 36 30 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 6f 62 61 62 6c ?id=694360............;;.Probabl
389a0 79 20 73 68 6f 75 6c 64 20 6a 75 73 74 20 64 72 6f 70 20 74 68 69 73 20 63 6f 6e 64 69 74 69 6f y.should.just.drop.this.conditio
389c0 6e 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 63 6f 6e 74 61 69 6e 73 nal.............(unless.contains
389e0 2d 65 73 63 61 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 50 54 20 77 65 20 73 -escape..............;;.OPT.we.s
38a00 68 6f 75 6c 64 6e 27 74 20 68 61 76 65 20 74 6f 20 6d 61 6b 65 20 61 20 73 74 72 69 6e 67 20 28 houldn't.have.to.make.a.string.(
38a20 6f 62 6a 65 63 74 21 29 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 65 63 object!).to..............;;.chec
38a40 6b 20 69 66 20 69 74 27 73 20 61 20 6b 65 79 77 6f 72 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 k.if.it's.a.keyword.............
38a60 20 20 3b 3b 20 52 65 74 75 72 6e 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f ..;;.Return.the.corresponding.to
38a80 6b 65 6e 20 69 66 20 69 74 27 73 20 61 20 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 ken.if.it's.a.keyword...........
38aa0 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71 20 6d 6f 64 69 66 69 65 72 20 ...(when.(and.(not.(eq.modifier.
38ac0 27 4b 45 59 57 4f 52 44 5f 49 53 5f 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 'KEYWORD_IS_NAME))..............
38ae0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 6a 73 32 2d 73 74 72 ...........(setq.result.(js2-str
38b00 69 6e 67 2d 74 6f 2d 6b 65 79 77 6f 72 64 20 73 74 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ing-to-keyword.str)))...........
38b20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3c 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 .....(if.(and.(<.js2-language-ve
38b40 72 73 69 6f 6e 20 31 37 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion.170)......................
38b60 20 20 20 28 6d 65 6d 71 20 72 65 73 75 6c 74 20 27 28 6a 73 32 2d 4c 45 54 20 6a 73 32 2d 59 49 ...(memq.result.'(js2-LET.js2-YI
38b80 45 4c 44 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 45 54 ELD)))....................;;.LET
38ba0 20 61 6e 64 20 59 49 45 4c 44 20 61 72 65 20 74 6f 6b 65 6e 73 20 6f 6e 6c 79 20 69 6e 20 31 2e .and.YIELD.are.tokens.only.in.1.
38bc0 37 20 61 6e 64 20 6c 61 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7.and.later....................(
38be0 73 65 74 71 20 72 65 73 75 6c 74 20 27 6a 73 32 2d 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 20 20 setq.result.'js2-NAME)).........
38c00 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 72 65 73 75 6c 74 20 27 6a 73 32 2d 52 45 53 .......(when.(eq.result.'js2-RES
38c20 45 52 56 45 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a ERVED)..................(setf.(j
38c40 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 73 74 72 29 29 0a 20 20 20 s2-token-string.token).str))....
38c60 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 28 6a 73 32 2d ............(throw.'return.(js2-
38c80 74 74 2d 63 6f 64 65 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b tt-code.result))))............;;
38ca0 20 49 66 20 77 65 20 77 61 6e 74 20 74 6f 20 69 6e 74 65 72 6e 20 74 68 65 73 65 20 61 73 20 52 .If.we.want.to.intern.these.as.R
38cc0 68 69 6e 6f 20 64 6f 65 73 2c 20 6a 75 73 74 20 75 73 65 20 28 69 6e 74 65 72 6e 20 73 74 72 29 hino.does,.just.use.(intern.str)
38ce0 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 ............(setf.(js2-token-str
38d00 69 6e 67 20 74 6f 6b 65 6e 29 20 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f ing.token).str)............(thro
38d20 77 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 w.'return...................(if.
38d40 69 64 65 6e 74 69 66 69 65 72 2d 70 72 69 76 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 identifier-private..............
38d60 20 20 20 20 20 20 20 20 20 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 0a 20 20 20 20 20 20 .........js2-PRIVATE_NAME.......
38d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 ..............js2-NAME).........
38da0 20 20 20 20 20 20 20 20 20 20 29 29 20 20 20 20 3b 20 65 6e 64 20 69 64 65 6e 74 69 66 69 65 72 ..........))....;.end.identifier
38dc0 2f 6b 77 64 20 63 68 65 63 6b 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 69 74 20 61 20 6e /kwd.check..........;;.is.it.a.n
38de0 75 6d 62 65 72 3f 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32 2d 64 umber?..........(when.(or.(js2-d
38e00 69 67 69 74 2d 70 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e igit-p.c)....................(an
38e20 64 20 28 65 71 20 63 20 3f 2e 29 20 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 28 6a 73 32 2d 70 65 d.(eq.c.?.).(js2-digit-p.(js2-pe
38e40 65 6b 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 ek-char))))............(setq.js2
38e60 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 -ts-string-buffer.nil...........
38e80 20 20 20 20 20 20 20 62 61 73 65 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e .......base.10)............(when
38ea0 20 28 65 71 20 63 20 3f 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 .(eq.c.?0)..............(setq.c.
38ec0 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f (js2-get-char))..............(co
38ee0 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5f 29 20 28 6a 73 32 nd...............((eq.c.?_).(js2
38f00 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 6e 75 6d 65 72 -report-scan-error."msg.no.numer
38f20 69 63 2e 73 65 70 61 72 61 74 6f 72 2e 61 66 74 65 72 2e 6c 65 61 64 69 6e 67 2e 7a 65 72 6f 22 ic.separator.after.leading.zero"
38f40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 65 71 20 63 20 3f 78 29 20 ))...............((or.(eq.c.?x).
38f60 28 65 71 20 63 20 3f 58 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 (eq.c.?X))................(setq.
38f80 62 61 73 65 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 base.16)................(setq.c.
38fa0 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (js2-get-char)))...............(
38fc0 28 61 6e 64 20 28 6f 72 20 28 65 71 20 63 20 3f 62 29 20 28 65 71 20 63 20 3f 42 29 29 0a 20 20 (and.(or.(eq.c.?b).(eq.c.?B))...
38fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 ..................(>=.js2-langua
39000 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ge-version.200))................
39020 28 73 65 74 71 20 62 61 73 65 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 (setq.base.2)................(se
39040 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 tq.c.(js2-get-char)))...........
39060 20 20 20 20 28 28 61 6e 64 20 28 6f 72 20 28 65 71 20 63 20 3f 6f 29 20 28 65 71 20 63 20 3f 4f ....((and.(or.(eq.c.?o).(eq.c.?O
39080 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c )).....................(>=.js2-l
390a0 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 anguage-version.200))...........
390c0 20 20 20 20 20 28 73 65 74 71 20 62 61 73 65 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(setq.base.8)..............
390e0 20 20 28 73 65 74 71 20 6c 65 67 61 63 79 2d 6f 63 74 61 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20 ..(setq.legacy-octal.nil).......
39100 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 .........(setq.c.(js2-get-char))
39120 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 63 29 )...............((js2-digit-p.c)
39140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 61 73 65 20 27 6d 61 79 62 ................(setq.base.'mayb
39160 65 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 e-8))...............(t..........
39180 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 30 29 29 29 29 0a ......(js2-add-to-string.?0)))).
391a0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 ...........(cond.............((e
391c0 71 20 62 61 73 65 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 30 q.base.16)..............(if.(>.0
391e0 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 30 29 29 0a 20 20 20 20 20 .(js2-x-digit-to-int.c.0))......
39200 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 ............(js2-report-scan-err
39220 6f 72 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 68 65 78 2e 64 69 67 69 74 73 22 29 0a 20 20 20 or."msg.missing.hex.digits")....
39240 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6f 72 20 28 3c 3d 20 30 20 28 6a 73 ............(while.(or.(<=.0.(js
39260 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 30 29 29 20 28 3d 20 63 20 3f 5f 29 29 2-x-digit-to-int.c.0)).(=.c.?_))
39280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 ..................(js2-add-to-st
392a0 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 ring.c)..................(setq.c
392c0 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(js2-get-char))))).............
392e0 28 28 65 71 20 62 61 73 65 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e ((eq.base.2)..............(if.(n
39300 6f 74 20 28 6d 65 6d 71 20 63 20 27 28 3f 30 20 3f 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ot.(memq.c.'(?0.?1)))...........
39320 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d .......(js2-report-scan-error."m
39340 73 67 2e 6d 69 73 73 69 6e 67 2e 62 69 6e 61 72 79 2e 64 69 67 69 74 73 22 29 0a 20 20 20 20 20 sg.missing.binary.digits")......
39360 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6d 65 6d 71 20 63 20 27 28 3f 30 20 3f 31 ..........(while.(memq.c.'(?0.?1
39380 20 3f 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d .?_))..................(js2-add-
393a0 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 to-string.c)..................(s
393c0 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 etq.c.(js2-get-char)))))........
393e0 20 20 20 20 20 28 28 65 71 20 62 61 73 65 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .....((eq.base.8)..............(
39400 69 66 20 28 6f 72 20 28 3e 20 3f 30 20 63 29 20 28 3c 20 3f 37 20 63 29 29 0a 20 20 20 20 20 20 if.(or.(>.?0.c).(<.?7.c)).......
39420 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f ...........(js2-report-scan-erro
39440 72 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 6f 63 74 61 6c 2e 64 69 67 69 74 73 22 29 0a 20 20 r."msg.missing.octal.digits")...
39460 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6f 72 20 28 61 6e 64 20 28 3c 3d .............(while.(or.(and.(<=
39480 20 3f 30 20 63 29 20 28 3e 3d 20 3f 37 20 63 29 29 20 28 3d 20 63 20 3f 5f 29 29 0a 20 20 20 20 .?0.c).(>=.?7.c)).(=.c.?_)).....
394a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 .............(js2-add-to-string.
394c0 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 c)..................(setq.c.(js2
394e0 2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 -get-char))))).............(t...
39500 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6f 72 20 28 61 6e 64 20 28 3c 3d 20 3f ...........(while.(or.(and.(<=.?
39520 30 20 63 29 20 28 3c 3d 20 63 20 3f 39 29 29 20 28 3d 20 63 20 3f 5f 29 29 0a 20 20 20 20 20 20 0.c).(<=.c.?9)).(=.c.?_)).......
39540 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 70 65 72 6d 69 74 20 30 38 20 61 6e 64 20 30 39 20 .........;;.We.permit.08.and.09.
39560 61 73 20 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65 72 73 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 as.decimal.numbers,.which.......
39580 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 73 20 6f 75 72 20 62 65 68 61 76 69 6f 72 20 61 .........;;.makes.our.behavior.a
395a0 20 73 75 70 65 72 73 65 74 20 6f 66 20 74 68 65 20 45 43 4d 41 0a 20 20 20 20 20 20 20 20 20 20 .superset.of.the.ECMA...........
395c0 20 20 20 20 20 3b 3b 20 6e 75 6d 65 72 69 63 20 67 72 61 6d 6d 61 72 2e 20 20 57 65 20 6d 69 67 .....;;.numeric.grammar...We.mig
395e0 68 74 20 6e 6f 74 20 61 6c 77 61 79 73 20 62 65 20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 ht.not.always.be.so.............
39600 20 20 20 3b 3b 20 70 65 72 6d 69 73 73 69 76 65 2c 20 73 6f 20 77 65 20 77 61 72 6e 20 61 62 6f ...;;.permissive,.so.we.warn.abo
39620 75 74 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 ut.it.................(when.(and
39640 20 28 65 71 20 62 61 73 65 20 27 6d 61 79 62 65 2d 38 29 20 28 3e 3d 20 63 20 3f 38 29 29 0a 20 .(eq.base.'maybe-8).(>=.c.?8))..
39660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e ................(js2-report-warn
39680 69 6e 67 20 22 6d 73 67 2e 62 61 64 2e 6f 63 74 61 6c 2e 6c 69 74 65 72 61 6c 22 0a 20 20 20 20 ing."msg.bad.octal.literal".....
396a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
396c0 20 28 69 66 20 28 65 71 20 63 20 3f 38 29 20 22 38 22 20 22 39 22 29 29 0a 20 20 20 20 20 20 20 .(if.(eq.c.?8)."8"."9"))........
396e0 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 61 73 65 20 31 30 29 29 0a 20 20 20 20 20 20 ..........(setq.base.10)).......
39700 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 .........(js2-add-to-string.c)..
39720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 ..............(setq.c.(js2-get-c
39740 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 62 61 har)))..............(when.(eq.ba
39760 73 65 20 27 6d 61 79 62 65 2d 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 se.'maybe-8)................(set
39780 71 20 62 61 73 65 20 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 q.base.8......................le
397a0 67 61 63 79 2d 6f 63 74 61 6c 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 gacy-octal.t))))............(whe
397c0 6e 20 28 61 6e 64 20 28 65 71 20 62 61 73 65 20 31 30 29 20 28 6d 65 6d 71 20 63 20 27 28 3f 2e n.(and.(eq.base.10).(memq.c.'(?.
397e0 20 3f 65 20 3f 45 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 .?e.?E)))..............(when.(eq
39800 20 63 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 64 .c.?.)................(cl-loop.d
39820 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 o.........................(js2-a
39840 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dd-to-string.c).................
39860 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a ........(setq.c.(js2-get-char)).
39880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6f ........................while.(o
398a0 72 20 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 63 29 20 28 3d 20 63 20 3f 5f 29 29 29 29 0a 20 20 r.(js2-digit-p.c).(=.c.?_))))...
398c0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 63 20 27 28 3f 65 20 3f 45 ...........(when.(memq.c.'(?e.?E
398e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 ))................(js2-add-to-st
39900 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 ring.c)................(setq.c.(
39920 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 js2-get-char))................(w
39940 68 65 6e 20 28 6d 65 6d 71 20 63 20 27 28 3f 2b 20 3f 2d 29 29 0a 20 20 20 20 20 20 20 20 20 20 hen.(memq.c.'(?+.?-))...........
39960 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 .......(js2-add-to-string.c)....
39980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 ..............(setq.c.(js2-get-c
399a0 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a har)))................(unless.(j
399c0 73 32 2d 64 69 67 69 74 2d 70 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 s2-digit-p.c)..................(
399e0 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 69 73 73 69 js2-report-scan-error."msg.missi
39a00 6e 67 2e 65 78 70 6f 6e 65 6e 74 22 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.exponent".t))................
39a20 28 63 6c 2d 6c 6f 6f 70 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (cl-loop.do.....................
39a40 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 ....(js2-add-to-string.c).......
39a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 ..................(setq.c.(js2-g
39a80 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et-char)).......................
39aa0 20 20 77 68 69 6c 65 20 28 6f 72 20 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 63 29 20 28 3d 20 63 ..while.(or.(js2-digit-p.c).(=.c
39ac0 20 3f 5f 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 .?_)))))............(js2-unget-c
39ae0 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 68 61 6e 64 6c 65 2d 6e 75 6d 65 har)............(js2-handle-nume
39b00 72 69 63 2d 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 ric-separator)............(let.(
39b20 28 73 74 72 69 6e 67 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a 20 (string.js2-ts-string-buffer))..
39b40 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 74 ............(while.(>.(length.st
39b60 72 69 6e 67 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 ring).0)................(when.(a
39b80 6e 64 20 28 65 71 20 28 63 61 72 20 73 74 72 69 6e 67 29 20 3f 5f 29 29 0a 20 20 20 20 20 20 20 nd.(eq.(car.string).?_))........
39ba0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29 ..........(if.(=.(length.string)
39bc0 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 .1)......................(js2-re
39be0 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 74 72 61 69 6c 69 6e 67 port-scan-error."msg.no.trailing
39c00 2e 6e 75 6d 65 72 69 63 2e 6c 69 74 65 72 61 6c 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .numeric.literal")))............
39c20 20 20 20 20 28 73 65 74 71 20 73 74 72 69 6e 67 20 28 63 64 72 20 73 74 72 69 6e 67 29 29 29 29 ....(setq.string.(cdr.string))))
39c40 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 72 20 28 6a 73 32 2d 73 65 74 2d ............(let.((str.(js2-set-
39c60 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 string-from-buffer.token))).....
39c80 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 65 72 .........(setf.(js2-token-number
39ca0 20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 73 74 .token).(js2-string-to-number.st
39cc0 72 20 62 61 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d r.base)....................(js2-
39ce0 74 6f 6b 65 6e 2d 6e 75 6d 62 65 72 2d 62 61 73 65 20 74 6f 6b 65 6e 29 20 62 61 73 65 0a 20 20 token-number-base.token).base...
39d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 .................(js2-token-numb
39d20 65 72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 20 74 6f 6b 65 6e 29 20 28 61 6e 64 20 28 3d er-legacy-octal-p.token).(and.(=
39d40 20 62 61 73 65 20 38 29 20 6c 65 67 61 63 79 2d 6f 63 74 61 6c 29 29 29 0a 20 20 20 20 20 20 20 .base.8).legacy-octal)))........
39d60 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4e 55 4d 42 45 52 29 29 0a ....(throw.'return.js2-NUMBER)).
39d80 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 69 74 20 61 20 73 74 72 69 6e 67 3f 0a 20 20 20 20 .........;;.is.it.a.string?.....
39da0 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6d 65 6d 71 20 63 20 27 28 3f 5c 22 20 3f 5c 27 .....(when.(or.(memq.c.'(?\".?\'
39dc0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 6a ))....................(and.(>=.j
39de0 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 s2-language-version.200)........
39e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 63 20 3f 60 29 29 29 0a 20 20 20 20 .................(=.c.?`))).....
39e20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 .......(throw.'return...........
39e40 20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 73 74 72 69 6e 67 2d 6f 72 2d 74 65 6d 70 6c ........(js2-get-string-or-templ
39e60 61 74 65 2d 74 6f 6b 65 6e 20 63 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a ate-token.c.token)))..........(j
39e80 73 32 2d 74 73 2d 72 65 74 75 72 6e 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-ts-return.token..............
39ea0 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20 20 20 20 ...........(cl-case.c...........
39ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ................(?\;............
39ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a ................(throw.'return.j
39f00 73 32 2d 53 45 4d 49 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-SEMI)).......................
39f20 20 20 20 20 28 3f 5c 5b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(?\[........................
39f40 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 42 29 29 0a 20 20 20 20 ....(throw.'return.js2-LB)).....
39f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5c 5d 0a 20 20 20 20 20 ......................(?\]......
39f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 ......................(throw.'re
39fa0 74 75 72 6e 20 6a 73 32 2d 52 42 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 turn.js2-RB))...................
39fc0 20 20 20 20 20 20 20 20 28 3f 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(?{.....................
39fe0 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 43 29 29 0a 20 .......(throw.'return.js2-LC))..
3a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 7d 0a 20 20 20 .........................(?}....
3a020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 ........................(throw.'
3a040 72 65 74 75 72 6e 20 6a 73 32 2d 52 43 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 return.js2-RC)).................
3a060 20 20 20 20 20 20 20 20 20 20 28 3f 5c 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........(?\(..................
3a080 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 50 29 ..........(throw.'return.js2-LP)
3a0a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5c 29 )...........................(?\)
3a0c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 ............................(thr
3a0e0 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 52 50 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ow.'return.js2-RP)).............
3a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............(?,...............
3a120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d .............(throw.'return.js2-
3a140 43 4f 4d 4d 41 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 COMMA)).........................
3a160 20 20 28 3f 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(??...........................
3a180 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3f 29 0a 20 20 20 20 20 20 20 .(if.(js2-match-char.??)........
3a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 ........................(if.(js2
3a1c0 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -match-char.?=).................
3a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4e 55 ...................js2-ASSIGN_NU
3a200 4c 4c 49 53 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LLISH...........................
3a220 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4e 55 4c 4c 49 53 .......(throw.'return.js2-NULLIS
3a240 48 2d 43 4f 41 4c 45 53 43 49 4e 47 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 H-COALESCING))..................
3a260 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 ............(if.(js2-match-char.
3a280 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ?.).............................
3a2a0 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4f 50 54 49 4f 4e 41 4c .....(throw.'return.js2-OPTIONAL
3a2c0 2d 43 48 41 49 4e 49 4e 47 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -CHAINING)......................
3a2e0 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 48 4f 4f ..........(throw.'return.js2-HOO
3a300 4b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 K))))...........................
3a320 28 3f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (?:............................(
3a340 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3a 29 0a 20 20 20 20 20 20 20 20 20 if.(js2-match-char.?:)..........
3a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4f 4c 4f 4e 43 ......................js2-COLONC
3a380 4f 4c 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OLON............................
3a3a0 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43 4f 4c 4f 4e 29 29 29 0a 20 20 ..(throw.'return.js2-COLON)))...
3a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2e 0a 20 20 20 20 ........................(?......
3a3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d .......................(if.(js2-
3a400 6d 61 74 63 68 2d 63 68 61 72 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-char.?.)..................
3a420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 ..............(if.(js2-match-cha
3a440 72 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.?.)...........................
3a460 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 20 6a 73 32 2d 44 4f 54 44 4f .........js2-TRIPLEDOT.js2-DOTDO
3a480 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T)..............................
3a4a0 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 5c 28 29 0a 20 20 20 20 20 20 20 (if.(js2-match-char.?\()........
3a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 4f ..........................js2-DO
3a4e0 54 51 55 45 52 59 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TQUERY..........................
3a500 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 44 4f 54 29 29 29 29 ......(throw.'return.js2-DOT))))
3a520 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 7c 0a 20 ...........................(?|..
3a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a ..........................(if.(j
3a560 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 7c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-match-char.?|)...............
3a580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d .................(if.(js2-match-
3a5a0 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.?=)........................
3a5c0 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4f 52 0a 20 20 20 20 20 20 ............js2-ASSIGN_OR.......
3a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f ...........................(thro
3a600 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4f 52 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 w.'return.js2-OR))..............
3a620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 ................(if.(js2-match-c
3a640 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har.?=).........................
3a660 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 4f 52 0a 20 20 20 20 20 20 .........js2-ASSIGN_BITOR.......
3a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 .........................(throw.
3a6a0 27 72 65 74 75 72 6e 20 6a 73 32 2d 42 49 54 4f 52 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 'return.js2-BITOR))))...........
3a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................(?^.............
3a6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 ...............(if.(js2-match-ch
3a700 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.?=)..........................
3a720 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54 4f 52 0a 20 20 20 20 20 20 20 20 20 ......js2-ASSIGN_BITOR..........
3a740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 ....................(throw.'retu
3a760 72 6e 20 6a 73 32 2d 42 49 54 58 4f 52 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rn.js2-BITXOR)))................
3a780 20 20 20 20 20 20 20 20 20 20 20 28 3f 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(?&..................
3a7a0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 26 ..........(if.(js2-match-char.?&
3a7c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
3a7e0 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 .(if.(js2-match-char.?=)........
3a800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d ............................js2-
3a820 41 53 53 49 47 4e 5f 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ASSIGN_AND......................
3a840 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41 ............(throw.'return.js2-A
3a860 4e 44 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ND))............................
3a880 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 ..(if.(js2-match-char.?=).......
3a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 ...........................js2-A
3a8c0 53 53 49 47 4e 5f 42 49 54 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SSIGN_BITAND....................
3a8e0 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 42 ............(throw.'return.js2-B
3a900 49 54 41 4e 44 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ITAND)))).......................
3a920 20 20 20 20 28 3f 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(?=.........................
3a940 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 ...(if.(js2-match-char.?=)......
3a960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a ..........................(if.(j
3a980 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-match-char.?=)...............
3a9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 48 45 51 0a 20 20 .....................js2-SHEQ...
3a9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
3a9e0 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 51 29 29 0a 20 20 20 20 20 20 20 20 20 throw.'return.js2-EQ))..........
3aa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 ....................(if.(js2-mat
3aa20 63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-char.?>).....................
3aa40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 72 65 74 75 72 6e 20 74 6f 6b 65 .............(js2-ts-return.toke
3aa60 6e 20 6a 73 32 2d 41 52 52 4f 57 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.js2-ARROW)....................
3aa80 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41 ............(throw.'return.js2-A
3aaa0 53 53 49 47 4e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 SSIGN)))).......................
3aac0 20 20 20 20 28 3f 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(?!.........................
3aae0 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 ...(if.(js2-match-char.?=)......
3ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a ..........................(if.(j
3ab20 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-match-char.?=)...............
3ab40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 48 4e 45 0a 20 20 .....................js2-SHNE...
3ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a ...............................j
3ab80 73 32 2d 4e 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-NE)..........................
3aba0 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4e 4f 54 29 29 29 0a 20 20 ....(throw.'return.js2-NOT)))...
3abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3c 0a 20 20 20 20 ........................(?<.....
3abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 42 3a 74 72 65 .......................;;.NB:tre
3ac00 61 74 20 48 54 4d 4c 20 62 65 67 69 6e 2d 63 6f 6d 6d 65 6e 74 20 61 73 20 63 6f 6d 6d 65 6e 74 at.HTML.begin-comment.as.comment
3ac20 2d 74 69 6c 6c 2d 65 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -till-eol.......................
3ac40 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 21 29 0a 20 .....(when.(js2-match-char.?!)..
3ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 ............................(whe
3ac80 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20 n.(js2-match-char.?-)...........
3aca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d .....................(when.(js2-
3acc0 6d 61 74 63 68 2d 63 68 61 72 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-char.?-)..................
3ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 6b 69 70 2d 6c 69 6e 65 29 0a ................(js2-skip-line).
3ad00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ad20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e 74 2d 74 79 70 65 20 28 .(setf.(js2-token-comment-type.(
3ad40 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 20 27 68 74 6d 6c 29 0a 20 20 20 20 20 js2-current-token)).'html)......
3ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 ............................(thr
3ad80 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 29 29 0a 20 20 20 20 20 20 ow.'return.js2-COMMENT))).......
3ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 .......................(js2-unge
3adc0 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-char))........................
3ade0 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3c 29 0a 20 20 20 20 ....(if.(js2-match-char.?<).....
3ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 ...........................(if.(
3ae20 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-match-char.?=)..............
3ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e ......................js2-ASSIGN
3ae60 5f 4c 53 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _LSH............................
3ae80 20 20 20 20 20 20 6a 73 32 2d 4c 53 48 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......js2-LSH)..................
3aea0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 ............(if.(js2-match-char.
3aec0 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ?=).............................
3aee0 20 20 20 20 20 6a 73 32 2d 4c 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....js2-LE.....................
3af00 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 54 ...........(throw.'return.js2-LT
3af20 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ))))...........................(
3af40 3f 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ?>............................(i
3af60 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 f.(js2-match-char.?>)...........
3af80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 .....................(if.(js2-ma
3afa0 74 63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch-char.?>)....................
3afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 ................(if.(js2-match-c
3afe0 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har.?=).........................
3b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 0a 20 ...............js2-ASSIGN_URSH..
3b020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b040 20 20 20 20 6a 73 32 2d 55 52 53 48 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....js2-URSH)...................
3b060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 ...............(if.(js2-match-ch
3b080 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.?=)..........................
3b0a0 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 52 53 48 0a 20 20 20 20 20 ............js2-ASSIGN_RSH......
3b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 ..............................js
3b0e0 32 2d 52 53 48 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-RSH)).........................
3b100 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 .....(if.(js2-match-char.?=)....
3b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 ..............................js
3b140 32 2d 47 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-GE............................
3b160 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 47 54 29 29 29 29 0a 20 20 ....(throw.'return.js2-GT))))...
3b180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2a 0a 20 20 20 20 ........................(?*.....
3b1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d .......................(if.(js2-
3b1c0 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-char.?=)..................
3b1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 55 4c 0a 20 20 20 ..............js2-ASSIGN_MUL....
3b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a ..........................(if.(j
3b220 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-match-char.?*)...............
3b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 ...................(if.(js2-matc
3b260 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-char.?=)......................
3b280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 45 58 50 4f 4e ................js2-ASSIGN_EXPON
3b2a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b2c0 20 20 20 20 6a 73 32 2d 45 58 50 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....js2-EXPON)..................
3b2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 ..............(throw.'return.js2
3b300 2d 4d 55 4c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -MUL))))........................
3b320 20 20 20 28 3f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(?/..........................
3b340 20 20 3b 3b 20 69 73 20 69 74 20 61 20 2f 2f 20 63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20 ..;;.is.it.a.//.comment?........
3b360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d ....................(when.(js2-m
3b380 61 74 63 68 2d 63 68 61 72 20 3f 2f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-char.?/)...................
3b3a0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 ...........(setf.(js2-token-beg.
3b3c0 74 6f 6b 65 6e 29 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 32 29 29 0a 20 20 20 20 token).(-.js2-ts-cursor.2)).....
3b3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 6b .........................(js2-sk
3b400 69 70 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ip-line)........................
3b420 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e 74 2d 74 ......(setf.(js2-token-comment-t
3b440 79 70 65 20 74 6f 6b 65 6e 29 20 27 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype.token).'line)...............
3b460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 63 6c 75 64 65 20 6e 65 77 6c 69 6e ...............;;.include.newlin
3b480 65 20 73 6f 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 67 6f 65 73 20 74 6f 20 65 6e 64 20 6f 66 e.so.highlighting.goes.to.end.of
3b4a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ..............................;;
3b4c0 20 77 69 6e 64 6f 77 2c 20 69 66 20 74 68 65 72 65 20 61 63 74 75 61 6c 6c 79 20 69 73 20 61 20 .window,.if.there.actually.is.a.
3b4e0 6e 65 77 6c 69 6e 65 3b 20 69 66 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 newline;.if.we..................
3b500 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 69 74 20 65 6f 66 2c 20 74 68 65 6e 20 69 6d 70 ............;;.hit.eof,.then.imp
3b520 6c 69 63 69 74 6c 79 20 74 68 65 72 65 20 69 73 6e 27 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 licitly.there.isn't.............
3b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 74 73 2d .................(unless.js2-ts-
3b560 68 69 74 2d 65 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hit-eof.........................
3b580 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 .......(cl-incf.(js2-token-end.t
3b5a0 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oken))).........................
3b5c0 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 .....(throw.'return.js2-COMMENT)
3b5e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 )............................;;.
3b600 69 73 20 69 74 20 61 20 2f 2a 20 63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 is.it.a./*.comment?.............
3b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d ...............(when.(js2-match-
3b640 63 68 61 72 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.?*)........................
3b660 20 20 20 20 20 20 28 73 65 74 66 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 6e 69 6c 0a 20 ......(setf.look-for-slash.nil..
3b680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b6a0 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e 29 20 28 2d 20 6a 73 32 2d 74 ..(js2-token-beg.token).(-.js2-t
3b6c0 73 2d 63 75 72 73 6f 72 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-cursor.2).....................
3b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e ...............(js2-token-commen
3b700 74 2d 74 79 70 65 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-type.token)...................
3b720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d .................(if.(js2-match-
3b740 63 68 61 72 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 char.?*)........................
3b760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 ................(progn..........
3b780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b7a0 28 73 65 74 71 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 74 29 0a 20 20 20 20 20 20 20 20 (setq.look-for-slash.t).........
3b7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b7e0 20 27 6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'jsdoc)........................
3b800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 ..............'block))..........
3b820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 ....................(while.t....
3b840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 ............................(set
3b860 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 q.c.(js2-get-char)).............
3b880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 ...................(cond........
3b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 .........................((eq.c.
3b8c0 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-EOF_CHAR)...................
3b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d ...............(setf.(js2-token-
3b900 65 6e 64 20 74 6f 6b 65 6e 29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 29 0a 20 end.token).(1-.js2-ts-cursor))..
3b920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b940 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61 (js2-report-error."msg.untermina
3b960 74 65 64 2e 63 6f 6d 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ted.comment")...................
3b980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 ...............(throw.'return.js
3b9a0 32 2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-COMMENT)).....................
3b9c0 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 ............((eq.c.?*)..........
3b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 6f ........................(setq.lo
3ba00 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ok-for-slash.t))................
3ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 2f 29 0a 20 20 20 20 .................((eq.c.?/).....
3ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 .............................(if
3ba60 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .look-for-slash.................
3ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 72 65 74 .....................(js2-ts-ret
3baa0 75 72 6e 20 74 6f 6b 65 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 29 29 0a 20 20 20 20 20 20 20 urn.token.js2-COMMENT)))........
3bac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 .........................(t.....
3bae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 .............................(se
3bb00 74 66 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 tf.look-for-slash.nil...........
3bb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 .............................(js
3bb40 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 2-token-end.token).js2-ts-cursor
3bb60 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )))))...........................
3bb80 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 .(if.(js2-match-char.?=)........
3bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 ........................js2-ASSI
3bbc0 47 4e 5f 44 49 56 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 GN_DIV..........................
3bbe0 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 44 49 56 29 29 29 0a 20 20 ....(throw.'return.js2-DIV)))...
3bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 23 0a 20 20 20 20 ........................(?#.....
3bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 .......................(when.js2
3bc40 2d 73 6b 69 70 2d 70 72 65 70 72 6f 63 65 73 73 6f 72 2d 64 69 72 65 63 74 69 76 65 73 0a 20 20 -skip-preprocessor-directives...
3bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
3bc80 73 6b 69 70 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 skip-line)......................
3bca0 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e 74 ........(setf.(js2-token-comment
3bcc0 2d 74 79 70 65 20 74 6f 6b 65 6e 29 20 27 70 72 65 70 72 6f 63 65 73 73 6f 72 0a 20 20 20 20 20 -type.token).'preprocessor......
3bce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ..............................(j
3bd00 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f s2-token-end.token).js2-ts-curso
3bd20 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r)..............................
3bd40 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20 (throw.'return.js2-COMMENT))....
3bd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 ........................(throw.'
3bd80 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 return.js2-ERROR))..............
3bda0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 25 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(?%................
3bdc0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 ............(if.(js2-match-char.
3bde0 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ?=).............................
3be00 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 4f 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...js2-ASSIGN_MOD...............
3be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 ...............(throw.'return.js
3be40 32 2d 4d 4f 44 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-MOD)))........................
3be60 20 20 20 28 3f 7e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(?~..........................
3be80 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 42 49 54 4e 4f 54 29 29 0a 20 20 ..(throw.'return.js2-BITNOT))...
3bea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2b 0a 20 20 20 20 ........................(?+.....
3bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d .......................(if.(js2-
3bee0 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match-char.?=)..................
3bf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 41 44 44 0a 20 20 20 ..............js2-ASSIGN_ADD....
3bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a ..........................(if.(j
3bf40 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 2b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-match-char.?+)...............
3bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4e 43 0a 20 20 20 20 20 ...................js2-INC......
3bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 ..........................(throw
3bfa0 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41 44 44 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .'return.js2-ADD))))............
3bfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............(?-..............
3bfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..............(cond.............
3c000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 ................((js2-match-char
3c020 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .?=)............................
3c040 20 20 28 73 65 74 71 20 63 20 6a 73 32 2d 41 53 53 49 47 4e 5f 53 55 42 29 29 0a 20 20 20 20 20 ..(setq.c.js2-ASSIGN_SUB))......
3c060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 .......................((js2-mat
3c080 63 68 2d 63 68 61 72 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-char.?-).....................
3c0a0 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69 .........(unless.js2-ts-dirty-li
3c0c0 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne..............................
3c0e0 20 20 3b 3b 20 74 72 65 61 74 20 48 54 4d 4c 20 65 6e 64 2d 63 6f 6d 6d 65 6e 74 20 61 66 74 65 ..;;.treat.HTML.end-comment.afte
3c100 72 20 70 6f 73 73 69 62 6c 65 20 77 68 69 74 65 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 r.possible.whitespace...........
3c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 6c 69 .....................;;.after.li
3c140 6e 65 20 73 74 61 72 74 20 61 73 20 63 6f 6d 6d 65 6e 74 2d 75 6e 74 69 6c 2d 65 6f 6c 0a 20 20 ne.start.as.comment-until-eol...
3c160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 .............................(wh
3c180 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 en.(js2-match-char.?>)..........
3c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 6b 69 ........................(js2-ski
3c1c0 70 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p-line).........................
3c1e0 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e .........(setf.(js2-token-commen
3c200 74 2d 74 79 70 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 20 27 68 74 6d t-type.(js2-current-token)).'htm
3c220 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l)..............................
3c240 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 29 ....(throw.'return.js2-COMMENT))
3c260 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )..............................(
3c280 73 65 74 71 20 63 20 6a 73 32 2d 44 45 43 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 setq.c.js2-DEC))................
3c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(t.................
3c2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 6a 73 32 2d 53 55 42 29 29 29 0a .............(setq.c.js2-SUB))).
3c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 ...........................(setq
3c300 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69 6e 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 .js2-ts-dirty-line.t)...........
3c320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................c).............
3c340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 20 20 ..............(otherwise........
3c360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d ....................(js2-report-
3c380 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6c 6c 65 67 61 6c 2e 63 68 61 72 61 63 74 65 scan-error."msg.illegal.characte
3c3a0 72 22 29 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 r"))))))).....(setf.(js2-token-t
3c3c0 79 70 65 20 74 6f 6b 65 6e 29 20 74 74 29 0a 20 20 20 20 74 6f 6b 65 6e 29 29 0a 0a 28 64 65 66 ype.token).tt).....token))..(def
3c3e0 75 6e 20 6a 73 32 2d 67 65 74 2d 73 74 72 69 6e 67 2d 6f 72 2d 74 65 6d 70 6c 61 74 65 2d 74 6f un.js2-get-string-or-template-to
3c400 6b 65 6e 20 28 71 75 6f 74 65 2d 63 68 61 72 20 74 6f 6b 65 6e 29 0a 20 20 3b 3b 20 57 65 20 61 ken.(quote-char.token)...;;.We.a
3c420 74 74 65 6d 70 74 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 65 20 61 20 73 74 72 69 6e 67 20 74 68 ttempt.to.accumulate.a.string.th
3c440 65 20 66 61 73 74 20 77 61 79 2c 20 62 79 0a 20 20 3b 3b 20 62 75 69 6c 64 69 6e 67 20 69 74 20 e.fast.way,.by...;;.building.it.
3c460 64 69 72 65 63 74 6c 79 20 6f 75 74 20 6f 66 20 74 68 65 20 72 65 61 64 65 72 2e 20 20 42 75 74 directly.out.of.the.reader...But
3c480 20 69 66 20 74 68 65 72 65 0a 20 20 3b 3b 20 61 72 65 20 61 6e 79 20 65 73 63 61 70 65 64 20 63 .if.there...;;.are.any.escaped.c
3c4a0 68 61 72 61 63 74 65 72 73 20 69 6e 20 74 68 65 20 73 74 72 69 6e 67 2c 20 77 65 20 72 65 76 65 haracters.in.the.string,.we.reve
3c4c0 72 74 20 74 6f 0a 20 20 3b 3b 20 62 75 69 6c 64 69 6e 67 20 69 74 20 6f 75 74 20 6f 66 20 61 20 rt.to...;;.building.it.out.of.a.
3c4e0 73 74 72 69 6e 67 20 62 75 66 66 65 72 2e 0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a 73 32 2d 67 string.buffer....(let.((c.(js2-g
3c500 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d et-char)).........js2-ts-string-
3c520 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 6e 63 20 63 31 20 76 61 6c 20 65 73 63 61 70 65 2d buffer.........nc.c1.val.escape-
3c540 76 61 6c 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68 val).....(catch.'break.......(wh
3c560 69 6c 65 20 28 2f 3d 20 63 20 71 75 6f 74 65 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 28 63 ile.(/=.c.quote-char).........(c
3c580 61 74 63 68 20 27 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 atch.'continue...........(cond..
3c5a0 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 ..........((eq.c.js2-EOF_CHAR)..
3c5c0 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 ...........(js2-unget-char).....
3c5e0 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75 ........(js2-report-error."msg.u
3c600 6e 74 65 72 6d 69 6e 61 74 65 64 2e 73 74 72 69 6e 67 2e 6c 69 74 22 29 0a 20 20 20 20 20 20 20 nterminated.string.lit")........
3c620 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 .....(throw.'break.nil))........
3c640 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 63 20 3f 5c 6e 29 20 28 6e 6f 74 20 28 65 71 20 71 75 ....((and.(eq.c.?\n).(not.(eq.qu
3c660 6f 74 65 2d 63 68 61 72 20 3f 60 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ote-char.?`))).............(js2-
3c680 75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 unget-char).............(js2-rep
3c6a0 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61 74 65 64 2e 73 74 72 69 ort-error."msg.unterminated.stri
3c6c0 6e 67 2e 6c 69 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 ng.lit").............(throw.'bre
3c6e0 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 5c 29 0a ak.nil))............((eq.c.?\\).
3c700 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 27 76 65 20 68 69 74 20 61 6e 20 65 73 63 61 ............;;.We've.hit.an.esca
3c720 70 65 64 20 63 68 61 72 61 63 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 ped.character.............(setq.
3c740 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 c.(js2-get-char)).............(c
3c760 6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 62 20 28 73 65 74 71 l-case.c...............(?b.(setq
3c780 20 63 20 3f 5c 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 66 20 28 73 65 74 71 .c.?\b))...............(?f.(setq
3c7a0 20 63 20 3f 5c 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 6e 20 28 73 65 74 71 .c.?\f))...............(?n.(setq
3c7c0 20 63 20 3f 5c 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 72 20 28 73 65 74 71 .c.?\n))...............(?r.(setq
3c7e0 20 63 20 3f 5c 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 74 20 28 73 65 74 71 .c.?\r))...............(?t.(setq
3c800 20 63 20 3f 5c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 76 20 28 73 65 74 71 .c.?\t))...............(?v.(setq
3c820 20 63 20 3f 5c 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 75 0a 20 20 20 20 20 .c.?\v))...............(?u......
3c840 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 31 20 28 6a 73 32 2d 72 65 61 64 2d 75 6e 69 ..........(setq.c1.(js2-read-uni
3c860 63 6f 64 65 2d 65 73 63 61 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 code-escape))................(if
3c880 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 .js2-parse-ide-mode.............
3c8a0 20 20 20 20 20 20 20 28 69 66 20 63 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(if.c1...................
3c8c0 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(progn.....................
3c8e0 20 20 20 20 20 3b 3b 20 6a 75 73 74 20 63 6f 70 79 20 74 68 65 20 73 74 72 69 6e 67 20 69 6e 20 .....;;.just.copy.the.string.in.
3c900 49 44 45 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 IDE-mode........................
3c920 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 5c 5c 29 0a 20 20 20 20 20 20 ..(js2-add-to-string.?\\).......
3c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 ...................(js2-add-to-s
3c960 74 72 69 6e 67 20 3f 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tring.?u).......................
3c980 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(dotimes.(_.3)...............
3c9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 .............(js2-add-to-string.
3c9c0 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (js2-get-char)))................
3c9e0 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 ..........(setq.c.(js2-get-char)
3ca00 29 29 20 3b 20 61 64 64 65 64 20 61 74 20 65 6e 64 20 6f 66 20 6c 6f 6f 70 0a 20 20 20 20 20 20 )).;.added.at.end.of.loop.......
3ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6c 61 67 20 69 74 20 61 73 20 61 6e 20 ...............;;.flag.it.as.an.
3ca40 69 6e 76 61 6c 69 64 20 65 73 63 61 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 invalid.escape..................
3ca60 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 69 6e 76 ....(js2-report-warning."msg.inv
3ca80 61 6c 69 64 2e 65 73 63 61 70 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alid.escape"....................
3caa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 28 2d 20 6a 73 32 ......................nil.(-.js2
3cac0 2d 74 73 2d 63 75 72 73 6f 72 20 32 29 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ts-cursor.2).6))...............
3cae0 20 20 20 3b 3b 20 47 65 74 20 34 20 68 65 78 20 64 69 67 69 74 73 3b 20 69 66 20 74 68 65 20 75 ...;;.Get.4.hex.digits;.if.the.u
3cb00 20 65 73 63 61 70 65 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .escape.is.not..................
3cb20 3b 3b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 34 20 68 65 78 20 64 69 67 69 74 73 2c 20 75 73 65 ;;.followed.by.4.hex.digits,.use
3cb40 20 27 75 27 20 2b 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c .'u'.+.the..................;;.l
3cb60 69 74 65 72 61 6c 20 63 68 61 72 61 63 74 65 72 20 73 65 71 75 65 6e 63 65 20 74 68 61 74 20 66 iteral.character.sequence.that.f
3cb80 6f 6c 6c 6f 77 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 ollows...................(js2-ad
3cba0 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-to-string.?u).................
3cbc0 20 28 73 65 74 71 20 65 73 63 61 70 65 2d 76 61 6c 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(setq.escape-val.0)............
3cbe0 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(dotimes.(_.4)............
3cc00 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 0a 20 ........(setq.c.(js2-get-char)..
3cc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 73 63 61 70 65 2d 76 ........................escape-v
3cc40 61 6c 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 65 73 63 61 70 65 2d al.(js2-x-digit-to-int.c.escape-
3cc60 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6c val))....................(if.(cl
3cc80 2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -minusp.escape-val).............
3cca0 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 ...........(throw.'continue.nil)
3ccc0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f )....................(js2-add-to
3cce0 2d 73 74 72 69 6e 67 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 -string.c))..................;;.
3cd00 70 72 65 70 61 72 65 20 66 6f 72 20 72 65 70 6c 61 63 65 20 6f 66 20 73 74 6f 72 65 64 20 27 75 prepare.for.replace.of.stored.'u
3cd20 27 20 73 65 71 75 65 6e 63 65 20 62 79 20 65 73 63 61 70 65 20 76 61 6c 75 65 0a 20 20 20 20 20 '.sequence.by.escape.value......
3cd40 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d ............(setq.js2-ts-string-
3cd60 62 75 66 66 65 72 20 28 6e 74 68 63 64 72 20 35 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 buffer.(nthcdr.5.js2-ts-string-b
3cd80 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 uffer)........................c.
3cda0 65 73 63 61 70 65 2d 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 78 0a escape-val)))...............(?x.
3cdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 65 74 20 32 20 68 65 78 20 64 69 67 69 ...............;;.Get.2.hex.digi
3cde0 74 73 2c 20 64 65 66 61 75 6c 74 69 6e 67 20 74 6f 20 27 78 27 2b 6c 69 74 65 72 61 6c 0a 20 20 ts,.defaulting.to.'x'+literal...
3ce00 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 65 71 75 65 6e 63 65 2c 20 61 73 20 61 62 6f .............;;.sequence,.as.abo
3ce20 76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d ve.................(setq.c.(js2-
3ce40 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 get-char)......................e
3ce60 73 63 61 70 65 2d 76 61 6c 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 scape-val.(js2-x-digit-to-int.c.
3ce80 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73 0))................(if.(cl-minus
3cea0 70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.escape-val)...................
3cec0 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 .(progn......................(js
3cee0 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2-add-to-string.?x).............
3cf00 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a .........(throw.'continue.nil)).
3cf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 31 20 63 0a 20 20 20 20 .................(setq.c1.c.....
3cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 ...................c.(js2-get-ch
3cf60 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 73 63 61 70 ar)........................escap
3cf80 65 2d 76 61 6c 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20 65 73 63 61 e-val.(js2-x-digit-to-int.c.esca
3cfa0 70 65 2d 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 pe-val))..................(if.(c
3cfc0 6c 2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 l-minusp.escape-val)............
3cfe0 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........(progn................
3d000 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 78 29 0a 20 ........(js2-add-to-string.?x)..
3d020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 ......................(js2-add-t
3d040 6f 2d 73 74 72 69 6e 67 20 63 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o-string.c1)....................
3d060 20 20 20 20 28 74 68 72 6f 77 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 ....(throw.'continue.nil))......
3d080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 6f 74 20 32 20 68 65 78 20 64 69 67 69 74 ..............;;.got.2.hex.digit
3d0a0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 65 73 63 s....................(setq.c.esc
3d0c0 61 70 65 2d 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5c 6e 0a 20 ape-val))))...............(?\n..
3d0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 6c 69 6e 65 20 74 65 72 ..............;;.Remove.line.ter
3d100 6d 69 6e 61 74 6f 72 20 61 66 74 65 72 20 65 73 63 61 70 65 20 74 6f 20 66 6f 6c 6c 6f 77 0a 20 minator.after.escape.to.follow..
3d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 61 6e ..............;;.SpiderMonkey.an
3d140 64 20 43 2f 43 2b 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 d.C/C++................(setq.c.(
3d160 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 js2-get-char))................(t
3d180 68 72 6f 77 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 hrow.'continue.nil))............
3d1a0 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 ...(t................(when.(and.
3d1c0 28 3c 3d 20 3f 30 20 63 29 20 28 3c 20 63 20 3f 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (<=.?0.c).(<.c.?8)).............
3d1e0 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 2d 20 63 20 3f 30 29 0a 20 20 20 20 20 20 20 20 .....(setq.val.(-.c.?0).........
3d200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 ...............c.(js2-get-char))
3d220 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3c 3d ..................(when.(and.(<=
3d240 20 3f 30 20 63 29 20 28 3c 20 63 20 3f 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .?0.c).(<.c.?8))................
3d260 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 2d 20 28 2b 20 28 2a 20 38 20 76 61 6c 29 20 63 29 ....(setq.val.(-.(+.(*.8.val).c)
3d280 20 3f 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 .?0)..........................c.
3d2a0 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (js2-get-char)).................
3d2c0 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3c 3d 20 3f 30 20 63 29 0a 20 20 20 20 20 20 20 20 ...(when.(and.(<=.?0.c).........
3d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 63 20 3f 38 29 0a 20 ......................(<.c.?8)..
3d300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 .............................(<.
3d320 76 61 6c 20 23 6f 33 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 val.#o37))......................
3d340 3b 3b 20 63 20 69 73 20 33 72 64 20 63 68 61 72 20 6f 66 20 6f 63 74 61 6c 20 73 65 71 75 65 6e ;;.c.is.3rd.char.of.octal.sequen
3d360 63 65 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ce.only......................;;.
3d380 69 66 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 76 61 6c 20 3c 3d 20 30 33 37 37 0a 20 20 20 if.the.resulting.val.<=.0377....
3d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 2d 20 28 ..................(setq.val.(-.(
3d3c0 2b 20 28 2a 20 38 20 76 61 6c 29 20 63 29 20 3f 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 +.(*.8.val).c).?0)..............
3d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 ..............c.(js2-get-char)))
3d400 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 )..................(js2-unget-ch
3d420 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 76 61 6c ar)..................(setq.c.val
3d440 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 71 75 6f 74 65 )))))............((and.(eq.quote
3d460 2d 63 68 61 72 20 3f 60 29 20 28 65 71 20 63 20 3f 24 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -char.?`).(eq.c.?$))............
3d480 20 28 77 68 65 6e 20 28 65 71 20 28 73 65 74 71 20 6e 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 .(when.(eq.(setq.nc.(js2-get-cha
3d4a0 72 29 29 20 3f 5c 7b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 r)).?\{)...............(throw.'b
3d4c0 72 65 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 reak.nil)).............(js2-unge
3d4e0 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d t-char)))...........(js2-add-to-
3d500 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 string.c)...........(setq.c.(js2
3d520 2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 73 74 72 69 -get-char))))).....(js2-set-stri
3d540 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 0a 20 20 20 20 28 69 66 20 28 6e ng-from-buffer.token).....(if.(n
3d560 6f 74 20 28 65 71 20 71 75 6f 74 65 2d 63 68 61 72 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 6a ot.(eq.quote-char.?`)).........j
3d580 73 32 2d 53 54 52 49 4e 47 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 71 20 63 20 3f s2-STRING.......(if.(and.(eq.c.?
3d5a0 24 29 20 28 65 71 20 6e 63 20 3f 5c 7b 29 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 45 $).(eq.nc.?\{))...........js2-TE
3d5c0 4d 50 4c 41 54 45 5f 48 45 41 44 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 4e 4f 5f 53 55 42 53 5f MPLATE_HEAD.........js2-NO_SUBS_
3d5e0 54 45 4d 50 4c 41 54 45 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 72 65 TEMPLATE))))..(defun.js2-read-re
3d600 67 65 78 70 20 28 73 74 61 72 74 2d 74 74 20 73 74 61 72 74 2d 70 6f 73 29 0a 20 20 22 43 61 6c gexp.(start-tt.start-pos)..."Cal
3d620 6c 65 64 20 62 79 20 70 61 72 73 65 72 20 77 68 65 6e 20 69 74 20 67 65 74 73 20 2f 20 6f 72 20 led.by.parser.when.it.gets./.or.
3d640 2f 3d 20 69 6e 20 6c 69 74 65 72 61 6c 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 28 6c 65 74 20 28 /=.in.literal.context."...(let.(
3d660 63 20 65 72 72 0a 20 20 20 20 20 20 20 20 69 6e 2d 63 6c 61 73 73 20 20 3b 20 69 6e 73 69 64 65 c.err.........in-class..;.inside
3d680 20 61 20 27 5b 27 20 2e 2e 20 27 5d 27 20 63 68 61 72 61 63 74 65 72 2d 63 6c 61 73 73 0a 20 20 .a.'['....']'.character-class...
3d6a0 20 20 20 20 20 20 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 ......flags.........(continue.t)
3d6c0 0a 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 20 28 6a 73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20 30 .........(token.(js2-new-token.0
3d6e0 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e 67 65 2d 73 79 ))).....(when.js2-mode-change-sy
3d700 6e 74 61 78 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 74 65 78 74 2d 70 72 ntax-p.......(js2-record-text-pr
3d720 6f 70 65 72 74 79 20 73 74 61 72 74 2d 70 6f 73 20 28 31 2b 20 73 74 61 72 74 2d 70 6f 73 29 0a operty.start-pos.(1+.start-pos).
3d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3d760 27 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 28 73 74 72 69 6e 67 2d 74 6f 2d 73 79 6e 74 61 78 20 'syntax-table.(string-to-syntax.
3d780 22 5c 22 2f 22 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 "\"/"))).....(setq.js2-ts-string
3d7a0 2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 73 74 61 72 74 2d 74 -buffer.nil).....(if.(eq.start-t
3d7c0 74 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 69 73 t.js2-ASSIGN_DIV).........;;.mis
3d7e0 2d 73 63 61 6e 6e 65 64 20 2f 3d 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d -scanned./=.........(js2-add-to-
3d800 73 74 72 69 6e 67 20 3f 3d 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 65 71 20 73 74 string.?=).......(if.(not.(eq.st
3d820 61 72 74 2d 74 74 20 6a 73 32 2d 44 49 56 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f art-tt.js2-DIV))...........(erro
3d840 72 20 22 66 61 69 6c 65 64 20 61 73 73 65 72 74 69 6f 6e 22 29 29 29 0a 20 20 20 20 28 77 68 69 r."failed.assertion"))).....(whi
3d860 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 65 72 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le.(and.(not.err)...............
3d880 20 20 28 6f 72 20 28 2f 3d 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 ..(or.(/=.(setq.c.(js2-get-char)
3d8a0 29 20 3f 2f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 2d 63 6c 61 ).?/).....................in-cla
3d8c0 73 73 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20 ss)).......(cond........((or.(=.
3d8e0 63 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 63 20 6a 73 32 2d 45 4f 46 5f c.?\n).............(=.c.js2-EOF_
3d900 43 48 41 52 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d CHAR)).........(setf.(js2-token-
3d920 65 6e 64 20 74 6f 6b 65 6e 29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 end.token).(1-.js2-ts-cursor)...
3d940 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............err.t...............
3d960 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 63 6f (js2-token-string.token).(js2-co
3d980 6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 llect-string.js2-ts-string-buffe
3d9a0 72 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d r)).........(js2-report-error."m
3d9c0 73 67 2e 75 6e 74 65 72 6d 69 6e 61 74 65 64 2e 72 65 2e 6c 69 74 22 29 29 0a 20 20 20 20 20 20 sg.unterminated.re.lit")).......
3d9e0 20 28 74 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 63 20 3f 5c 5c 29 0a .(t.(cond............((=.c.?\\).
3da00 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 ............(js2-add-to-string.c
3da20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 ).............(setq.c.(js2-get-c
3da40 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 63 20 3f 5c 5b 29 0a 20 20 20 har)))............((=.c.?\[)....
3da60 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 2d 63 6c 61 73 73 20 74 29 29 0a 20 20 20 20 .........(setq.in-class.t)).....
3da80 20 20 20 20 20 20 20 28 28 3d 20 63 20 3f 5c 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 .......((=.c.?\]).............(s
3daa0 65 74 71 20 69 6e 2d 63 6c 61 73 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a etq.in-class.nil)))...........(j
3dac0 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 s2-add-to-string.c)))).....(unle
3dae0 73 73 20 65 72 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e ss.err.......(when.js2-mode-chan
3db00 67 65 2d 73 79 6e 74 61 78 2d 70 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d ge-syntax-p.........(js2-record-
3db20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 text-property.(1-.js2-ts-cursor)
3db40 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-ts-cursor..................
3db60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 28 .................'syntax-table.(
3db80 73 74 72 69 6e 67 2d 74 6f 2d 73 79 6e 74 61 78 20 22 5c 22 2f 22 29 29 29 0a 20 20 20 20 20 20 string-to-syntax."\"/"))).......
3dba0 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 (while.continue.........(cond...
3dbc0 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 64 29 0a 20 20 20 20 .......((js2-match-char.?d).....
3dbe0 20 20 20 20 20 20 28 70 75 73 68 20 3f 64 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 ......(push.?d.flags))..........
3dc00 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 ((js2-match-char.?g)...........(
3dc20 70 75 73 68 20 3f 67 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d push.?g.flags))..........((js2-m
3dc40 61 74 63 68 2d 63 68 61 72 20 3f 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 69 atch-char.?i)...........(push.?i
3dc60 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 .flags))..........((js2-match-ch
3dc80 61 72 20 3f 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 6d 20 66 6c 61 67 73 29 ar.?m)...........(push.?m.flags)
3dca0 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 73 29 0a )..........((js2-match-char.?s).
3dcc0 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 73 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 ..........(push.?s.flags))......
3dce0 20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 75 29 0a 20 20 ....((and.(js2-match-char.?u)...
3dd00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 .............(>=.js2-language-ve
3dd20 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 75 20 66 rsion.200))...........(push.?u.f
3dd40 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 lags))..........((and.(js2-match
3dd60 2d 63 68 61 72 20 3f 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 -char.?y)................(>=.js2
3dd80 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 -language-version.200)).........
3dda0 20 20 28 70 75 73 68 20 3f 79 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 ..(push.?y.flags))..........(t..
3ddc0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a .........(setq.continue.nil)))).
3dde0 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 61 6c 70 68 61 2d 70 20 28 6a 73 32 2d 70 65 65 6b ......(if.(js2-alpha-p.(js2-peek
3de00 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 -char))...........(js2-report-sc
3de20 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 72 65 2e 66 6c 61 67 22 20 74 an-error."msg.invalid.re.flag".t
3de40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3de60 20 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 31 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 73 ..js2-ts-cursor.1)).......(js2-s
3de80 65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 29 0a 20 20 et-string-from-buffer.token))...
3dea0 20 20 28 6a 73 32 2d 63 6f 6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 66 6c 61 67 73 29 29 29 0a 0a ..(js2-collect-string.flags)))..
3dec0 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 66 69 72 73 74 2d 78 6d 6c 2d 74 6f 6b 65 6e 20 28 (defun.js2-get-first-xml-token.(
3dee0 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 )...(setq.js2-ts-xml-open-tags-c
3df00 6f 75 6e 74 20 30 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 ount.0.........js2-ts-is-xml-att
3df20 72 69 62 75 74 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 ribute.nil.........js2-ts-xml-is
3df40 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c 29 0a 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 -tag-content.nil)...(js2-unget-c
3df60 68 61 72 29 0a 20 20 28 6a 73 32 2d 67 65 74 2d 6e 65 78 74 2d 78 6d 6c 2d 74 6f 6b 65 6e 29 29 har)...(js2-get-next-xml-token))
3df80 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20 ..(defun.js2-xml-discard-string.
3dfa0 28 74 6f 6b 65 6e 29 0a 20 20 22 54 68 72 6f 77 20 61 77 61 79 20 74 68 65 20 73 74 72 69 6e 67 (token)..."Throw.away.the.string
3dfc0 20 69 6e 20 70 72 6f 67 72 65 73 73 20 61 6e 64 20 66 6c 61 67 20 61 6e 20 58 4d 4c 20 70 61 72 .in.progress.and.flag.an.XML.par
3dfe0 73 65 20 65 72 72 6f 72 2e 22 0a 20 20 28 73 65 74 66 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 se.error."...(setf.js2-ts-string
3e000 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 -buffer.nil.........(js2-token-s
3e020 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 6e 69 6c 29 0a 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d tring.token).nil)...(js2-report-
3e040 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 58 4d 4c 2e 62 61 64 2e 66 6f 72 6d 22 20 74 29 scan-error."msg.XML.bad.form".t)
3e060 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6e 65 78 74 2d 78 6d 6c 2d 74 6f 6b 65 6e )..(defun.js2-get-next-xml-token
3e080 20 28 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 .()...(setq.js2-ts-string-buffer
3e0a0 20 6e 69 6c 29 20 20 3b 20 66 6f 72 20 72 65 63 6f 72 64 69 6e 67 20 74 68 65 20 58 4d 4c 0a 20 .nil)..;.for.recording.the.XML..
3e0c0 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 6a 73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20 30 29 29 .(let.((token.(js2-new-token.0))
3e0e0 0a 20 20 20 20 20 20 20 20 63 20 72 65 73 75 6c 74 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73 .........c.result).....(setq.res
3e100 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 ult...........(catch.'return....
3e120 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(while.t...............
3e140 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 (setq.c.(js2-get-char)).........
3e160 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 63 ......(cond................((=.c
3e180 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .js2-EOF_CHAR).................(
3e1a0 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 0a 20 20 20 20 20 20 throw.'return.js2-ERROR)).......
3e1c0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74 .........(js2-ts-xml-is-tag-cont
3e1e0 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 63 0a 20 ent.................(cl-case.c..
3e200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3e 0a 20 20 20 20 20 20 20 20 20 20 20 .................(?>............
3e220 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 ........(js2-add-to-string.c)...
3e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 78 6d .................(setq.js2-ts-xm
3e260 6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 l-is-tag-content.nil............
3e280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 72 ..............js2-ts-is-xml-attr
3e2a0 69 62 75 74 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f ibute.nil))...................(?
3e2c0 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f /....................(js2-add-to
3e2e0 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 -string.c)....................(w
3e300 68 65 6e 20 28 65 71 20 3f 3e 20 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 29 0a 20 20 20 20 hen.(eq.?>.(js2-peek-char)).....
3e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 .................(setq.c.(js2-ge
3e340 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a t-char))......................(j
3e360 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 s2-add-to-string.c).............
3e380 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 .........(setq.js2-ts-xml-is-tag
3e3a0 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -content.nil)...................
3e3c0 20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 ...(cl-decf.js2-ts-xml-open-tags
3e3e0 2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 7b 0a -count)))...................(?{.
3e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 ...................(js2-unget-ch
3e420 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d ar)....................(js2-set-
3e440 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 string-from-buffer.token).......
3e460 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d .............(throw.'return.js2-
3e480 58 4d 4c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3f 5c 27 20 3f 5c XML))...................((?\'.?\
3e4a0 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 ")....................(js2-add-t
3e4c0 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 o-string.c)....................(
3e4e0 75 6e 6c 65 73 73 20 28 6a 73 32 2d 72 65 61 64 2d 71 75 6f 74 65 64 2d 73 74 72 69 6e 67 20 63 unless.(js2-read-quoted-string.c
3e500 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 .token)......................(th
3e520 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 20 20 20 20 20 20 row.'return.js2-ERROR)))........
3e540 20 20 20 20 20 20 20 20 20 20 20 28 3f 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(?=..................
3e560 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 ..(js2-add-to-string.c).........
3e580 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 ...........(setq.js2-ts-is-xml-a
3e5a0 74 74 72 69 62 75 74 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ttribute.t))...................(
3e5c0 28 3f 20 3f 5c 74 20 3f 5c 72 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (?.?\t.?\r.?\n).................
3e5e0 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29 0a 20 20 20 20 20 20 ...(js2-add-to-string.c)).......
3e600 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(t..................
3e620 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 ..(js2-add-to-string.c).........
3e640 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 ...........(setq.js2-ts-is-xml-a
3e660 74 74 72 69 62 75 74 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ttribute.nil))).................
3e680 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 (when.(and.(not.js2-ts-xml-is-ta
3e6a0 67 2d 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g-content)......................
3e6c0 20 20 20 20 20 20 28 7a 65 72 6f 70 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 ......(zerop.js2-ts-xml-open-tag
3e6e0 73 2d 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 s-count))...................(js2
3e700 2d 73 65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 0a 20 -set-string-from-buffer.token)..
3e720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 .................(throw.'return.
3e740 6a 73 32 2d 58 4d 4c 45 4e 44 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a js2-XMLEND)))................(t.
3e760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 6e 6f 74 20 74 61 67 20 ................;;.else.not.tag.
3e780 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 content.................(cl-case
3e7a0 20 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3c 0a 20 20 20 20 20 20 20 .c...................(?<........
3e7c0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 ............(js2-add-to-string.c
3e7e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 )....................(setq.c.(js
3e800 32 2d 70 65 65 6b 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-peek-char))...................
3e820 20 28 63 6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(cl-case.c.....................
3e840 20 28 3f 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 .(?!.......................(setq
3e860 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b 3b 20 73 6b 69 70 20 21 0a 20 20 20 .c.(js2-get-char)).;;.skip.!....
3e880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 ...................(js2-add-to-s
3e8a0 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 tring.c).......................(
3e8c0 73 65 74 71 20 63 20 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 setq.c.(js2-peek-char)).........
3e8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20 ..............(cl-case.c........
3e900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2d 0a 20 20 20 20 20 20 20 20 20 20 20 .................(?-............
3e920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 ..............(setq.c.(js2-get-c
3e940 68 61 72 29 29 20 3b 3b 20 73 6b 69 70 20 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 har)).;;.skip.-.................
3e960 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 .........(js2-add-to-string.c)..
3e980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 ........................(if.(eq.
3e9a0 63 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.?-)...........................
3e9c0 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(progn.......................
3e9e0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 .........(js2-add-to-string.c)..
3ea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 ..............................(u
3ea20 6e 6c 65 73 73 20 28 6a 73 32 2d 72 65 61 64 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 20 74 6f 6b 65 nless.(js2-read-xml-comment.toke
3ea40 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n)..............................
3ea60 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a ....(throw.'return.js2-ERROR))).
3ea80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
3eaa0 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 xml-discard-string.token).......
3eac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 .....................(throw.'ret
3eae0 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urn.js2-ERROR)))................
3eb00 20 20 20 20 20 20 20 20 20 28 3f 5c 5b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(?\[...................
3eb20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b .......(setq.c.(js2-get-char)).;
3eb40 3b 20 73 6b 69 70 20 5b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;.skip.[........................
3eb60 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 ..(js2-add-to-string.c).........
3eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3d 20 28 6a 73 .................(if.(and.(=.(js
3eba0 32 2d 67 65 74 2d 63 68 61 72 29 20 3f 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-get-char).?C).................
3ebc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68 ..................(=.(js2-get-ch
3ebe0 61 72 29 20 3f 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar).?D).........................
3ec00 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 20 3f 41 29 0a ..........(=.(js2-get-char).?A).
3ec20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ec40 20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 20 3f 54 29 0a 20 20 20 20 20 20 20 20 ..(=.(js2-get-char).?T).........
3ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 ..........................(=.(js
3ec80 32 2d 67 65 74 2d 63 68 61 72 29 20 3f 41 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-get-char).?A).................
3eca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68 ..................(=.(js2-get-ch
3ecc0 61 72 29 20 3f 5c 5b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar).?\[)).......................
3ece0 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(progn...................
3ed00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 .............(js2-add-to-string.
3ed20 3f 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ?C).............................
3ed40 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 44 29 0a 20 20 20 20 20 20 ...(js2-add-to-string.?D).......
3ed60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 .........................(js2-ad
3ed80 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 41 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-to-string.?A).................
3eda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e ...............(js2-add-to-strin
3edc0 67 20 3f 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.?T)...........................
3ede0 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 41 29 0a 20 20 20 20 .....(js2-add-to-string.?A).....
3ee00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
3ee20 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 5c 5b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 add-to-string.?\[)..............
3ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 72 ..................(unless.(js2-r
3ee60 65 61 64 2d 63 64 61 74 61 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ead-cdata.token)................
3ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e ..................(throw.'return
3eea0 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-ERROR)))...................
3eec0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 .........(js2-xml-discard-string
3eee0 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .token).........................
3ef00 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 ...(throw.'return.js2-ERROR)))..
3ef20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 .......................(t.......
3ef40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d ...................(unless.(js2-
3ef60 72 65 61 64 2d 65 6e 74 69 74 79 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 read-entity.token)..............
3ef80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 ..............(throw.'return.js2
3efa0 2d 45 52 52 4f 52 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ERROR))))......................
3efc0 20 3b 3b 20 41 6c 6c 6f 77 20 62 61 72 65 20 43 44 41 54 41 20 73 65 63 74 69 6f 6e 2c 20 65 2e .;;.Allow.bare.CDATA.section,.e.
3efe0 67 2e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 6c g.:.......................;;...l
3f000 65 74 20 78 6d 6c 20 3d 20 3c 21 5b 43 44 41 54 41 5b 20 66 6f 6f 20 62 61 72 20 62 61 7a 20 5d et.xml.=.<![CDATA[.foo.bar.baz.]
3f020 5d 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 ]>;.......................(when.
3f040 28 7a 65 72 6f 70 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f 75 6e (zerop.js2-ts-xml-open-tags-coun
3f060 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f t).........................(thro
3f080 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 58 4d 4c 45 4e 44 29 29 29 0a 20 20 20 20 20 20 20 20 w.'return.js2-XMLEND))).........
3f0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(??................
3f0c0 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b .......(setq.c.(js2-get-char)).;
3f0e0 3b 20 73 6b 69 70 20 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ;.skip.?.......................(
3f100 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 js2-add-to-string.c)............
3f120 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 72 65 61 64 2d 50 49 20 ...........(unless.(js2-read-PI.
3f140 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 token).........................(
3f160 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 20 20 20 20 throw.'return.js2-ERROR)))......
3f180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................(?/.............
3f1a0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 64 20 74 61 67 0a 20 20 20 20 20 20 20 20 20 20 20 ..........;;.end.tag............
3f1c0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 ...........(setq.c.(js2-get-char
3f1e0 29 29 20 3b 3b 20 73 6b 69 70 20 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )).;;.skip./....................
3f200 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 ...(js2-add-to-string.c)........
3f220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 65 72 6f 70 20 6a 73 32 2d ...............(when.(zerop.js2-
3f240 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 ts-xml-open-tags-count).........
3f260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 ................(js2-xml-discard
3f280 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -string.token)..................
3f2a0 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 .......(throw.'return.js2-ERROR)
3f2c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 ).......................(setq.js
3f2e0 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 74 29 0a 20 20 20 20 20 2-ts-xml-is-tag-content.t)......
3f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 73 .................(cl-decf.js2-ts
3f320 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 -xml-open-tags-count))..........
3f340 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(t..................
3f360 20 20 20 20 20 3b 3b 20 73 74 61 72 74 20 74 61 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....;;.start.tag...............
3f380 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d ........(setq.js2-ts-xml-is-tag-
3f3a0 63 6f 6e 74 65 6e 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 content.t)......................
3f3c0 20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 .(cl-incf.js2-ts-xml-open-tags-c
3f3e0 6f 75 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 7b 0a 20 ount))))...................(?{..
3f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 ..................(js2-unget-cha
3f420 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 73 r)....................(js2-set-s
3f440 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 tring-from-buffer.token)........
3f460 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 58 ............(throw.'return.js2-X
3f480 4d 4c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 ML))...................(t.......
3f4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 .............(js2-add-to-string.
3f4c0 63 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 c)))))))).....(setf.(js2-token-e
3f4e0 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 28 73 65 nd.token).js2-ts-cursor).....(se
3f500 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f 6b 65 6e 29 20 72 65 73 75 6c 74 tf.(js2-token-type.token).result
3f520 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d ).....result))..(defun.js2-read-
3f540 71 75 6f 74 65 64 2d 73 74 72 69 6e 67 20 28 71 75 6f 74 65 20 74 6f 6b 65 6e 29 0a 20 20 28 6c quoted-string.(quote.token)...(l
3f560 65 74 20 28 63 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 et.(c).....(catch.'return.......
3f580 28 77 68 69 6c 65 20 28 2f 3d 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 (while.(/=.(setq.c.(js2-get-char
3f5a0 29 29 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 )).js2-EOF_CHAR).........(js2-ad
3f5c0 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 63 d-to-string.c).........(if.(eq.c
3f5e0 20 71 75 6f 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 .quote).............(throw.'retu
3f600 72 6e 20 74 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 rn.t))).......(js2-xml-discard-s
3f620 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 20 3b 3b 20 74 68 72 6f 77 20 61 77 61 79 20 73 74 72 69 tring.token)..;;.throw.away.stri
3f640 6e 67 20 69 6e 20 70 72 6f 67 72 65 73 73 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 ng.in.progress.......nil)))..(de
3f660 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 20 28 74 6f 6b 65 6e 29 fun.js2-read-xml-comment.(token)
3f680 0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 ...(let.((c.(js2-get-char)))....
3f6a0 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d .(catch.'return.......(while.(/=
3f6c0 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 .c.js2-EOF_CHAR).........(catch.
3f6e0 27 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 'continue...........(js2-add-to-
3f700 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 string.c)...........(when.(and.(
3f720 65 71 20 63 20 3f 2d 29 20 28 65 71 20 3f 2d 20 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 29 eq.c.?-).(eq.?-.(js2-peek-char))
3f740 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 ).............(setq.c.(js2-get-c
3f760 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 har)).............(js2-add-to-st
3f780 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73 32 ring.c).............(if.(eq.(js2
3f7a0 2d 70 65 65 6b 2d 63 68 61 72 29 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -peek-char).?>).................
3f7c0 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 (progn...................(setq.c
3f7e0 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b 3b 20 73 6b 69 70 20 3e 0a 20 20 20 20 20 .(js2-get-char)).;;.skip.>......
3f800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 .............(js2-add-to-string.
3f820 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 c)...................(throw.'ret
3f840 75 72 6e 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 6f urn.t))...............(throw.'co
3f860 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 ntinue.nil)))...........(setq.c.
3f880 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c (js2-get-char)))).......(js2-xml
3f8a0 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e 69 6c -discard-string.token).......nil
3f8c0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 63 64 61 74 61 20 28 74 6f 6b 65 )))..(defun.js2-read-cdata.(toke
3f8e0 6e 29 0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 n)...(let.((c.(js2-get-char)))..
3f900 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 ...(catch.'return.......(while.(
3f920 2f 3d 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20 20 20 20 20 20 20 28 63 61 74 63 /=.c.js2-EOF_CHAR).........(catc
3f940 68 20 27 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 h.'continue...........(js2-add-t
3f960 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 o-string.c)...........(when.(and
3f980 20 28 65 71 20 63 20 3f 5c 5d 29 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20 .(eq.c.?\]).(eq.(js2-peek-char).
3f9a0 3f 5c 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 ?\])).............(setq.c.(js2-g
3f9c0 65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 et-char)).............(js2-add-t
3f9e0 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 o-string.c).............(if.(eq.
3fa00 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (js2-peek-char).?>).............
3fa20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ....(progn...................(se
3fa40 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b 3b 20 53 6b 69 70 20 3e 0a 20 tq.c.(js2-get-char)).;;.Skip.>..
3fa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 .................(js2-add-to-str
3fa80 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 ing.c)...................(throw.
3faa0 27 72 65 74 75 72 6e 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 'return.t))...............(throw
3fac0 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .'continue.nil)))...........(set
3fae0 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 q.c.(js2-get-char)))).......(js2
3fb00 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 -xml-discard-string.token)......
3fb20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 65 6e 74 69 74 79 20 .nil)))..(defun.js2-read-entity.
3fb40 28 74 6f 6b 65 6e 29 0a 20 20 28 6c 65 74 20 28 28 64 65 63 6c 2d 74 61 67 73 20 31 29 0a 20 20 (token)...(let.((decl-tags.1)...
3fb60 20 20 20 20 20 20 63 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 ......c).....(catch.'return.....
3fb80 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 20 28 73 65 74 71 20 ..(while.(/=.js2-EOF_CHAR.(setq.
3fba0 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d c.(js2-get-char))).........(js2-
3fbc0 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 add-to-string.c).........(cl-cas
3fbe0 65 20 63 0a 20 20 20 20 20 20 20 20 20 20 28 3f 3c 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c e.c...........(?<............(cl
3fc00 2d 69 6e 63 66 20 64 65 63 6c 2d 74 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3f 3e 0a -incf.decl-tags))...........(?>.
3fc20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 64 65 63 6c 2d 74 61 67 73 29 0a 20 ...........(cl-decf.decl-tags)..
3fc40 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 70 20 64 65 63 6c 2d 74 61 67 73 29 0a ..........(if.(zerop.decl-tags).
3fc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 74 29 ...............(throw.'return.t)
3fc80 29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 )))).......(js2-xml-discard-stri
3fca0 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a ng.token).......nil)))..(defun.j
3fcc0 73 32 2d 72 65 61 64 2d 50 49 20 28 74 6f 6b 65 6e 29 0a 20 20 22 53 63 61 6e 20 61 6e 20 58 4d s2-read-PI.(token)..."Scan.an.XM
3fce0 4c 20 70 72 6f 63 65 73 73 69 6e 67 20 69 6e 73 74 72 75 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 L.processing.instruction."...(le
3fd00 74 20 28 63 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28 t.(c).....(catch.'return.......(
3fd20 77 68 69 6c 65 20 28 2f 3d 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 20 28 73 65 74 71 20 63 20 28 while.(/=.js2-EOF_CHAR.(setq.c.(
3fd40 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 js2-get-char))).........(js2-add
3fd60 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 -to-string.c).........(when.(and
3fd80 20 28 65 71 20 63 20 3f 3f 29 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20 3f .(eq.c.??).(eq.(js2-peek-char).?
3fda0 3e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 >))...........(setq.c.(js2-get-c
3fdc0 68 61 72 29 29 20 20 3b 3b 20 53 6b 69 70 20 3e 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d har))..;;.Skip.>...........(js2-
3fde0 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f add-to-string.c)...........(thro
3fe00 77 20 27 72 65 74 75 72 6e 20 74 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69 w.'return.t))).......(js2-xml-di
3fe20 73 63 61 72 64 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 scard-string.token).......nil)))
3fe40 0a 0a 3b 3b 3b 20 48 69 67 68 6c 69 67 68 74 69 6e 67 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 ..;;;.Highlighting..(defun.js2-s
3fe60 65 74 2d 66 61 63 65 20 28 62 65 67 20 65 6e 64 20 66 61 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 et-face.(beg.end.face.&optional.
3fe80 72 65 63 6f 72 64 29 0a 20 20 22 46 6f 6e 74 69 66 79 20 61 20 72 65 67 69 6f 6e 2e 20 20 49 66 record)..."Fontify.a.region...If
3fea0 20 52 45 43 4f 52 44 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 63 6f 72 64 20 66 6f 72 20 6c .RECORD.is.non-nil,.record.for.l
3fec0 61 74 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 70 20 6a 73 32 2d 68 69 67 ater."...(when.(cl-plusp.js2-hig
3fee0 68 6c 69 67 68 74 2d 6c 65 76 65 6c 29 0a 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6d 69 6e hlight-level).....(setq.beg.(min
3ff00 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 20 .(point-max).beg)...........beg.
3ff20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 (max.(point-min).beg)...........
3ff40 65 6e 64 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 65 6e 64 29 0a 20 20 20 20 20 20 end.(min.(point-max).end).......
3ff60 20 20 20 20 65 6e 64 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 65 6e 64 29 29 0a 20 ....end.(max.(point-min).end))..
3ff80 20 20 20 28 69 66 20 72 65 63 6f 72 64 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 ...(if.record.........(push.(lis
3ffa0 74 20 62 65 67 20 65 6e 64 20 66 61 63 65 29 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74 69 66 69 t.beg.end.face).js2-mode-fontifi
3ffc0 63 61 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 cations).......(put-text-propert
3ffe0 79 20 62 65 67 20 65 6e 64 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 66 61 63 65 29 29 y.beg.end.'font-lock-face.face))
40000 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 63 6c 65 61 72 2d 66 61 63 65 20 28 62 65 ))..(defsubst.js2-clear-face.(be
40020 67 20 65 6e 64 29 0a 20 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 g.end)...(remove-text-properties
40040 20 62 65 67 20 65 6e 64 20 27 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 6e 69 6c 0a 20 20 .beg.end.'(font-lock-face.nil...
40060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40080 20 20 68 65 6c 70 2d 65 63 68 6f 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..help-echo.nil.................
400a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 69 6e 74 2d 65 6e 74 65 72 65 ....................point-entere
400c0 64 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.nil...........................
400e0 20 20 20 20 20 20 20 20 20 20 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e ..........cursor-sensor-function
40100 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.nil...........................
40120 20 20 20 20 20 20 20 20 20 20 63 2d 69 6e 2d 73 77 73 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 ..........c-in-sws.nil)))..(defc
40140 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 67 6c 6f 62 61 6c 2d 70 72 6f 70 73 0a 20 20 28 63 6f onst.js2-ecma-global-props...(co
40160 6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 ncat."^"...........(regexp-opt..
40180 20 20 20 20 20 20 20 20 20 20 27 28 22 49 6e 66 69 6e 69 74 79 22 20 22 4e 61 4e 22 20 22 75 6e ..........'("Infinity"."NaN"."un
401a0 64 65 66 69 6e 65 64 22 20 22 61 72 67 75 6d 65 6e 74 73 22 29 20 74 29 0a 20 20 20 20 20 20 20 defined"."arguments").t)........
401c0 20 20 20 22 24 22 29 0a 20 20 22 56 61 6c 75 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 ..."$")..."Value.properties.of.t
401e0 68 65 20 45 63 6d 61 2d 32 36 32 20 47 6c 6f 62 61 6c 20 4f 62 6a 65 63 74 2e 0a 53 68 6f 77 6e he.Ecma-262.Global.Object..Shown
40200 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 .at.or.above.`js2-highlight-leve
40220 6c 27 20 32 2e 22 29 0a 0a 3b 3b 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 61 64 64 20 74 68 l'.2.")..;;.might.want.to.add.th
40240 65 20 6e 61 6d 65 20 22 61 72 67 75 6d 65 6e 74 73 22 20 74 6f 20 74 68 69 73 20 6c 69 73 74 3f e.name."arguments".to.this.list?
40260 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 73 .(defconst.js2-ecma-object-props
40280 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 ...(concat."^"...........(regexp
402a0 2d 6f 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 70 72 6f 74 6f 74 79 70 65 22 20 22 5f -opt............'("prototype"."_
402c0 5f 70 72 6f 74 6f 5f 5f 22 20 22 5f 5f 70 61 72 65 6e 74 5f 5f 22 29 20 74 29 0a 20 20 20 20 20 _proto__"."__parent__").t)......
402e0 20 20 20 20 20 22 24 22 29 0a 20 20 22 56 61 6c 75 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 ....."$")..."Value.properties.of
40300 20 74 68 65 20 45 63 6d 61 2d 32 36 32 20 4f 62 6a 65 63 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 .the.Ecma-262.Object.constructor
40320 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 ..Shown.at.or.above.`js2-highlig
40340 68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 ht-level'.2.")..(defconst.js2-ec
40360 6d 61 2d 67 6c 6f 62 61 6c 2d 66 75 6e 63 73 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 5e 22 ma-global-funcs...(concat...."^"
40380 0a 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20 20 27 28 22 64 65 63 6f 64 65 55 52 49 ....(regexp-opt.....'("decodeURI
403a0 22 20 22 64 65 63 6f 64 65 55 52 49 43 6f 6d 70 6f 6e 65 6e 74 22 20 22 65 6e 63 6f 64 65 55 52 "."decodeURIComponent"."encodeUR
403c0 49 22 20 22 65 6e 63 6f 64 65 55 52 49 43 6f 6d 70 6f 6e 65 6e 74 22 0a 20 20 20 20 20 20 22 65 I"."encodeURIComponent"......."e
403e0 76 61 6c 22 20 22 69 73 46 69 6e 69 74 65 22 20 22 69 73 4e 61 4e 22 20 22 70 61 72 73 65 46 6c val"."isFinite"."isNaN"."parseFl
40400 6f 61 74 22 20 22 70 61 72 73 65 49 6e 74 22 29 20 74 29 0a 20 20 20 22 24 22 29 0a 20 20 22 46 oat"."parseInt").t)...."$")..."F
40420 75 6e 63 74 69 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 45 63 6d 61 2d 32 unction.properties.of.the.Ecma-2
40440 36 32 20 47 6c 6f 62 61 6c 20 6f 62 6a 65 63 74 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 62.Global.object..Shown.at.or.ab
40460 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a ove.`js2-highlight-level'.2.")..
40480 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 6e 75 6d 62 65 72 2d 70 72 6f 70 73 0a (defconst.js2-ecma-number-props.
404a0 20 20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d ..(concat."^"...........(regexp-
404c0 6f 70 74 20 27 28 22 4d 41 58 5f 56 41 4c 55 45 22 20 22 4d 49 4e 5f 56 41 4c 55 45 22 20 22 4e opt.'("MAX_VALUE"."MIN_VALUE"."N
404e0 61 4e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4e 45 47 aN"........................."NEG
40500 41 54 49 56 45 5f 49 4e 46 49 4e 49 54 59 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ATIVE_INFINITY".................
40520 20 20 20 20 20 20 20 20 22 50 4f 53 49 54 49 56 45 5f 49 4e 46 49 4e 49 54 59 22 29 20 74 29 0a ........"POSITIVE_INFINITY").t).
40540 20 20 20 20 20 20 20 20 20 20 22 24 22 29 0a 20 20 22 50 72 6f 70 65 72 74 69 65 73 20 6f 66 20 .........."$")..."Properties.of.
40560 74 68 65 20 45 63 6d 61 2d 32 36 32 20 4e 75 6d 62 65 72 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e the.Ecma-262.Number.constructor.
40580 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 .Shown.at.or.above.`js2-highligh
405a0 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d t-level'.2.")..(defconst.js2-ecm
405c0 61 2d 64 61 74 65 2d 70 72 6f 70 73 20 22 5e 5c 5c 28 70 61 72 73 65 5c 5c 7c 55 54 43 5c 5c 29 a-date-props."^\\(parse\\|UTC\\)
405e0 24 22 0a 20 20 22 50 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 45 63 6d 61 2d 32 36 32 $"..."Properties.of.the.Ecma-262
40600 20 44 61 74 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 .Date.constructor..Shown.at.or.a
40620 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a bove.`js2-highlight-level'.2.").
40640 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 6d 61 74 68 2d 70 72 6f 70 73 0a 20 .(defconst.js2-ecma-math-props..
40660 20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f .(concat."^"...........(regexp-o
40680 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 45 22 20 22 4c 4e 31 30 22 20 22 4c 4e 32 22 pt............'("E"."LN10"."LN2"
406a0 20 22 4c 4f 47 32 45 22 20 22 4c 4f 47 31 30 45 22 20 22 50 49 22 20 22 53 51 52 54 31 5f 32 22 ."LOG2E"."LOG10E"."PI"."SQRT1_2"
406c0 20 22 53 51 52 54 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 20 ."SQRT2")............t).........
406e0 20 20 22 24 22 29 0a 20 20 22 50 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 45 63 6d 61 .."$")..."Properties.of.the.Ecma
40700 2d 32 36 32 20 4d 61 74 68 20 6f 62 6a 65 63 74 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 -262.Math.object..Shown.at.or.ab
40720 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a ove.`js2-highlight-level'.2.")..
40740 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 6d 61 74 68 2d 66 75 6e 63 73 0a 20 20 (defconst.js2-ecma-math-funcs...
40760 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 (concat."^"...........(regexp-op
40780 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 61 62 73 22 20 22 61 63 6f 73 22 20 22 61 73 69 t............'("abs"."acos"."asi
407a0 6e 22 20 22 61 74 61 6e 22 20 22 61 74 61 6e 32 22 20 22 63 65 69 6c 22 20 22 63 6f 73 22 20 22 n"."atan"."atan2"."ceil"."cos"."
407c0 65 78 70 22 20 22 66 6c 6f 6f 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6c 6f 67 22 20 exp"."floor".............."log".
407e0 22 6d 61 78 22 20 22 6d 69 6e 22 20 22 70 6f 77 22 20 22 72 61 6e 64 6f 6d 22 20 22 72 6f 75 6e "max"."min"."pow"."random"."roun
40800 64 22 20 22 73 69 6e 22 20 22 73 71 72 74 22 20 22 74 61 6e 22 29 20 74 29 0a 20 20 20 20 20 20 d"."sin"."sqrt"."tan").t).......
40820 20 20 20 20 22 24 22 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 ...."$")..."Function.properties.
40840 6f 66 20 74 68 65 20 45 63 6d 61 2d 32 36 32 20 4d 61 74 68 20 6f 62 6a 65 63 74 2e 0a 53 68 6f of.the.Ecma-262.Math.object..Sho
40860 77 6e 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 wn.at.or.above.`js2-highlight-le
40880 76 65 6c 27 20 32 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 66 75 vel'.2.")..(defconst.js2-ecma-fu
408a0 6e 63 74 69 6f 6e 2d 70 72 6f 70 73 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 5e 22 0a 20 20 nction-props...(concat...."^"...
408c0 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20 20 27 28 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 .(regexp-opt.....'(;;.properties
408e0 20 6f 66 20 74 68 65 20 4f 62 6a 65 63 74 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a .of.the.Object.prototype.object.
40900 20 20 20 20 20 20 22 68 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 22 20 22 69 73 50 72 6f 74 6f 74 ......"hasOwnProperty"."isProtot
40920 79 70 65 4f 66 22 20 22 70 72 6f 70 65 72 74 79 49 73 45 6e 75 6d 65 72 61 62 6c 65 22 0a 20 20 ypeOf"."propertyIsEnumerable"...
40940 20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 53 74 72 69 6e 67 22 20 22 74 6f 53 74 72 69 6e 67 22 20 ...."toLocaleString"."toString".
40960 22 76 61 6c 75 65 4f 66 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 "valueOf".......;;.properties.of
40980 20 74 68 65 20 46 75 6e 63 74 69 6f 6e 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a 20 .the.Function.prototype.object..
409a0 20 20 20 20 20 22 61 70 70 6c 79 22 20 22 63 61 6c 6c 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f ....."apply"."call".......;;.pro
409c0 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 41 72 72 61 79 20 70 72 6f 74 6f 74 79 70 65 20 6f perties.of.the.Array.prototype.o
409e0 62 6a 65 63 74 0a 20 20 20 20 20 20 22 63 6f 6e 63 61 74 22 20 22 6a 6f 69 6e 22 20 22 70 6f 70 bject......."concat"."join"."pop
40a00 22 20 22 70 75 73 68 22 20 22 72 65 76 65 72 73 65 22 20 22 73 68 69 66 74 22 20 22 73 6c 69 63 "."push"."reverse"."shift"."slic
40a20 65 22 20 22 73 6f 72 74 22 0a 20 20 20 20 20 20 22 73 70 6c 69 63 65 22 20 22 75 6e 73 68 69 66 e"."sort"......."splice"."unshif
40a40 74 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 53 74 t".......;;.properties.of.the.St
40a60 72 69 6e 67 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 22 63 68 61 ring.prototype.object......."cha
40a80 72 41 74 22 20 22 63 68 61 72 43 6f 64 65 41 74 22 20 22 66 72 6f 6d 43 68 61 72 43 6f 64 65 22 rAt"."charCodeAt"."fromCharCode"
40aa0 20 22 69 6e 64 65 78 4f 66 22 20 22 6c 61 73 74 49 6e 64 65 78 4f 66 22 0a 20 20 20 20 20 20 22 ."indexOf"."lastIndexOf"......."
40ac0 6c 6f 63 61 6c 65 43 6f 6d 70 61 72 65 22 20 22 6d 61 74 63 68 22 20 22 72 65 70 6c 61 63 65 22 localeCompare"."match"."replace"
40ae0 20 22 73 65 61 72 63 68 22 20 22 73 70 6c 69 74 22 20 22 73 75 62 73 74 72 69 6e 67 22 0a 20 20 ."search"."split"."substring"...
40b00 20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 4c 6f 77 65 72 43 61 73 65 22 20 22 74 6f 4c 6f 63 61 6c ...."toLocaleLowerCase"."toLocal
40b20 65 55 70 70 65 72 43 61 73 65 22 20 22 74 6f 4c 6f 77 65 72 43 61 73 65 22 0a 20 20 20 20 20 20 eUpperCase"."toLowerCase".......
40b40 22 74 6f 55 70 70 65 72 43 61 73 65 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 "toUpperCase".......;;.propertie
40b60 73 20 6f 66 20 74 68 65 20 4e 75 6d 62 65 72 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 s.of.the.Number.prototype.object
40b80 0a 20 20 20 20 20 20 22 74 6f 45 78 70 6f 6e 65 6e 74 69 61 6c 22 20 22 74 6f 46 69 78 65 64 22 ......."toExponential"."toFixed"
40ba0 20 22 74 6f 50 72 65 63 69 73 69 6f 6e 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 ."toPrecision".......;;.properti
40bc0 65 73 20 6f 66 20 74 68 65 20 44 61 74 65 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a es.of.the.Date.prototype.object.
40be0 20 20 20 20 20 20 22 67 65 74 44 61 74 65 22 20 22 67 65 74 44 61 79 22 20 22 67 65 74 46 75 6c ......"getDate"."getDay"."getFul
40c00 6c 59 65 61 72 22 20 22 67 65 74 48 6f 75 72 73 22 20 22 67 65 74 4d 69 6c 6c 69 73 65 63 6f 6e lYear"."getHours"."getMillisecon
40c20 64 73 22 0a 20 20 20 20 20 20 22 67 65 74 4d 69 6e 75 74 65 73 22 20 22 67 65 74 4d 6f 6e 74 68 ds"......."getMinutes"."getMonth
40c40 22 20 22 67 65 74 53 65 63 6f 6e 64 73 22 20 22 67 65 74 54 69 6d 65 22 0a 20 20 20 20 20 20 22 "."getSeconds"."getTime"......."
40c60 67 65 74 54 69 6d 65 7a 6f 6e 65 4f 66 66 73 65 74 22 20 22 67 65 74 55 54 43 44 61 74 65 22 20 getTimezoneOffset"."getUTCDate".
40c80 22 67 65 74 55 54 43 44 61 79 22 20 22 67 65 74 55 54 43 46 75 6c 6c 59 65 61 72 22 0a 20 20 20 "getUTCDay"."getUTCFullYear"....
40ca0 20 20 20 22 67 65 74 55 54 43 48 6f 75 72 73 22 20 22 67 65 74 55 54 43 4d 69 6c 6c 69 73 65 63 ..."getUTCHours"."getUTCMillisec
40cc0 6f 6e 64 73 22 20 22 67 65 74 55 54 43 4d 69 6e 75 74 65 73 22 20 22 67 65 74 55 54 43 4d 6f 6e onds"."getUTCMinutes"."getUTCMon
40ce0 74 68 22 0a 20 20 20 20 20 20 22 67 65 74 55 54 43 53 65 63 6f 6e 64 73 22 20 22 73 65 74 44 61 th"......."getUTCSeconds"."setDa
40d00 74 65 22 20 22 73 65 74 46 75 6c 6c 59 65 61 72 22 20 22 73 65 74 48 6f 75 72 73 22 0a 20 20 20 te"."setFullYear"."setHours"....
40d20 20 20 20 22 73 65 74 4d 69 6c 6c 69 73 65 63 6f 6e 64 73 22 20 22 73 65 74 4d 69 6e 75 74 65 73 ..."setMilliseconds"."setMinutes
40d40 22 20 22 73 65 74 4d 6f 6e 74 68 22 20 22 73 65 74 53 65 63 6f 6e 64 73 22 20 22 73 65 74 54 69 "."setMonth"."setSeconds"."setTi
40d60 6d 65 22 0a 20 20 20 20 20 20 22 73 65 74 55 54 43 44 61 74 65 22 20 22 73 65 74 55 54 43 46 75 me"......."setUTCDate"."setUTCFu
40d80 6c 6c 59 65 61 72 22 20 22 73 65 74 55 54 43 48 6f 75 72 73 22 20 22 73 65 74 55 54 43 4d 69 6c llYear"."setUTCHours"."setUTCMil
40da0 6c 69 73 65 63 6f 6e 64 73 22 0a 20 20 20 20 20 20 22 73 65 74 55 54 43 4d 69 6e 75 74 65 73 22 liseconds"......."setUTCMinutes"
40dc0 20 22 73 65 74 55 54 43 4d 6f 6e 74 68 22 20 22 73 65 74 55 54 43 53 65 63 6f 6e 64 73 22 20 22 ."setUTCMonth"."setUTCSeconds"."
40de0 74 6f 44 61 74 65 53 74 72 69 6e 67 22 0a 20 20 20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 44 61 74 toDateString"......."toLocaleDat
40e00 65 53 74 72 69 6e 67 22 20 22 74 6f 4c 6f 63 61 6c 65 53 74 72 69 6e 67 22 20 22 74 6f 4c 6f 63 eString"."toLocaleString"."toLoc
40e20 61 6c 65 54 69 6d 65 53 74 72 69 6e 67 22 0a 20 20 20 20 20 20 22 74 6f 54 69 6d 65 53 74 72 69 aleTimeString"......."toTimeStri
40e40 6e 67 22 20 22 74 6f 55 54 43 53 74 72 69 6e 67 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65 ng"."toUTCString".......;;.prope
40e60 72 74 69 65 73 20 6f 66 20 74 68 65 20 52 65 67 45 78 70 20 70 72 6f 74 6f 74 79 70 65 20 6f 62 rties.of.the.RegExp.prototype.ob
40e80 6a 65 63 74 0a 20 20 20 20 20 20 22 65 78 65 63 22 20 22 74 65 73 74 22 0a 20 20 20 20 20 20 3b ject......."exec"."test".......;
40ea0 3b 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 4a 53 4f 4e 20 70 72 6f 74 6f 74 79 ;.properties.of.the.JSON.prototy
40ec0 70 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 22 70 61 72 73 65 22 20 22 73 74 72 69 6e 67 69 pe.object......."parse"."stringi
40ee0 66 79 22 0a 20 20 20 20 20 20 3b 3b 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 2f 52 68 69 6e 6f 20 fy".......;;.SpiderMonkey/Rhino.
40f00 65 78 74 65 6e 73 69 6f 6e 73 2c 20 76 65 72 73 69 6f 6e 73 20 31 2e 35 2b 0a 20 20 20 20 20 20 extensions,.versions.1.5+.......
40f20 22 74 6f 53 6f 75 72 63 65 22 20 22 5f 5f 64 65 66 69 6e 65 47 65 74 74 65 72 5f 5f 22 20 22 5f "toSource"."__defineGetter__"."_
40f40 5f 64 65 66 69 6e 65 53 65 74 74 65 72 5f 5f 22 0a 20 20 20 20 20 20 22 5f 5f 6c 6f 6f 6b 75 70 _defineSetter__"......."__lookup
40f60 47 65 74 74 65 72 5f 5f 22 20 22 5f 5f 6c 6f 6f 6b 75 70 53 65 74 74 65 72 5f 5f 22 20 22 5f 5f Getter__"."__lookupSetter__"."__
40f80 6e 6f 53 75 63 68 4d 65 74 68 6f 64 5f 5f 22 0a 20 20 20 20 20 20 22 65 76 65 72 79 22 20 22 66 noSuchMethod__"......."every"."f
40fa0 69 6c 74 65 72 22 20 22 66 6f 72 45 61 63 68 22 20 22 6c 61 73 74 49 6e 64 65 78 4f 66 22 20 22 ilter"."forEach"."lastIndexOf"."
40fc0 6d 61 70 22 20 22 73 6f 6d 65 22 29 0a 20 20 20 20 74 29 0a 20 20 20 22 24 22 29 0a 20 20 22 42 map"."some").....t)...."$")..."B
40fe0 75 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 62 79 20 45 63 6d uilt-in.functions.defined.by.Ecm
41000 61 2d 32 36 32 20 61 6e 64 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 65 78 74 65 6e 73 69 6f 6e a-262.and.SpiderMonkey.extension
41020 73 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 s..Shown.at.or.above.`js2-highli
41040 67 68 74 2d 6c 65 76 65 6c 27 20 33 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 ght-level'.3.")..(defun.js2-pars
41060 65 2d 68 69 67 68 6c 69 67 68 74 2d 70 72 6f 70 2d 67 65 74 20 28 70 61 72 65 6e 74 20 74 61 72 e-highlight-prop-get.(parent.tar
41080 67 65 74 20 70 72 6f 70 20 63 61 6c 6c 2d 70 29 0a 20 20 28 6c 65 74 20 28 28 74 61 72 67 65 74 get.prop.call-p)...(let.((target
410a0 2d 6e 61 6d 65 20 28 61 6e 64 20 74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.(and.target...............
410c0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 74 61 72 ............(js2-name-node-p.tar
410e0 67 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 get)...........................(
41100 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 74 61 72 67 65 74 29 29 29 0a 20 20 20 js2-name-node-name.target)))....
41120 20 20 20 20 20 28 70 72 6f 70 2d 6e 61 6d 65 20 28 69 66 20 70 72 6f 70 20 28 6a 73 32 2d 6e 61 .....(prop-name.(if.prop.(js2-na
41140 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 72 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 me-node-name.prop))).........(le
41160 76 65 6c 32 20 28 3e 3d 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 20 32 29 29 vel2.(>=.js2-highlight-level.2))
41180 0a 20 20 20 20 20 20 20 20 28 6c 65 76 65 6c 33 20 28 3e 3d 20 6a 73 32 2d 68 69 67 68 6c 69 67 .........(level3.(>=.js2-highlig
411a0 68 74 2d 6c 65 76 65 6c 20 33 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 65 76 65 6c 32 0a 20 ht-level.3))).....(when.level2..
411c0 20 20 20 20 20 28 6c 65 74 20 28 28 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 .....(let.((face..............(i
411e0 66 20 63 61 6c 6c 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a f.call-p..................(cond.
41200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 74 61 72 67 65 74 20 70 ..................((and.target.p
41220 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 rop)....................(cond...
41240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6c 65 76 65 6c 33 20 28 ..................((and.level3.(
41260 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 66 75 6e 63 74 69 6f 6e 2d 70 string-match.js2-ecma-function-p
41280 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rops.prop-name))................
412a0 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 0a 20 ......'font-lock-builtin-face)..
412c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 74 61 72 67 65 74 2d ...................((and.target-
412e0 6e 61 6d 65 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.prop)......................
41300 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 (cond.......................((st
41320 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61 6d 65 20 22 44 61 74 65 22 29 0a 20 20 20 20 20 20 ring=.target-name."Date").......
41340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 .................(if.(string-mat
41360 63 68 20 6a 73 32 2d 65 63 6d 61 2d 64 61 74 65 2d 70 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d 65 ch.js2-ecma-date-props.prop-name
41380 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f )............................'fo
413a0 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 nt-lock-builtin-face))..........
413c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61 .............((string=.target-na
413e0 6d 65 20 22 4d 61 74 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me."Math")......................
41400 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 6d 61 74 ..(if.(string-match.js2-ecma-mat
41420 68 2d 66 75 6e 63 73 20 70 72 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 h-funcs.prop-name)..............
41440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e ..............'font-lock-builtin
41460 2d 66 61 63 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 -face))))))...................(p
41480 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 rop....................(if.(stri
414a0 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 67 6c 6f 62 61 6c 2d 66 75 6e 63 73 20 70 ng-match.js2-ecma-global-funcs.p
414c0 72 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rop-name).......................
414e0 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 20 .'font-lock-builtin-face))).....
41500 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(cond................
41520 20 28 28 61 6e 64 20 74 61 72 67 65 74 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .((and.target.prop).............
41540 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 .....(cond...................((s
41560 74 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61 6d 65 20 22 4e 75 6d 62 65 72 22 29 0a 20 20 20 tring=.target-name."Number")....
41580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 ................(if.(string-matc
415a0 68 20 6a 73 32 2d 65 63 6d 61 2d 6e 75 6d 62 65 72 2d 70 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d h.js2-ecma-number-props.prop-nam
415c0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d e)........................'font-
415e0 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 lock-constant-face))............
41600 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61 6d 65 20 22 4d 61 .......((string=.target-name."Ma
41620 74 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 th")....................(if.(str
41640 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 6d 61 74 68 2d 70 72 6f 70 73 20 70 72 ing-match.js2-ecma-math-props.pr
41660 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 op-name)........................
41680 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 29 29 0a 20 20 20 'font-lock-constant-face))))....
416a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(prop..............
416c0 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 6f ....(if.(string-match.js2-ecma-o
416e0 62 6a 65 63 74 2d 70 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 bject-props.prop-name)..........
41700 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d ............'font-lock-constant-
41720 66 61 63 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e face)))))).........(when.(and.(n
41740 6f 74 20 66 61 63 65 29 20 74 61 72 67 65 74 20 28 6e 6f 74 20 63 61 6c 6c 2d 70 29 20 70 72 6f ot.face).target.(not.call-p).pro
41760 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63 65 20 27 6a 73 p-name)...........(setq.face.'js
41780 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 2d 61 63 63 65 73 73 29 29 0a 20 20 20 20 20 2-object-property-access))......
417a0 20 20 20 28 77 68 65 6e 20 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 ...(when.face...........(let.((p
417c0 6f 73 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 61 72 65 6e 74 29 20 20 3b 20 61 os.(+.(js2-node-pos.parent)..;.a
417e0 62 73 6f 6c 75 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bsolute.........................
41800 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 72 6f 70 29 29 29 29 20 3b 20 72 65 6c 61 74 69 76 (js2-node-pos.prop)))).;.relativ
41820 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 70 6f 73 0a e.............(js2-set-face.pos.
41840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 70 6f 73 ..........................(+.pos
41860 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(js2-node-len.prop))...........
41880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29 ................face.'record))))
418a0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d )))..(defun.js2-parse-highlight-
418c0 6d 65 6d 62 65 72 2d 65 78 70 72 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 50 65 72 66 6f member-expr-node.(node)..."Perfo
418e0 72 6d 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 66 20 45 63 6d 61 53 63 rm.syntax.highlighting.of.EcmaSc
41900 72 69 70 74 20 62 75 69 6c 74 2d 69 6e 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 54 68 65 20 76 61 ript.built-in.properties..The.va
41920 72 69 61 62 6c 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 27 20 67 6f 76 riable.`js2-highlight-level'.gov
41940 65 72 6e 73 20 74 68 69 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 erns.this.highlighting."...(let.
41960 28 66 61 63 65 20 74 61 72 67 65 74 20 70 72 6f 70 20 6e 61 6d 65 20 70 6f 73 20 65 6e 64 20 70 (face.target.prop.name.pos.end.p
41980 61 72 65 6e 74 20 63 61 6c 6c 2d 70 20 63 61 6c 6c 65 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 arent.call-p.callee).....(cond..
419a0 20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a 20 20 73 69 6d 70 6c 65 20 6e 61 6d 65 2c 20 65 2e 67 ....;;.case.1:..simple.name,.e.g
419c0 2e 20 66 6f 6f 0a 20 20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 ..foo......((js2-name-node-p.nod
419e0 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f e).......(setq.name.(js2-name-no
41a00 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 70 6f 73 73 69 62 6c 65 de-name.node)).......;;.possible
41a20 20 66 6f 72 20 6e 61 6d 65 20 74 6f 20 62 65 20 6e 69 6c 20 69 6e 20 72 61 72 65 20 63 61 73 65 .for.name.to.be.nil.in.rare.case
41a40 73 20 2d 20 73 61 77 20 69 74 20 77 68 65 6e 0a 20 20 20 20 20 20 3b 3b 20 72 75 6e 6e 69 6e 67 s.-.saw.it.when.......;;.running
41a60 20 6a 73 32 2d 6d 6f 64 65 20 6f 6e 20 61 6e 20 65 6c 69 73 70 20 62 75 66 66 65 72 2e 20 20 4d .js2-mode.on.an.elisp.buffer...M
41a80 69 67 68 74 20 61 73 20 77 65 6c 6c 20 74 72 79 20 74 6f 0a 20 20 20 20 20 20 3b 3b 20 6d 61 6b ight.as.well.try.to.......;;.mak
41aa0 65 20 69 74 20 73 6f 20 6a 73 32 2d 6d 6f 64 65 20 6e 65 76 65 72 20 62 61 72 66 73 2e 0a 20 20 e.it.so.js2-mode.never.barfs....
41ac0 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63 ....(when.name.........(setq.fac
41ae0 65 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 67 6c 6f e.(if.(string-match.js2-ecma-glo
41b00 62 61 6c 2d 70 72 6f 70 73 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bal-props.name).................
41b20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 .......'font-lock-constant-face)
41b40 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 ).........(when.face...........(
41b60 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 0a 20 20 20 setq.pos.(js2-node-pos.node)....
41b80 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 .............end.(+.pos.(js2-nod
41ba0 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 e-len.node)))...........(js2-set
41bc0 2d 66 61 63 65 20 70 6f 73 20 65 6e 64 20 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29 0a 20 -face.pos.end.face.'record))))..
41be0 20 20 20 20 3b 3b 20 63 61 73 65 20 32 3a 20 20 70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 20 ....;;.case.2:..property.access.
41c00 6f 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 0a 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d or.function.call......((or.(js2-
41c20 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 prop-get-node-p.node)...........
41c40 3b 3b 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 69 66 20 65 78 ;;.highlight.function.call.if.ex
41c60 70 72 20 69 73 20 61 20 70 72 6f 70 2d 67 65 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 pr.is.a.prop-get.node...........
41c80 3b 3b 20 6f 72 20 61 20 70 6c 61 69 6e 20 6e 61 6d 65 20 28 69 2e 65 2e 20 75 6e 71 75 61 6c 69 ;;.or.a.plain.name.(i.e..unquali
41ca0 66 69 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 fied.function.call)...........(a
41cc0 6e 64 20 28 73 65 74 71 20 63 61 6c 6c 2d 70 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 nd.(setq.call-p.(js2-call-node-p
41ce0 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 61 6c .node))................(setq.cal
41d00 6c 65 65 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 29 lee.(js2-call-node-target.node))
41d20 20 3b 20 73 65 70 61 72 61 74 65 20 73 65 74 71 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .;.separate.setq!...............
41d40 20 28 6f 72 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 63 61 6c 6c 65 65 .(or.(js2-prop-get-node-p.callee
41d60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e )....................(js2-name-n
41d80 6f 64 65 2d 70 20 63 61 6c 6c 65 65 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 ode-p.callee)))).......(setq.par
41da0 65 6e 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 28 69 66 20 63 61 ent.node.............node.(if.ca
41dc0 6c 6c 2d 70 20 63 61 6c 6c 65 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e ll-p.callee.node)).......(if.(an
41de0 64 20 63 61 6c 6c 2d 70 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 63 61 6c 6c 65 65 d.call-p.(js2-name-node-p.callee
41e00 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 70 20 63 61 6c 6c 65 65 29 0a ))...........(setq.prop.callee).
41e20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 72 67 65 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 ........(setq.target.(js2-prop-g
41e40 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 et-node-left.node)..............
41e60 20 70 72 6f 70 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e .prop.(js2-prop-get-node-right.n
41e80 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d ode))).......(cond........((js2-
41ea0 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 name-node-p.prop).........;;.cas
41ec0 65 20 32 28 61 26 63 29 3a 20 20 73 69 6d 70 6c 65 20 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 72 e.2(a&c):..simple.or.complex.tar
41ee0 67 65 74 2c 20 73 69 6d 70 6c 65 20 6e 61 6d 65 2c 20 65 2e 67 2e 20 78 5b 79 5d 2e 62 61 72 0a get,.simple.name,.e.g..x[y].bar.
41f00 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d 70 72 6f ........(js2-parse-highlight-pro
41f20 70 2d 67 65 74 20 70 61 72 65 6e 74 20 74 61 72 67 65 74 20 70 72 6f 70 20 63 61 6c 6c 2d 70 29 p-get.parent.target.prop.call-p)
41f40 29 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 74 61 72 67 65 )........((js2-name-node-p.targe
41f60 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 32 62 3a 20 20 73 69 6d 70 6c 65 20 74 t).........;;.case.2b:..simple.t
41f80 61 72 67 65 74 2c 20 63 6f 6d 70 6c 65 78 20 6e 61 6d 65 2c 20 65 2e 67 2e 20 66 6f 6f 2e 78 5b arget,.complex.name,.e.g..foo.x[
41fa0 79 5d 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d y].........(js2-parse-highlight-
41fc0 70 72 6f 70 2d 67 65 74 20 70 61 72 65 6e 74 20 74 61 72 67 65 74 20 6e 69 6c 20 63 61 6c 6c 2d prop-get.parent.target.nil.call-
41fe0 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c p)))))))..(defun.js2-parse-highl
42000 69 67 68 74 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 66 6e 2d 6e 61 6d 65 20 28 65 78 70 72 29 0a ight-member-expr-fn-name.(expr).
42020 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 60 62 61 7a 27 20 69 6e 20 66 75 6e 63 74 69 .."Highlight.the.`baz'.in.functi
42040 6f 6e 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 28 61 72 67 73 29 20 7b 2e 2e 2e 7d 2e 0a 54 68 69 73 on.foo.bar.baz(args).{...}..This
42060 20 69 73 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 52 68 69 6e 6f 20 73 79 6e 74 61 78 2e 20 20 .is.experimental.Rhino.syntax...
42080 45 58 50 52 20 69 73 20 74 68 65 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 20 6d 65 6d 62 65 72 20 65 EXPR.is.the.foo.bar.baz.member.e
420a0 78 70 72 2e 0a 57 65 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 68 61 6e 64 6c 65 20 74 68 xpr..We.currently.only.handle.th
420c0 65 20 63 61 73 65 20 77 68 65 72 65 20 74 68 65 20 6c 61 73 74 20 63 6f 6d 70 6f 6e 65 6e 74 20 e.case.where.the.last.component.
420e0 69 73 20 61 20 70 72 6f 70 2d 67 65 74 0a 6f 66 20 61 20 73 69 6d 70 6c 65 20 6e 61 6d 65 2e 20 is.a.prop-get.of.a.simple.name..
42100 20 43 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 45 58 50 52 20 68 61 73 20 61 20 70 61 72 65 6e 74 .Called.before.EXPR.has.a.parent
42120 20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 70 6f 73 0a 20 20 20 20 20 20 20 20 28 6e 61 6d .node."...(let.(pos.........(nam
42140 65 20 28 61 6e 64 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 65 78 70 72 e.(and.(js2-prop-get-node-p.expr
42160 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 6f 70 2d 67 )....................(js2-prop-g
42180 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 78 70 72 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e et-node-right.expr)))).....(when
421a0 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 6a .(js2-name-node-p.name).......(j
421c0 73 32 2d 73 65 74 2d 66 61 63 65 20 28 73 65 74 71 20 70 6f 73 20 28 2b 20 28 6a 73 32 2d 6e 6f s2-set-face.(setq.pos.(+.(js2-no
421e0 64 65 2d 70 6f 73 20 65 78 70 72 29 20 20 3b 20 70 61 72 65 6e 74 20 69 73 20 61 62 73 6f 6c 75 de-pos.expr)..;.parent.is.absolu
42200 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te..............................
42220 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 ....(js2-node-pos.name))).......
42240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c ..............(+.pos.(js2-node-l
42260 65 6e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 en.name)).....................'f
42280 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20 20 ont-lock-function-name-face.....
422a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 63 6f 72 64 29 29 29 29 0a 0a 3b 3b 20 ................'record))))..;;.
422c0 73 6f 75 72 63 65 3a 20 20 68 74 74 70 3a 2f 2f 6a 73 64 6f 63 2e 73 6f 75 72 63 65 66 6f 72 67 source:..http://jsdoc.sourceforg
422e0 65 2e 6e 65 74 2f 0a 3b 3b 20 4e 6f 74 65 20 2d 20 74 68 69 73 20 73 79 6e 74 61 78 20 69 73 20 e.net/.;;.Note.-.this.syntax.is.
42300 66 6f 72 20 47 6f 6f 67 6c 65 27 73 20 65 6e 68 61 6e 63 65 64 20 6a 73 64 6f 63 20 70 61 72 73 for.Google's.enhanced.jsdoc.pars
42320 65 72 20 74 68 61 74 0a 3b 3b 20 61 6c 6c 6f 77 73 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61 er.that.;;.allows.type.specifica
42340 74 69 6f 6e 73 2c 20 61 6e 64 20 6e 65 65 64 73 20 77 6f 72 6b 20 62 65 66 6f 72 65 20 65 6e 74 tions,.and.needs.work.before.ent
42360 65 72 69 6e 67 20 74 68 65 20 77 69 6c 64 2e 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a ering.the.wild...(defconst.js2-j
42380 73 64 6f 63 2d 70 61 72 61 6d 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 28 63 6f 6e 63 61 74 20 sdoc-param-tag-regexp...(concat.
423a0 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c 5c 28 40 22 0a 20 20 20 20 20 20 20 20 20 20 "^\\s-*\\*+\\s-*\\(@"...........
423c0 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 22 70 61 72 61 6d 22 20 22 61 72 67 22 20 22 61 72 67 (regexp-opt.'("param"."arg"."arg
423e0 75 6d 65 6e 74 22 20 22 70 72 6f 70 22 20 22 70 72 6f 70 65 72 74 79 22 20 22 74 79 70 65 64 65 ument"."prop"."property"."typede
42400 66 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 22 f"))..........."\\)"..........."
42420 5c 5c 73 2d 2a 5c 5c 28 7b 5b 5e 7d 5d 2b 7d 5c 5c 29 3f 22 20 20 20 20 20 20 20 20 20 3b 20 6f \\s-*\\({[^}]+}\\)?".........;.o
42440 70 74 69 6f 6e 61 6c 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 73 2d 2a 5c 5c 5b ptional.type..........."\\s-*\\[
42460 3f 5c 5c 28 5b 5b 3a 61 6c 6e 75 6d 3a 5d 5f 24 5c 2e 5d 2b 5c 5c 29 3f 5c 5c 5d 3f 22 20 20 3b ?\\([[:alnum:]_$\.]+\\)?\\]?"..;
42480 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5f 3e 22 29 0a 20 20 22 4d 61 74 63 68 .name..........."\\_>")..."Match
424a0 65 73 20 6a 73 64 6f 63 20 74 61 67 73 20 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 es.jsdoc.tags.with.optional.type
424c0 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 70 61 72 61 6d 20 6e 61 6d 65 2e 22 29 0a 0a 28 64 65 .and.optional.param.name.")..(de
424e0 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d 74 79 70 65 64 2d 74 61 67 2d 72 65 67 65 78 fconst.js2-jsdoc-typed-tag-regex
42500 70 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c 5c 28 40 p...(concat."^\\s-*\\*+\\s-*\\(@
42520 5c 5c 28 3f 3a 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20 \\(?:"...........(regexp-opt....
42540 20 20 20 20 20 20 20 20 27 28 22 65 6e 75 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 ........'("enum".............."e
42560 78 74 65 6e 64 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 65 6c 64 22 0a 20 20 20 xtends".............."field"....
42580 20 20 20 20 20 20 20 20 20 20 22 69 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6d 70 .........."id".............."imp
425a0 6c 65 6d 65 6e 74 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6c 65 6e 64 73 22 0a 20 20 lements".............."lends"...
425c0 20 20 20 20 20 20 20 20 20 20 20 22 6d 6f 64 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ..........."mods".............."
425e0 72 65 71 75 69 72 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 74 75 72 6e 22 0a requires".............."return".
42600 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 74 75 72 6e 73 22 0a 20 20 20 20 20 20 20 20 20 ............."returns"..........
42620 20 20 20 20 22 79 69 65 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 79 69 65 6c 64 73 ...."yield".............."yields
42640 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 20 ".............."type"...........
42660 20 20 20 22 74 68 72 6f 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 68 72 6f 77 73 22 ..."throw".............."throws"
42680 29 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 29 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 7b 5b 5e 7d ))..........."\\)\\)\\s-*\\({[^}
426a0 5d 2b 7d 5c 5c 29 3f 22 29 0a 20 20 22 4d 61 74 63 68 65 73 20 6a 73 64 6f 63 20 74 61 67 73 20 ]+}\\)?")..."Matches.jsdoc.tags.
426c0 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 with.optional.type.")..(defconst
426e0 20 6a 73 32 2d 6a 73 64 6f 63 2d 61 72 67 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 28 63 6f 6e .js2-jsdoc-arg-tag-regexp...(con
42700 63 61 74 20 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c 5c 28 40 5c 5c 28 3f 3a 22 0a 20 cat."^\\s-*\\*+\\s-*\\(@\\(?:"..
42720 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 .........(regexp-opt............
42740 27 28 22 61 6c 69 61 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 67 6d 65 6e 74 73 '("alias".............."augments
42760 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 6f 72 72 6f 77 73 22 0a 20 20 20 20 20 20 20 ".............."borrows"........
42780 20 20 20 20 20 20 22 63 61 6c 6c 62 61 63 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 ......"callback".............."b
427a0 75 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 61 73 65 22 0a 20 20 20 20 20 20 20 20 ug".............."base".........
427c0 20 20 20 20 20 22 63 6f 6e 66 69 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 61 ....."config".............."defa
427e0 75 6c 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 69 6e 65 22 0a 20 20 20 20 20 ult".............."define"......
42800 20 20 20 20 20 20 20 20 22 65 78 63 65 70 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........"exception".............
42820 20 22 66 75 6e 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 22 0a ."func".............."function".
42840 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 65 6d 62 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 ............."member"...........
42860 20 20 20 22 6d 65 6d 62 65 72 4f 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 65 74 68 ..."memberOf".............."meth
42880 6f 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 6f 64 75 6c 65 22 0a 20 20 20 20 20 20 od".............."module".......
428a0 20 20 20 20 20 20 20 22 6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 ......."name".............."name
428c0 73 70 61 63 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 69 6e 63 65 22 0a 20 20 20 20 space".............."since".....
428e0 20 20 20 20 20 20 20 20 20 22 73 75 70 70 72 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........."suppress".............
42900 20 22 74 68 69 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 68 72 6f 77 73 22 0a 20 20 ."this".............."throws"...
42920 20 20 20 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 ..........."version"))..........
42940 20 22 5c 5c 29 5c 5c 29 5c 5c 73 2d 2b 5c 5c 28 5b 5e 20 5c 74 5c 6e 5d 2b 5c 5c 29 22 29 0a 20 ."\\)\\)\\s-+\\([^.\t\n]+\\)")..
42960 20 22 4d 61 74 63 68 65 73 20 6a 73 64 6f 63 20 74 61 67 73 20 77 69 74 68 20 61 20 73 69 6e 67 ."Matches.jsdoc.tags.with.a.sing
42980 6c 65 20 61 72 67 75 6d 65 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 le.argument.")..(defconst.js2-js
429a0 64 6f 63 2d 65 6d 70 74 79 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 28 63 6f 6e 63 61 74 20 22 doc-empty-tag-regexp...(concat."
429c0 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c 5c 28 40 5c 5c 28 3f 3a 22 0a 20 20 20 20 20 20 ^\\s-*\\*+\\s-*\\(@\\(?:".......
429e0 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 61 62 ....(regexp-opt............'("ab
42a00 73 74 72 61 63 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 6f 6e 22 0a 20 20 20 stract".............."addon"....
42a20 20 20 20 20 20 20 20 20 20 20 22 61 75 74 68 6f 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........."author"..............
42a40 22 63 6c 61 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f 6e 73 74 22 0a 20 20 20 "class".............."const"....
42a60 20 20 20 20 20 20 20 20 20 20 22 63 6f 6e 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 .........."constant"............
42a80 20 20 22 63 6f 6e 73 74 72 75 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f .."constructor".............."co
42aa0 6e 73 74 72 75 63 74 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 70 72 65 63 61 74 nstructs".............."deprecat
42ac0 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 22 0a 20 20 20 20 20 20 20 20 ed".............."desc".........
42ae0 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."description"..............
42b00 22 65 76 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 61 6d 70 6c 65 22 0a 20 "event".............."example"..
42b20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 65 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............"exec"..............
42b40 22 65 78 70 6f 72 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 6f 76 65 72 76 "export".............."fileoverv
42b60 69 65 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6e 61 6c 22 0a 20 20 20 20 20 20 iew".............."final".......
42b80 20 20 20 20 20 20 20 22 66 75 6e 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 75 6e 63 ......."func".............."func
42ba0 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 69 64 64 65 6e 22 0a 20 20 20 20 tion".............."hidden".....
42bc0 20 20 20 20 20 20 20 20 20 22 69 67 6e 6f 72 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ........."ignore".............."
42be0 69 6d 70 6c 69 63 69 74 43 61 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 68 65 implicitCast".............."inhe
42c00 72 69 74 44 6f 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 6e 65 72 22 0a 20 20 20 ritDoc".............."inner"....
42c20 20 20 20 20 20 20 20 20 20 20 22 69 6e 74 65 72 66 61 63 65 22 0a 20 20 20 20 20 20 20 20 20 20 .........."interface"...........
42c40 20 20 20 22 6c 69 63 65 6e 73 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 65 74 68 6f ..."license".............."metho
42c60 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 6f 61 6c 69 61 73 22 0a 20 20 20 20 20 20 d".............."noalias".......
42c80 20 20 20 20 20 20 20 22 6e 6f 73 68 61 64 6f 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ......."noshadow".............."
42ca0 6e 6f 74 79 70 65 63 68 65 63 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6f 76 65 72 72 notypecheck".............."overr
42cc0 69 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6f 77 6e 65 72 22 0a 20 20 20 20 20 20 ide".............."owner".......
42ce0 20 20 20 20 20 20 20 22 70 72 65 73 65 72 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ......."preserve".............."
42d00 70 72 65 73 65 72 76 65 54 72 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 69 76 61 preserveTry".............."priva
42d20 74 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 74 65 63 74 65 64 22 0a 20 20 20 te".............."protected"....
42d40 20 20 20 20 20 20 20 20 20 20 22 70 75 62 6c 69 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........."public"..............
42d60 22 73 74 61 74 69 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 65 64 "static".............."supported
42d80 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 69 72 74 75 61 6c 22 0a 20 20 20 20 20 20 20 ".............."virtual"........
42da0 20 20 20 20 20 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 29 5c 5c 29 5c 5c 73 2d 2a 22 ......))..........."\\)\\)\\s-*"
42dc0 29 0a 20 20 22 4d 61 74 63 68 65 73 20 65 6d 70 74 79 20 6a 73 64 6f 63 20 74 61 67 73 2e 22 29 )..."Matches.empty.jsdoc.tags.")
42de0 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d 6c 69 6e 6b 2d 74 61 67 2d 72 ..(defconst.js2-jsdoc-link-tag-r
42e00 65 67 65 78 70 0a 20 20 22 7b 5c 5c 28 40 5c 5c 28 3f 3a 6c 69 6e 6b 5c 5c 7c 63 6f 64 65 5c 5c egexp..."{\\(@\\(?:link\\|code\\
42e20 29 5c 5c 29 5c 5c 73 2d 2b 5c 5c 28 5b 5e 23 7d 5c 6e 5d 2b 5c 5c 29 5c 5c 28 23 2e 2b 5c 5c 29 )\\)\\s-+\\([^#}\n]+\\)\\(#.+\\)
42e40 3f 7d 22 0a 20 20 22 4d 61 74 63 68 65 73 20 61 20 6a 73 64 6f 63 20 6c 69 6e 6b 20 6f 72 20 63 ?}"..."Matches.a.jsdoc.link.or.c
42e60 6f 64 65 20 74 61 67 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d ode.tag.")..(defconst.js2-jsdoc-
42e80 73 65 65 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d see-tag-regexp..."^\\s-*\\*+\\s-
42ea0 2a 5c 5c 28 40 73 65 65 5c 5c 29 5c 5c 73 2d 2b 5c 5c 28 5b 5e 23 7d 5c 6e 5d 2b 5c 5c 29 5c 5c *\\(@see\\)\\s-+\\([^#}\n]+\\)\\
42ec0 28 23 2e 2b 5c 5c 29 3f 22 0a 20 20 22 4d 61 74 63 68 65 73 20 61 20 6a 73 64 6f 63 20 40 73 65 (#.+\\)?"..."Matches.a.jsdoc.@se
42ee0 65 20 74 61 67 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 e.tag.")..(defconst.js2-jsdoc-ht
42f00 6d 6c 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 22 5c 5c 28 3c 2f 3f 5c 5c 29 5c 5c 28 5b 5b 3a ml-tag-regexp..."\\(</?\\)\\([[:
42f20 61 6c 70 68 61 3a 5d 5d 2b 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 2f 3f 3e 5c 5c 29 22 0a 20 20 22 4d alpha:]]+\\)\\s-*\\(/?>\\)"..."M
42f40 61 74 63 68 65 73 20 61 20 73 69 6d 70 6c 65 20 28 6e 6f 20 61 74 74 72 69 62 75 74 65 73 29 20 atches.a.simple.(no.attributes).
42f60 68 74 6d 6c 20 73 74 61 72 74 2d 20 6f 72 20 65 6e 64 2d 74 61 67 2e 22 29 0a 0a 28 64 65 66 75 html.start-.or.end-tag.")..(defu
42f80 6e 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 69 67 68 6c 69 67 68 74 2d 68 65 6c 70 65 72 20 28 29 0a n.js2-jsdoc-highlight-helper.().
42fa0 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 ..(js2-set-face.(match-beginning
42fc0 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 31 .1).................(match-end.1
42fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f 63 2d 74 61 67 ).................'js2-jsdoc-tag
43000 29 0a 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 0a 20 20 20 20 )...(if.(match-beginning.2).....
43020 20 20 28 69 66 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 ..(if.(save-excursion...........
43040 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 ..(goto-char.(match-beginning.2)
43060 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 7b ).............(=.(char-after).?{
43080 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 31 2b 20 28 ))...........(js2-set-face.(1+.(
430a0 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 match-beginning.2)).............
430c0 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6d 61 74 63 68 2d 65 6e 64 20 32 29 29 0a 20 ............(1-.(match-end.2))..
430e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f .......................'js2-jsdo
43100 63 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d c-type).........(js2-set-face.(m
43120 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-beginning.2)...............
43140 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 ........(match-end.2)...........
43160 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f 63 2d 76 61 6c 75 65 29 29 29 0a ............'js2-jsdoc-value))).
43180 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 33 29 0a 20 20 20 20 20 20 ..(if.(match-beginning.3).......
431a0 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 33 (js2-set-face.(match-beginning.3
431c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 ).....................(match-end
431e0 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 .3).....................'js2-jsd
43200 6f 63 2d 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 oc-value)))..(defun.js2-highligh
43220 74 2d 6a 73 64 6f 63 20 28 61 73 74 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 64 6f 63 20 63 t-jsdoc.(ast)..."Highlight.doc.c
43240 6f 6d 6d 65 6e 74 20 74 61 67 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 65 6e 74 73 20 omment.tags."...(let.((comments.
43260 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20 61 73 74 29 29 0a 20 20 20 (js2-ast-root-comments.ast))....
43280 20 20 20 20 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f .....beg.end).....(save-excursio
432a0 6e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6e 6f 64 65 20 63 6f 6d 6d 65 6e 74 73 29 0a n.......(dolist.(node.comments).
432c0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e ........(when.(eq.(js2-comment-n
432e0 6f 64 65 2d 66 6f 72 6d 61 74 20 6e 6f 64 65 29 20 27 6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20 ode-format.node).'jsdoc)........
43300 20 20 20 3b 3b 20 53 6c 69 63 65 20 6f 66 66 20 74 68 65 20 6c 65 61 64 69 6e 67 20 2f 2a 20 61 ...;;.Slice.off.the.leading./*.a
43320 6e 64 20 74 72 61 69 6c 69 6e 67 20 2a 2f 20 69 6e 20 63 61 73 65 20 74 68 65 72 65 0a 20 20 20 nd.trailing.*/.in.case.there....
43340 20 20 20 20 20 20 20 3b 3b 20 61 72 65 20 74 61 67 73 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 .......;;.are.tags.on.the.first.
43360 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 2b 20 32 20 28 6a line...........(setq.beg.(+.2.(j
43380 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 s2-node-abs-pos.node))..........
433a0 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62 65 67 20 2d 34 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c .......end.(+.beg.-4.(js2-node-l
433c0 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 en.node)))...........(save-restr
433e0 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 iction.............(narrow-to-re
43400 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 gion.beg.end).............(dolis
43420 74 20 28 72 65 20 28 6c 69 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d 70 61 72 61 6d 2d 74 61 67 2d t.(re.(list.js2-jsdoc-param-tag-
43440 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regexp..........................
43460 20 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 74 79 70 65 64 2d 74 61 67 2d 72 65 67 65 78 70 0a .....js2-jsdoc-typed-tag-regexp.
43480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 ..............................js
434a0 32 2d 6a 73 64 6f 63 2d 61 72 67 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 2-jsdoc-arg-tag-regexp..........
434c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 6c .....................js2-jsdoc-l
434e0 69 6e 6b 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ink-tag-regexp..................
43500 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 73 65 65 2d 74 61 67 2d 72 .............js2-jsdoc-see-tag-r
43520 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egexp...........................
43540 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 65 6d 70 74 79 2d 74 61 67 2d 72 65 67 65 78 70 29 29 ....js2-jsdoc-empty-tag-regexp))
43560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 ...............(goto-char.beg)..
43580 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 .............(while.(re-search-f
435a0 6f 72 77 61 72 64 20 72 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orward.re.nil.t)................
435c0 20 28 6a 73 32 2d 6a 73 64 6f 63 2d 68 69 67 68 6c 69 67 68 74 2d 68 65 6c 70 65 72 29 29 29 0a .(js2-jsdoc-highlight-helper))).
435e0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 69 6d 70 6c 65 20 68 69 67 68 6c 69 67 68 74 69 ............;;.simple.highlighti
43600 6e 67 20 66 6f 72 20 68 74 6d 6c 20 74 61 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f ng.for.html.tags.............(go
43620 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 to-char.beg).............(while.
43640 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d (re-search-forward.js2-jsdoc-htm
43660 6c 2d 74 61 67 2d 72 65 67 65 78 70 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 l-tag-regexp.nil.t).............
43680 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 ..(js2-set-face.(match-beginning
436a0 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .1).............................
436c0 28 6d 61 74 63 68 2d 65 6e 64 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (match-end.1)...................
436e0 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74 61 67 2d 64 65 ..........'js2-jsdoc-html-tag-de
43700 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d limiter)...............(js2-set-
43720 66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 0a 20 20 20 20 20 20 20 face.(match-beginning.2)........
43740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 .....................(match-end.
43760 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 2).............................'
43780 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74 61 67 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 js2-jsdoc-html-tag-name)........
437a0 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69 .......(js2-set-face.(match-begi
437c0 6e 6e 69 6e 67 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nning.3)........................
437e0 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(match-end.3)..............
43800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74 ...............'js2-jsdoc-html-t
43820 61 67 2d 64 65 6c 69 6d 69 74 65 72 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 ag-delimiter))))))))..(defun.js2
43840 2d 68 69 67 68 6c 69 67 68 74 2d 61 73 73 69 67 6e 2d 74 61 72 67 65 74 73 20 28 5f 6e 6f 64 65 -highlight-assign-targets.(_node
43860 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69 .left.right)..."Highlight.functi
43880 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 65 78 74 65 72 6e 61 6c 20 76 61 72 69 61 on.properties.and.external.varia
438a0 62 6c 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 6c 65 66 74 70 6f 73 20 6e 61 6d 65 29 0a 20 20 20 bles."...(let.(leftpos.name)....
438c0 20 3b 3b 20 68 69 67 68 6c 69 67 68 74 20 76 61 72 73 20 61 6e 64 20 70 72 6f 70 73 20 61 73 73 .;;.highlight.vars.and.props.ass
438e0 69 67 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 73 0a 20 20 20 20 28 77 68 65 6e 20 igned.function.values.....(when.
43900 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29 0a (or.(js2-function-node-p.right).
43920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 70 20 ..............(js2-class-node-p.
43940 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 76 61 right)).......(cond........;;.va
43960 72 20 66 6f 6f 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 0a 20 20 20 20 20 20 20 r.foo.=.function().{...}........
43980 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 ((js2-name-node-p.left).........
439a0 28 73 65 74 71 20 6e 61 6d 65 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f 2e (setq.name.left))........;;.foo.
439c0 62 61 72 2e 62 61 7a 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 0a 20 20 20 20 20 bar.baz.=.function().{...}......
439e0 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6c 65 66 ..((and.(js2-prop-get-node-p.lef
43a00 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 t)..............(js2-name-node-p
43a20 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6c 65 66 74 29 29 .(js2-prop-get-node-right.left))
43a40 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d 67 ).........(setq.name.(js2-prop-g
43a60 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6c 65 66 74 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 et-node-right.left)))).......(wh
43a80 65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 73 en.name.........(js2-set-face.(s
43aa0 65 74 71 20 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 61 etq.leftpos.(js2-node-abs-pos.na
43ac0 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 6c 65 me)).......................(+.le
43ae0 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 ftpos.(js2-node-len.name))......
43b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 .................'font-lock-func
43b20 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion-name-face..................
43b40 20 20 20 20 20 27 72 65 63 6f 72 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 .....'record)))))..(defun.js2-re
43b60 63 6f 72 64 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 53 61 76 65 73 20 4e cord-name-node.(node)..."Saves.N
43b80 4f 44 45 20 74 6f 20 60 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 ODE.to.`js2-recorded-identifiers
43ba0 27 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 '.to.check.for.undeclared.variab
43bc0 6c 65 73 0a 6c 61 74 65 72 2e 20 4e 4f 44 45 20 6d 75 73 74 20 62 65 20 61 20 6e 61 6d 65 20 6e les.later..NODE.must.be.a.name.n
43be0 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 ode."...(let.((leftpos.(js2-node
43c00 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 -abs-pos.node))).....(push.(list
43c20 20 6e 6f 64 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 .node.js2-current-scope.........
43c40 20 20 20 20 20 20 20 20 6c 65 66 74 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........leftpos.................
43c60 28 2b 20 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 (+.leftpos.(js2-node-len.node)))
43c80 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 ...........js2-recorded-identifi
43ca0 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64 ers)))..(defun.js2-highlight-und
43cc0 65 63 6c 61 72 65 64 2d 76 61 72 73 20 28 29 0a 20 20 22 41 66 74 65 72 20 65 6e 74 69 72 65 20 eclared-vars.()..."After.entire.
43ce0 70 61 72 73 65 20 69 73 20 66 69 6e 69 73 68 65 64 2c 20 6c 6f 6f 6b 20 66 6f 72 20 75 6e 64 65 parse.is.finished,.look.for.unde
43d00 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20 72 65 66 65 72 65 6e 63 65 73 2e 0a 57 65 20 68 clared.variable.references..We.h
43d20 61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69 6c 20 65 6e 74 69 72 65 20 62 75 66 66 65 72 20 ave.to.wait.until.entire.buffer.
43d40 69 73 20 70 61 72 73 65 64 2c 20 73 69 6e 63 65 20 4a 61 76 61 53 63 72 69 70 74 20 70 65 72 6d is.parsed,.since.JavaScript.perm
43d60 69 74 73 20 76 61 72 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 6f 20 6f 63 63 75 72 20 61 66 its.var.declarations.to.occur.af
43d80 74 65 72 20 74 68 65 79 27 72 65 20 75 73 65 64 2e 0a 0a 53 6f 6d 65 20 69 64 65 6e 74 69 66 69 ter.they're.used...Some.identifi
43da0 65 72 73 20 6d 61 79 20 62 65 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 65 78 74 65 72 6e 61 ers.may.be.assumed.to.be.externa
43dc0 6c 6c 79 20 64 65 66 69 6e 65 64 2e 0a 54 68 65 73 65 20 65 78 74 65 72 6e 73 20 61 72 65 20 6e lly.defined..These.externs.are.n
43de0 6f 74 20 68 69 67 68 6c 69 67 68 74 65 64 2c 20 65 76 65 6e 20 69 66 20 74 68 65 72 65 20 69 73 ot.highlighted,.even.if.there.is
43e00 20 6e 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 66 6f 72 20 74 68 65 6d 20 69 6e 20 74 68 65 20 .no.declaration.for.them.in.the.
43e20 73 6f 75 72 63 65 20 63 6f 64 65 20 28 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 source.code.(in.the.current.file
43e40 29 2e 0a 0a 54 68 65 20 6c 69 73 74 20 6f 66 20 65 78 74 65 72 6e 73 20 63 6f 6e 73 69 73 74 73 )...The.list.of.externs.consists
43e60 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 20 20 2d 20 60 6a 73 32 2d 65 63 6d .of.the.following:....-.`js2-ecm
43e80 61 32 36 32 2d 65 78 74 65 72 6e 73 27 20 66 6f 72 20 62 61 73 69 63 20 6e 61 6d 65 73 20 66 72 a262-externs'.for.basic.names.fr
43ea0 6f 6d 20 74 68 65 20 45 43 4d 41 53 63 72 69 70 74 20 6c 61 6e 67 75 61 67 65 20 73 74 61 6e 64 om.the.ECMAScript.language.stand
43ec0 61 72 64 2e 0a 20 20 2d 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 62 75 66 66 65 72 ard....-.Depending.on.the.buffer
43ee0 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 60 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 2a 2d -local.variables.`js2-include-*-
43f00 65 78 74 65 72 6e 73 27 0a 20 20 20 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 60 externs'.....the.corresponding.`
43f20 6a 73 32 2d 2a 2d 65 78 74 65 72 6e 73 27 20 74 6f 20 61 64 64 20 6e 61 6d 65 73 20 66 6f 72 20 js2-*-externs'.to.add.names.for.
43f40 63 65 72 74 61 69 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 0a 20 20 20 20 6c 69 6b 65 20 74 68 certain.environments.....like.th
43f60 65 20 62 72 6f 77 73 65 72 2c 20 4e 6f 64 65 20 6f 72 20 52 68 69 6e 6f 2e 0a 20 20 2d 20 54 77 e.browser,.Node.or.Rhino....-.Tw
43f80 6f 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 6c 69 73 74 73 20 60 6a 73 32 2d 67 6c 6f 62 61 6c o.customizable.lists.`js2-global
43fa0 2d 65 78 74 65 72 6e 73 27 20 61 6e 64 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 -externs'.and.`js2-additional-ex
43fc0 74 65 72 6e 73 27 2c 0a 20 20 20 20 74 68 65 20 6c 61 74 74 65 72 20 6f 66 20 77 68 69 63 68 20 terns',.....the.latter.of.which.
43fe0 73 68 6f 75 6c 64 20 62 65 20 73 65 74 20 70 65 72 2d 62 75 66 66 65 72 2e 0a 0a 53 65 65 20 65 should.be.set.per-buffer...See.e
44000 73 70 65 63 69 61 6c 6c 79 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e specially.`js2-additional-extern
44020 73 27 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 65 78 74 s'.for.further.details.about.ext
44040 65 72 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 65 78 74 65 72 6e 73 0a erns."...(let.((default-externs.
44060 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 6a 73 32 2d 65 63 6d 61 2d 32 36 32 2d 65 ..........(append.js2-ecma-262-e
44080 78 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e xterns...................(if.(an
440a0 64 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 0a 20 20 d.js2-include-browser-externs...
440c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 .........................(>=.js2
440e0 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 20 6a 73 32 2d 68 61 72 6d -language-version.200)).js2-harm
44100 6f 6e 79 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ony-externs)...................(
44120 69 66 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 20 6a 73 32 if.js2-include-rhino-externs.js2
44140 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -rhino-externs).................
44160 20 20 28 69 66 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 20 6a ..(if.js2-include-node-externs.j
44180 73 32 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-node-externs)................
441a0 20 20 20 28 69 66 20 28 6f 72 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65 ...(if.(or.js2-include-browser-e
441c0 78 74 65 72 6e 73 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 29 xterns.js2-include-node-externs)
441e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 79 70 65 64 .......................js2-typed
44200 2d 61 72 72 61 79 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -array-externs).................
44220 20 20 28 69 66 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e ..(if.js2-include-browser-extern
44240 73 20 6a 73 32 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e 73 29 29 29 0a 20 20 20 20 20 20 20 s.js2-browser-externs)))........
44260 20 6e 61 6d 65 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 6a 73 32 2d 72 65 .name).....(dolist.(entry.js2-re
44280 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 29 0a 20 20 20 20 20 20 28 63 6c 2d 64 65 corded-identifiers).......(cl-de
442a0 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 6e 61 6d 65 2d 6e 6f 64 65 20 73 63 6f 70 structuring-bind.(name-node.scop
442c0 65 20 70 6f 73 20 65 6e 64 29 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e e.pos.end).entry.........(setq.n
442e0 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 ame.(js2-name-node-name.name-nod
44300 65 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 e)).........(unless.(or.(member.
44320 6e 61 6d 65 20 6a 73 32 2d 67 6c 6f 62 61 6c 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 name.js2-global-externs)........
44340 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 6e 61 6d 65 20 64 65 66 61 75 6c .............(member.name.defaul
44360 74 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 t-externs).....................(
44380 6d 65 6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 member.name.js2-additional-exter
443a0 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 ns).....................(js2-get
443c0 2d 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 73 63 6f 70 65 20 6e 61 6d 65 20 70 6f 73 29 29 -defining-scope.scope.name.pos))
443e0 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22 ...........(js2-report-warning."
44400 6d 73 67 2e 75 6e 64 65 63 6c 61 72 65 64 2e 76 61 72 69 61 62 6c 65 22 20 6e 61 6d 65 20 70 6f msg.undeclared.variable".name.po
44420 73 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.(-.end.pos)...................
44440 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62 ............'js2-external-variab
44460 6c 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d 75 70 64 le))))))..(defun.js2--add-or-upd
44480 61 74 65 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 62 6f 6c 20 69 6e 69 74 69 6f 6e 20 75 73 65 64 20 ate-symbol.(symbol.inition.used.
444a0 76 61 72 73 29 0a 20 20 22 41 64 64 20 6f 72 20 75 70 64 61 74 65 20 53 59 4d 42 4f 4c 20 65 6e vars)..."Add.or.update.SYMBOL.en
444c0 74 72 79 20 69 6e 20 56 41 52 53 2c 20 61 6e 20 68 61 73 68 20 74 61 62 6c 65 2e 0a 53 59 4d 42 try.in.VARS,.an.hash.table..SYMB
444e0 4f 4c 20 69 73 20 61 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2c 20 49 4e 49 54 49 4f 4e 20 65 OL.is.a.js2-name-node,.INITION.e
44500 69 74 68 65 72 20 6e 69 6c 2c 20 74 2c 20 6f 72 20 3f 50 2c 0a 72 65 73 70 65 63 74 69 76 65 6c ither.nil,.t,.or.?P,.respectivel
44520 79 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 6d 65 72 65 20 y.meaning.that.SYMBOL.is.a.mere.
44540 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 61 6e 0a 61 73 73 69 67 6e 6d 65 6e 74 20 6f 72 20 61 20 declaration,.an.assignment.or.a.
44560 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 3b 20 77 68 65 6e 20 55 53 45 44 20 69 73 function.parameter;.when.USED.is
44580 20 74 2c 20 74 68 65 20 73 79 6d 62 6f 6c 0a 6e 6f 64 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 .t,.the.symbol.node.is.assumed.t
445a0 6f 20 62 65 20 61 6e 20 75 73 61 67 65 20 61 6e 64 20 74 68 75 73 20 61 64 64 65 64 20 74 6f 20 o.be.an.usage.and.thus.added.to.
445c0 74 68 65 20 6c 69 73 74 20 73 74 6f 72 65 64 0a 69 6e 20 74 68 65 20 63 64 72 20 6f 66 20 74 68 the.list.stored.in.the.cdr.of.th
445e0 65 20 65 6e 74 72 79 2e 0a 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6d 20 28 6a 73 32 2d 6e 61 6d e.entry.."...(let*.((nm.(js2-nam
44600 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 e-node-name.symbol))..........(e
44620 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70 65 20 s.(js2-node-get-enclosing-scope.
44640 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 73 20 28 6a 73 32 2d 67 65 74 2d 64 symbol))..........(ds.(js2-get-d
44660 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 65 73 20 6e 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e efining-scope.es.nm))).....(when
44680 20 28 61 6e 64 20 64 73 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 6e 6d 20 22 61 72 67 75 6d 65 6e .(and.ds.(not.(equal.nm."argumen
446a0 74 73 22 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 28 6a 73 32 2d 73 63 ts"))).......(let*.((sym.(js2-sc
446c0 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 64 73 20 6e 6d 29 29 0a 20 20 20 20 20 20 20 20 20 ope-get-symbol.ds.nm))..........
446e0 20 20 20 20 28 76 61 72 20 28 67 65 74 68 61 73 68 20 73 79 6d 20 76 61 72 73 29 29 0a 20 20 20 ....(var.(gethash.sym.vars))....
44700 20 20 20 20 20 20 20 20 20 20 28 65 72 72 2d 76 61 72 2d 70 20 28 6a 73 32 2d 63 61 74 63 68 2d ..........(err-var-p.(js2-catch-
44720 6e 6f 64 65 2d 70 20 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 69 node-p.ds))).........(unless.ini
44740 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 69 74 69 6f 6e 20 65 72 72 tion...........(setq.inition.err
44760 2d 76 61 72 2d 70 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 76 61 72 0a 20 20 20 20 20 20 20 -var-p)).........(if.var........
44780 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 .....(progn...............(when.
447a0 28 61 6e 64 20 69 6e 69 74 69 6f 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 28 63 61 72 20 76 61 (and.inition.(not.(equal.(car.va
447c0 72 29 20 3f 50 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 r).?P))).................(setcar
447e0 20 76 61 72 20 69 6e 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 .var.inition))...............(wh
44800 65 6e 20 28 61 6e 64 20 75 73 65 64 20 28 6e 6f 74 20 28 6d 65 6d 71 20 73 79 6d 62 6f 6c 20 28 en.(and.used.(not.(memq.symbol.(
44820 63 64 72 20 76 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 cdr.var)))).................(pus
44840 68 20 73 79 6d 62 6f 6c 20 28 63 64 72 20 76 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 h.symbol.(cdr.var))))...........
44860 3b 3b 20 64 6f 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 ;;.do.not.consider.the.declarati
44880 6f 6e 20 6f 66 20 63 61 74 63 68 20 70 61 72 61 6d 65 74 65 72 20 61 73 20 61 6e 20 75 73 61 67 on.of.catch.parameter.as.an.usag
448a0 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 72 72 2d 76 61 72 2d 70 e...........(when.(and.err-var-p
448c0 20 75 73 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 75 73 65 64 20 6e 69 .used).............(setq.used.ni
448e0 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 73 79 6d 20 28 63 6f 6e 73 l))...........(puthash.sym.(cons
44900 20 69 6e 69 74 69 6f 6e 20 28 69 66 20 75 73 65 64 20 28 6c 69 73 74 20 73 79 6d 62 6f 6c 29 29 .inition.(if.used.(list.symbol))
44920 29 20 76 61 72 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 63 6f 6c 6c 65 63 ).vars))))))..(defun.js2--collec
44940 74 2d 74 61 72 67 65 74 2d 73 79 6d 62 6f 6c 73 20 28 6e 6f 64 65 20 73 74 72 69 63 74 29 0a 20 t-target-symbols.(node.strict)..
44960 20 22 43 6f 6c 6c 65 63 74 20 74 68 65 20 60 6a 73 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 73 79 6d ."Collect.the.`js-name-node'.sym
44980 62 6f 6c 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 4e 4f 44 45 20 61 6e 64 20 72 65 74 75 72 6e bols.declared.in.NODE.and.return
449a0 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 6d 2e 0a 4e 4f 44 45 20 69 73 20 65 69 74 68 65 72 20 .a.list.of.them..NODE.is.either.
449c0 60 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 27 2c 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f `js2-array-node',.`js2-object-no
449e0 64 65 27 2c 20 6f 72 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 0a 57 68 65 6e 20 53 54 de',.or.`js2-name-node'..When.ST
44a00 52 49 43 54 2c 20 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 69 66 20 4e 4f 44 45 20 69 73 RICT,.signal.an.error.if.NODE.is
44a20 20 6e 6f 74 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 78 70 65 63 74 65 64 20 74 79 70 65 73 2e 22 .not.one.of.the.expected.types."
44a40 0a 20 20 28 6c 65 74 20 28 74 61 72 67 65 74 73 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 ...(let.(targets).....(cond.....
44a60 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 .((js2-name-node-p.node).......(
44a80 70 75 73 68 20 6e 6f 64 65 20 74 61 72 67 65 74 73 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 61 push.node.targets))......((js2-a
44aa0 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 rray-node-p.node).......(dolist.
44ac0 28 65 6c 74 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 (elt.(js2-array-node-elems.node)
44ae0 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 ).........(when.elt...........(s
44b00 65 74 71 20 65 6c 74 20 28 63 6f 6e 64 20 28 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 etq.elt.(cond.((js2-infix-node-p
44b20 20 65 6c 74 29 20 3b 3b 20 64 65 66 61 75 6c 74 20 28 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 .elt).;;.default.(=)............
44b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d ................(js2-infix-node-
44b60 6c 65 66 74 20 65 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 left.elt))......................
44b80 20 20 20 20 20 28 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 20 3b 3b 20 .....((js2-unary-node-p.elt).;;.
44ba0 72 65 73 74 20 28 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rest.(...)......................
44bc0 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 65 6c ......(js2-unary-node-operand.el
44be0 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 t))...........................(t
44c00 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 72 67 65 74 73 20 .elt)))...........(setq.targets.
44c20 28 61 70 70 65 6e 64 20 28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79 6d (append.(js2--collect-target-sym
44c40 62 6f 6c 73 20 65 6c 74 20 73 74 72 69 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bols.elt.strict)................
44c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 73 29 29 29 29 29 0a 20 20 .................targets)))))...
44c80 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 ...((js2-object-node-p.node)....
44ca0 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 ...(dolist.(elt.(js2-object-node
44cc0 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 75 62 -elems.node)).........(let.((sub
44ce0 65 78 70 72 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 expr.(cond......................
44d00 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 0a ...((and.(js2-infix-node-p.elt).
44d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d ..............................(=
44d40 20 6a 73 32 2d 41 53 53 49 47 4e 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 74 79 70 65 .js2-ASSIGN.(js2-infix-node-type
44d60 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .elt))).........................
44d80 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69 6e 67 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 61 .;;.Destructuring.with.default.a
44da0 72 67 75 6d 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rgument.........................
44dc0 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 65 6c 74 29 29 0a 20 20 20 ..(js2-infix-node-left.elt))....
44de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d .....................((and.(js2-
44e00 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 infix-node-p.elt)...............
44e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 6a 73 32 2d 43 4f 4c 4f 4e 20 28 6a 73 ................(=.js2-COLON.(js
44e40 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 74 79 70 65 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 2-infix-node-type.elt)))........
44e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 20 72 65 67 75 6c 61 72 20 ..................;;.In.regular.
44e80 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 7b 61 3a 20 61 61 2c 20 62 3a 20 62 62 7d 2c 0a 20 20 destructuring.{a:.aa,.b:.bb},...
44ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 76 61 .......................;;.the.va
44ec0 72 20 69 73 20 6f 6e 20 74 68 65 20 72 69 67 68 74 2e 20 20 49 6e 20 61 62 62 72 65 76 69 61 74 r.is.on.the.right...In.abbreviat
44ee0 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 ed..........................;;.d
44f00 65 73 74 72 75 63 74 75 72 69 6e 67 20 7b 61 2c 20 62 7d 2c 20 72 69 67 68 74 20 3d 3d 20 6c 65 estructuring.{a,.b},.right.==.le
44f20 66 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 ft...........................(js
44f40 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 6c 74 29 29 0a 20 20 20 20 20 20 20 2-infix-node-right.elt))........
44f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 75 6e 61 72 .................((and.(js2-unar
44f80 79 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y-node-p.elt)...................
44fa0 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 20 28 6a 73 ............(=.js2-TRIPLEDOT.(js
44fc0 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 74 79 70 65 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 2-unary-node-type.elt)))........
44fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69 ..................;;.Destructuri
45000 6e 67 20 77 69 74 68 20 73 70 72 65 61 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.with.spread..................
45020 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 .........(js2-unary-node-operand
45040 20 65 6c 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 75 62 65 78 70 .elt)))))...........(when.subexp
45060 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 72 67 65 74 73 20 28 61 70 70 r.............(setq.targets.(app
45080 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 end............................(
450a0 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79 6d 62 6f 6c 73 20 73 75 62 65 js2--collect-target-symbols.sube
450c0 78 70 72 20 73 74 72 69 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xpr.strict).....................
450e0 20 20 20 20 20 20 20 74 61 72 67 65 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d .......targets))))))......((js2-
45100 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 assign-node-p.node).......(setq.
45120 74 61 72 67 65 74 73 20 28 61 70 70 65 6e 64 20 28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 targets.(append.(js2--collect-ta
45140 72 67 65 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rget-symbols....................
45160 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 ..........(js2-assign-node-left.
45180 6e 6f 64 65 29 20 73 74 72 69 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node).strict)...................
451a0 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 73 29 29 29 0a 20 20 20 20 20 28 73 74 72 69 63 ..........targets)))......(stric
451c0 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e t.......(js2-report-error."msg.n
451e0 6f 2e 70 61 72 6d 22 20 6e 69 6c 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f o.parm".nil.(js2-node-abs-pos.no
45200 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 de).........................(js2
45220 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 -node-len.node)).........nil))..
45240 20 20 20 74 61 72 67 65 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 65 78 61 6d 69 6e ...targets))..(defun.js2--examin
45260 65 2d 76 61 72 69 61 62 6c 65 20 28 70 61 72 65 6e 74 20 6e 6f 64 65 20 76 61 72 2d 69 6e 69 74 e-variable.(parent.node.var-init
45280 2d 6e 6f 64 65 29 0a 20 20 22 45 78 61 6d 69 6e 65 20 74 68 65 20 75 73 61 67 65 20 6f 66 20 74 -node)..."Examine.the.usage.of.t
452a0 68 65 20 76 61 72 69 61 62 6c 65 20 4e 4f 44 45 2c 20 61 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 he.variable.NODE,.a.js2-name-nod
452c0 65 2e 0a 50 41 52 45 4e 54 20 69 73 20 69 74 73 20 64 69 72 65 63 74 20 61 6e 63 65 73 74 6f 72 e..PARENT.is.its.direct.ancestor
452e0 20 61 6e 64 20 56 41 52 2d 49 4e 49 54 2d 4e 4f 44 45 20 69 73 20 74 68 65 20 6e 6f 64 65 20 74 .and.VAR-INIT-NODE.is.the.node.t
45300 6f 20 62 65 0a 65 78 61 6d 69 6e 65 64 3a 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 o.be.examined:.return.a.list.of.
45320 74 68 72 65 65 20 76 61 6c 75 65 73 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 20 69 66 20 74 68 three.values,.respectively.if.th
45340 65 0a 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 63 6c 61 72 65 64 20 61 6e 64 2f 6f 72 20 61 73 e.variable.is.declared.and/or.as
45360 73 69 67 6e 65 64 20 6f 72 20 77 68 65 74 68 65 72 20 69 74 20 69 73 20 73 69 6d 70 6c 79 20 61 signed.or.whether.it.is.simply.a
45380 0a 6b 65 79 20 6f 66 20 61 20 6c 69 74 65 72 61 6c 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 6c 65 .key.of.a.literal.object."...(le
453a0 74 20 28 28 74 61 72 67 65 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 t.((target.(js2-var-init-node-ta
453c0 72 67 65 74 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 64 65 63 rget.var-init-node)).........dec
453e0 6c 61 72 65 64 20 61 73 73 69 67 6e 65 64 20 6f 62 6a 65 63 74 2d 6b 65 79 29 0a 20 20 20 20 28 lared.assigned.object-key).....(
45400 73 65 74 71 20 64 65 63 6c 61 72 65 64 20 28 6d 65 6d 71 20 6e 6f 64 65 20 28 6a 73 32 2d 2d 63 setq.declared.(memq.node.(js2--c
45420 6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79 6d 62 6f 6c 73 20 74 61 72 67 65 74 20 6e 69 6c ollect-target-symbols.target.nil
45440 29 29 29 0a 20 20 20 20 3b 3b 20 49 73 20 74 68 65 72 65 20 61 6e 20 69 6e 69 74 69 61 6c 69 7a ))).....;;.Is.there.an.initializ
45460 65 72 20 66 6f 72 20 74 68 65 20 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 3f 0a 20 20 er.for.the.declared.variable?...
45480 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 ..(when.(js2-var-init-node-initi
454a0 61 6c 69 7a 65 72 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 alizer.var-init-node).......(set
454c0 71 20 61 73 73 69 67 6e 65 64 20 64 65 63 6c 61 72 65 64 29 0a 20 20 20 20 20 20 3b 3b 20 44 65 q.assigned.declared).......;;.De
454e0 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 20 6e 61 6d 65 20 69 73 20 61 63 74 75 61 6c 6c 79 20 termine.if.the.name.is.actually.
45500 61 20 6c 69 74 65 72 61 6c 20 6f 62 6a 65 63 74 20 6b 65 79 20 74 68 61 74 20 77 65 20 73 68 61 a.literal.object.key.that.we.sha
45520 6c 6c 0a 20 20 20 20 20 20 3b 3b 20 69 67 6e 6f 72 65 20 6c 61 74 65 72 0a 20 20 20 20 20 20 28 ll.......;;.ignore.later.......(
45540 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 64 65 63 6c 61 72 65 64 29 0a 20 20 20 20 20 20 20 when.(and.(not.declared)........
45560 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d ..........(js2-object-prop-node-
45580 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6e p.parent)..................(eq.n
455a0 6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 70 ode.(js2-object-prop-node-left.p
455c0 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 arent))..................(not.(e
455e0 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 72 69 67 q.node.(js2-object-prop-node-rig
45600 68 74 20 70 61 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 62 6a 65 ht.parent)))).........(setq.obje
45620 63 74 2d 6b 65 79 20 74 29 29 29 0a 20 20 20 20 3b 3b 20 4d 61 79 62 65 20 74 68 69 73 20 69 73 ct-key.t))).....;;.Maybe.this.is
45640 20 61 20 66 6f 72 20 6c 6f 6f 70 20 61 6e 64 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 .a.for.loop.and.the.variable.is.
45660 6f 6e 65 20 6f 66 20 69 74 73 20 69 74 65 72 61 74 6f 72 73 3f 0a 20 20 20 20 28 75 6e 6c 65 73 one.of.its.iterators?.....(unles
45680 73 20 61 73 73 69 67 6e 65 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 67 70 20 28 6a 73 32 s.assigned.......(let*.((gp.(js2
456a0 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node-parent.parent))...........
456c0 20 20 20 28 67 67 70 20 28 69 66 20 67 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 ...(ggp.(if.gp.(js2-node-parent.
456e0 67 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 67 70 20 28 6a gp)))).........(when.(and.ggp.(j
45700 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 70 20 67 67 70 29 29 0a 20 20 20 20 20 20 20 20 20 s2-for-in-node-p.ggp))..........
45720 20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20 28 6d 65 6d 71 20 6e 6f 64 65 0a 20 20 20 20 20 .(setq.assigned.(memq.node......
45740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f ..........................(cl-lo
45760 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 op..............................
45780 20 20 20 66 6f 72 20 6b 69 64 20 69 6e 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 ...for.kid.in.(js2-var-decl-node
457a0 2d 6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -kids...........................
457c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f ..................(js2-for-in-no
457e0 64 65 2d 69 74 65 72 61 74 6f 72 20 67 67 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-iterator.ggp))...............
45800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 73 79 6d 73 20 3d 20 27 28 ..................with.syms.=.'(
45820 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
45840 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..do............................
45860 20 20 20 20 20 28 73 65 74 71 20 73 79 6d 73 20 28 61 70 70 65 6e 64 20 73 79 6d 73 0a 20 20 20 .....(setq.syms.(append.syms....
45880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
458a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 ................(js2--collect-ta
458c0 72 67 65 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rget-symbols....................
458e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
45900 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6b 69 64 29 0a .(js2-var-init-node-target.kid).
45920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
45940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 ....................nil)))......
45960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c ...........................final
45980 6c 79 20 72 65 74 75 72 6e 20 73 79 6d 73 29 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 64 ly.return.syms)))))).....(list.d
459a0 65 63 6c 61 72 65 64 20 61 73 73 69 67 6e 65 64 20 6f 62 6a 65 63 74 2d 6b 65 79 29 29 29 0a 0a eclared.assigned.object-key)))..
459c0 28 64 65 66 75 6e 20 6a 73 32 2d 2d 69 73 2d 70 61 72 61 6d 20 28 76 61 72 2d 6e 6f 64 65 20 70 (defun.js2--is-param.(var-node.p
459e0 61 72 61 6d 73 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 64 65 74 65 72 6d 69 6e 65 20 arams)..."Recursively.determine.
45a00 77 68 65 74 68 65 72 20 56 41 52 2d 4e 4f 44 45 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e whether.VAR-NODE.is.contained.in
45a20 20 50 41 52 41 4d 53 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 .PARAMS."...(cond.((js2-object-p
45a40 72 6f 70 2d 6e 6f 64 65 2d 70 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 20 rop-node-p.params)..........(eq.
45a60 76 61 72 2d 6e 6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c var-node.(js2-object-prop-node-l
45a80 65 66 74 20 70 61 72 61 6d 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 eft.params))).........((js2-name
45aa0 2d 6e 6f 64 65 2d 70 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 20 76 61 72 -node-p.params)..........(eq.var
45ac0 2d 6e 6f 64 65 20 70 61 72 61 6d 73 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 -node.params)).........(t.......
45ae0 20 20 20 28 6c 65 74 20 28 28 69 73 70 61 72 61 6d 20 28 69 66 20 28 6c 69 73 74 70 20 70 61 72 ...(let.((isparam.(if.(listp.par
45b00 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ams)............................
45b20 20 28 6d 65 6d 71 20 76 61 72 2d 6e 6f 64 65 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 .(memq.var-node.params).........
45b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 ..................(cl-loop.with.
45b60 66 6f 75 6e 64 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 found.=.nil.....................
45b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 20 69 6e 20 28 6a 73 32 2d 6e 6f 64 ...............for.p.in.(js2-nod
45ba0 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 e-child-list.params)............
45bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6e ........................while.(n
45be0 75 6c 6c 20 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ull.found)......................
45c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 66 6f 75 6e 64 20 28 65 71 ..............do.(setq.found.(eq
45c20 20 76 61 72 2d 6e 6f 64 65 20 70 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e .var-node.p))))))............(un
45c40 6c 65 73 73 20 69 73 70 61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 less.isparam..............(let.(
45c60 28 6b 69 64 73 20 28 69 66 20 28 6c 69 73 74 70 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 (kids.(if.(listp.params)........
45c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 0a 20 20 20 ......................params....
45ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 ........................(js2-nod
45cc0 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 61 72 61 6d 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 e-child-list.params)))).........
45ce0 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 70 20 69 6e 20 6b 69 64 73 0a 20 20 .......(cl-loop.for.p.in.kids...
45d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6e 75 6c ......................while.(nul
45d20 6c 20 69 73 70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l.isparam)......................
45d40 20 20 20 64 6f 20 28 73 65 74 71 20 69 73 70 61 72 61 6d 20 28 6a 73 32 2d 2d 69 73 2d 70 61 72 ...do.(setq.isparam.(js2--is-par
45d60 61 6d 20 76 61 72 2d 6e 6f 64 65 20 70 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 69 73 am.var-node.p)))))............is
45d80 70 61 72 61 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 69 73 2d 66 75 6e 63 74 69 param))))..(defun.js2--is-functi
45da0 6f 6e 2d 70 61 72 61 6d 20 28 70 61 72 65 6e 74 20 76 61 72 2d 6e 6f 64 65 29 0a 20 20 22 44 65 on-param.(parent.var-node)..."De
45dc0 74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 56 41 52 2d 4e 4f 44 45 20 69 73 20 61 20 66 75 termine.whether.VAR-NODE.is.a.fu
45de0 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 61 6e 64 nction.parameter."...(while.(and
45e00 20 70 61 72 65 6e 74 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d .parent.(not.(js2-function-node-
45e20 70 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32 2d 76 61 72 p.parent))).....(if.(or.(js2-var
45e40 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 -init-node-p.parent)............
45e60 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 29 0a 20 20 20 .(js2-assign-node-p.parent))....
45e80 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 .....(setq.parent.nil).....(setq
45ea0 20 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29 .parent.(js2-node-parent.parent)
45ec0 29 29 29 0a 20 20 28 77 68 65 6e 20 70 61 72 65 6e 74 0a 20 20 20 20 28 6a 73 32 2d 2d 69 73 2d )))...(when.parent.....(js2--is-
45ee0 70 61 72 61 6d 20 76 61 72 2d 6e 6f 64 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 param.var-node.(js2-function-nod
45f00 65 2d 70 61 72 61 6d 73 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d e-params.parent))))..(defun.js2-
45f20 2d 63 6c 61 73 73 69 66 79 2d 76 61 72 69 61 62 6c 65 20 28 70 61 72 65 6e 74 20 6e 6f 64 65 20 -classify-variable.(parent.node.
45f40 76 61 72 73 29 0a 20 20 22 43 6c 61 73 73 69 66 79 20 74 68 65 20 73 69 6e 67 6c 65 20 76 61 72 vars)..."Classify.the.single.var
45f60 69 61 62 6c 65 20 4e 4f 44 45 2c 20 61 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2c 20 75 70 64 iable.NODE,.a.js2-name-node,.upd
45f80 61 74 69 6e 67 20 74 68 65 20 56 41 52 53 20 63 6f 6c 6c 65 63 74 69 6f 6e 2e 22 0a 20 20 28 6c ating.the.VARS.collection."...(l
45fa0 65 74 20 28 28 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 20 28 6a 73 32 2d 2d 69 73 2d 66 75 6e et.((function-param.(js2--is-fun
45fc0 63 74 69 6f 6e 2d 70 61 72 61 6d 20 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 ction-param.parent.node))).....(
45fe0 69 66 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a if.(js2-prop-get-node-p.parent).
46000 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 77 69 74 68 69 6e 20 61 20 70 72 ........;;.If.we.are.within.a.pr
46020 6f 70 2d 67 65 74 2c 20 65 2e 67 2e 20 74 68 65 20 22 62 61 72 22 20 69 6e 20 22 66 6f 6f 2e 62 op-get,.e.g..the."bar".in."foo.b
46040 61 72 22 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 73 74 20 6d 61 72 6b 20 22 66 6f 6f 22 20 ar",.........;;.just.mark."foo".
46060 61 73 20 75 73 65 64 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 28 6a 73 32 as.used.........(let.((left.(js2
46080 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 70 61 72 65 6e 74 29 29 29 0a 20 20 -prop-get-node-left.parent)))...
460a0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6c ........(when.(js2-name-node-p.l
460c0 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d 75 70 eft).............(js2--add-or-up
460e0 64 61 74 65 2d 73 79 6d 62 6f 6c 20 6c 65 66 74 20 6e 69 6c 20 74 20 76 61 72 73 29 29 29 0a 20 date-symbol.left.nil.t.vars)))..
46100 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 74 68 65 20 65 78 74 65 72 .....;;.If.the.node.is.the.exter
46120 6e 61 6c 20 6e 61 6d 65 20 6f 66 20 61 6e 20 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f nal.name.of.an.export-binding-no
46140 64 65 2c 20 61 6e 64 0a 20 20 20 20 20 20 3b 3b 20 69 74 20 69 73 20 64 69 66 66 65 72 65 6e 74 de,.and.......;;.it.is.different
46160 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 6e 61 6d 65 2c 20 69 67 6e 6f 72 65 20 69 74 0a .from.the.local.name,.ignore.it.
46180 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 ......(when.(or.(not.(js2-export
461a0 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 -binding-node-p.parent))........
461c0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 65 71 20 28 6a 73 32 2d 65 78 70 6f .........(not.(and.(eq.(js2-expo
461e0 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d 65 20 70 61 72 65 rt-binding-node-extern-name.pare
46200 6e 74 29 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt).node).......................
46220 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 ....(not.(eq.(js2-export-binding
46240 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 70 61 72 65 6e 74 29 20 6e 6f 64 65 29 29 29 -node-local-name.parent).node)))
46260 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 67 72 61 6e 70 61 72 65 6e 74 20 70 61 72 )).........(let.((granparent.par
46280 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 ent)...............var-init-node
462a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 69 67 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 ...............assign-node......
462c0 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 2d 6b 65 79 20 20 20 20 20 20 20 20 20 3b 20 69 73 .........object-key.........;.is
462e0 20 6e 61 6d 65 20 61 63 74 75 61 6c 6c 79 20 61 6e 20 6f 62 6a 65 63 74 20 70 72 6f 70 20 6b 65 .name.actually.an.object.prop.ke
46300 79 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 63 6c 61 72 65 64 20 20 20 20 20 20 20 y?...............declared.......
46320 20 20 20 20 3b 20 69 73 20 69 74 20 64 65 63 6c 61 72 65 64 20 69 6e 20 6e 61 72 72 6f 77 65 73 ....;.is.it.declared.in.narrowes
46340 74 20 73 63 6f 70 65 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 69 67 6e 65 64 20 t.scope?...............assigned.
46360 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 65 73 20 69 74 20 67 65 74 20 61 73 73 69 67 6e 65 64 ..........;.does.it.get.assigned
46380 20 6f 72 20 69 6e 69 74 69 61 6c 69 7a 65 64 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .or.initialized?...............(
463a0 75 73 65 64 20 28 6e 75 6c 6c 20 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 29 29 29 0a 20 20 20 used.(null.function-param)))....
463c0 20 20 20 20 20 20 20 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 63 6c 6f 73 65 73 74 20 .......;;.Determine.the.closest.
463e0 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 61 6e 64 20 61 73 73 69 67 6e 2d 6e 6f 64 65 3a 20 74 var-init-node.and.assign-node:.t
46400 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 6e 65 65 64 65 64 20 62 65 63 61 75 his...........;;.is.needed.becau
46420 73 65 20 74 68 65 20 6e 61 6d 65 20 6d 61 79 20 62 65 20 77 69 74 68 69 6e 20 61 20 22 64 65 73 se.the.name.may.be.within.a."des
46440 74 72 75 63 74 75 72 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 63 6c 61 72 61 74 tructured"...........;;.declarat
46460 69 6f 6e 2f 61 73 73 69 67 6e 6d 65 6e 74 2c 20 73 6f 20 77 65 20 63 61 6e 6e 6f 74 20 6a 75 73 ion/assignment,.so.we.cannot.jus
46480 74 20 74 61 6b 65 20 69 74 73 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 t.take.its.parent...........(whi
464a0 6c 65 20 28 61 6e 64 20 67 72 61 6e 70 61 72 65 6e 74 20 28 6e 6f 74 20 28 6a 73 32 2d 73 63 6f le.(and.granparent.(not.(js2-sco
464c0 70 65 2d 70 20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 pe-p.granparent))).............(
464e0 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 cond..............((js2-var-init
46500 2d 6e 6f 64 65 2d 70 20 67 72 61 6e 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -node-p.granparent).............
46520 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 29 0a 20 20 20 ..(when.(null.var-init-node)....
46540 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 .............(setq.var-init-node
46560 20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 .granparent)))..............((js
46580 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 67 72 61 6e 70 61 72 65 6e 74 29 0a 20 20 20 20 2-assign-node-p.granparent).....
465a0 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 61 73 73 69 67 6e 2d 6e 6f 64 ..........(when.(null.assign-nod
465c0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67 6e 2d e).................(setq.assign-
465e0 6e 6f 64 65 20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 node.granparent)))).............
46600 28 73 65 74 71 20 67 72 61 6e 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e (setq.granparent.(js2-node-paren
46620 74 20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 t.granparent)))............;;.If
46640 20 77 65 20 61 72 65 20 77 69 74 68 69 6e 20 61 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2c 20 .we.are.within.a.var-init-node,.
46660 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 20 6e 61 6d 65 20 69 73 0a 20 20 20 20 20 20 20 determine.if.the.name.is........
46680 20 20 20 3b 3b 20 64 65 63 6c 61 72 65 64 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 64 0a 20 ...;;.declared.and.initialized..
466a0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 0a 20 20 20 .........(when.var-init-node....
466c0 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 6a 73 32 2d 2d 65 78 61 .........(let.((result.(js2--exa
466e0 6d 69 6e 65 2d 76 61 72 69 61 62 6c 65 20 70 61 72 65 6e 74 20 6e 6f 64 65 20 76 61 72 2d 69 6e mine-variable.parent.node.var-in
46700 69 74 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 it-node)))...............(setq.d
46720 65 63 6c 61 72 65 64 20 28 63 61 72 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 eclared.(car.result)............
46740 20 20 20 20 20 20 20 20 20 61 73 73 69 67 6e 65 64 20 28 63 61 64 72 20 72 65 73 75 6c 74 29 0a .........assigned.(cadr.result).
46760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 2d 6b 65 79 20 28 ....................object-key.(
46780 63 61 72 20 28 63 64 64 72 20 72 65 73 75 6c 74 29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 car.(cddr.result)))))...........
467a0 20 3b 3b 20 49 67 6e 6f 72 65 20 6c 69 74 65 72 61 6c 20 6f 62 6a 65 63 74 20 6b 65 79 73 2c 20 .;;.Ignore.literal.object.keys,.
467c0 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 72 65 61 6c 6c 79 20 76 61 72 69 61 62 6c 65 73 0a 20 which.are.not.really.variables..
467e0 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 62 6a 65 63 74 2d 6b 65 79 0a 20 20 20 20 .........(unless.object-key.....
46800 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 0a 20 20 20 ........(when.function-param....
46820 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20 3f 50 29 29 0a 0a ...........(setq.assigned.?P))..
46840 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 61 73 73 69 67 6e 65 64 ............(when.(null.assigned
46860 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 )...............(cond...........
46880 20 20 20 20 20 28 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 .....((js2-for-in-node-p.parent)
468a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20 .................(setq.assigned.
468c0 28 65 71 20 6e 6f 64 65 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74 (eq.node.(js2-for-in-node-iterat
468e0 6f 72 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.parent)).....................
46900 20 20 75 73 65 64 20 28 6e 6f 74 20 61 73 73 69 67 6e 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 ..used.(not.assigned))).........
46920 20 20 20 20 20 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 .......((js2-function-node-p.par
46940 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67 ent).................(setq.assig
46960 6e 65 64 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 64 ned.t.......................used
46980 20 28 6a 73 32 2d 77 72 61 70 70 65 72 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 70 61 72 65 6e 74 29 .(js2-wrapper-function-p.parent)
469a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 ))................((js2-export-b
469c0 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 inding-node-p.parent)...........
469e0 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 ......(if.(js2-import-clause-nod
46a00 65 2d 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29 29 0a 20 20 e-p.(js2-node-parent.parent))...
46a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63 6c 61 72 65 64 ..................(setq.declared
46a40 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 .t...........................ass
46a60 69 67 6e 65 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 igned.t)...................(setq
46a80 20 75 73 65 64 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d .used.t)))................((js2-
46aa0 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a namespace-import-node-p.parent).
46ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20 74 ................(setq.assigned.t
46ae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 64 20 6e 69 6c 29 .......................used.nil)
46b00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 )................((js2-class-nod
46b20 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 e-p.parent).................(set
46b40 71 20 64 65 63 6c 61 72 65 64 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 q.declared.t....................
46b60 20 20 20 61 73 73 69 67 6e 65 64 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...assigned.t))................(
46b80 61 73 73 69 67 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 assign-node.................(set
46ba0 71 20 61 73 73 69 67 6e 65 64 20 28 6d 65 6d 71 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 q.assigned.(memq.node...........
46bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
46be0 2d 63 6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 20 20 20 -collect-target-symbols.........
46c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ..............................(j
46c20 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 61 73 73 69 67 6e 2d 6e 6f 64 65 29 s2-assign-node-left.assign-node)
46c40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
46c60 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......nil))....................
46c80 20 20 20 75 73 65 64 20 28 6e 6f 74 20 61 73 73 69 67 6e 65 64 29 29 29 29 29 0a 0a 20 20 20 20 ...used.(not.assigned)))))......
46ca0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 63 6c 61 72 65 64 0a 20 20 20 20 20 20 20 20 20 ........(when.declared..........
46cc0 20 20 20 20 20 28 73 65 74 71 20 75 73 65 64 20 6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 20 20 20 .....(setq.used.nil))...........
46ce0 20 20 20 28 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d 75 70 64 61 74 65 2d 73 79 6d 62 6f 6c 20 6e 6f ...(js2--add-or-update-symbol.no
46d00 64 65 20 61 73 73 69 67 6e 65 64 20 75 73 65 64 20 76 61 72 73 29 29 29 29 29 29 29 0a 0a 28 64 de.assigned.used.vars)))))))..(d
46d20 65 66 75 6e 20 6a 73 32 2d 2d 63 6c 61 73 73 69 66 79 2d 76 61 72 69 61 62 6c 65 73 20 28 29 0a efun.js2--classify-variables.().
46d40 20 20 22 43 6f 6c 6c 65 63 74 20 61 6e 64 20 63 6c 61 73 73 69 66 79 20 76 61 72 69 61 62 6c 65 .."Collect.and.classify.variable
46d60 73 20 64 65 63 6c 61 72 65 64 20 6f 72 20 75 73 65 64 20 77 69 74 68 69 6e 20 6a 73 32 2d 6d 6f s.declared.or.used.within.js2-mo
46d80 64 65 2d 61 73 74 2e 0a 54 72 61 76 65 72 73 65 20 74 68 65 20 77 68 6f 6c 65 20 61 73 74 20 74 de-ast..Traverse.the.whole.ast.t
46da0 72 65 65 20 72 65 74 75 72 6e 69 6e 67 20 61 20 73 75 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 76 ree.returning.a.summary.of.the.v
46dc0 61 72 69 61 62 6c 65 73 0a 75 73 61 67 65 20 61 73 20 61 6e 20 68 61 73 68 2d 74 61 62 6c 65 2c ariables.usage.as.an.hash-table,
46de0 20 6b 65 79 65 64 20 62 79 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 79 .keyed.by.their.corresponding.sy
46e00 6d 62 6f 6c 20 74 61 62 6c 65 0a 65 6e 74 72 79 2e 0a 45 61 63 68 20 76 61 72 69 61 62 6c 65 20 mbol.table.entry..Each.variable.
46e20 69 73 20 64 65 73 63 72 69 62 65 64 20 62 79 20 61 20 74 75 70 6c 65 20 77 68 65 72 65 20 74 68 is.described.by.a.tuple.where.th
46e40 65 20 63 61 72 20 69 73 20 61 20 66 6c 61 67 0a 69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68 e.car.is.a.flag.indicating.wheth
46e60 65 72 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 68 61 73 20 62 65 65 6e 20 69 6e 69 74 69 61 6c er.the.variable.has.been.initial
46e80 69 7a 65 64 20 61 6e 64 20 74 68 65 20 63 64 72 0a 69 73 20 61 20 70 6f 73 73 69 62 6c 79 20 65 ized.and.the.cdr.is.a.possibly.e
46ea0 6d 70 74 79 20 6c 69 73 74 20 6f 66 20 6e 61 6d 65 20 6e 6f 64 65 73 20 77 68 65 72 65 20 69 74 mpty.list.of.name.nodes.where.it
46ec0 20 69 73 20 75 73 65 64 2e 20 45 78 74 65 72 6e 61 6c 0a 73 79 6d 62 6f 6c 73 2c 20 69 2e 65 2e .is.used..External.symbols,.i.e.
46ee0 20 74 68 6f 73 65 20 6e 6f 74 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 77 68 6f 6c 65 20 .those.not.present.in.the.whole.
46f00 73 63 6f 70 65 73 20 68 69 65 72 61 72 63 68 79 2c 0a 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a scopes.hierarchy,.are.ignored.".
46f20 20 20 28 6c 65 74 20 28 28 76 61 72 73 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a ..(let.((vars.(make-hash-table.:
46f40 74 65 73 74 20 23 27 65 71 20 3a 73 69 7a 65 20 31 30 30 29 29 29 0a 20 20 20 20 28 6a 73 32 2d test.#'eq.:size.100))).....(js2-
46f60 76 69 73 69 74 2d 61 73 74 0a 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 20 visit-ast......js2-mode-ast.....
46f80 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 20 65 6e 64 2d 70 29 0a 20 20 20 20 20 20 20 28 77 68 .(lambda.(node.end-p)........(wh
46fa0 65 6e 20 28 61 6e 64 20 28 6e 75 6c 6c 20 65 6e 64 2d 70 29 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e en.(and.(null.end-p).(js2-name-n
46fc0 6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 ode-p.node))..........(let.((par
46fe0 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 ent.(js2-node-parent.node)))....
47000 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 ........(when.parent............
47020 20 20 28 6a 73 32 2d 2d 63 6c 61 73 73 69 66 79 2d 76 61 72 69 61 62 6c 65 20 70 61 72 65 6e 74 ..(js2--classify-variable.parent
47040 20 6e 6f 64 65 20 76 61 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 74 29 29 0a 20 20 20 20 76 61 .node.vars))))........t)).....va
47060 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 67 65 74 2d 6e 61 6d 65 2d 6e 6f 64 65 20 rs))..(defun.js2--get-name-node.
47080 28 6e 6f 64 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 (node)...(cond....((js2-name-nod
470a0 65 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 65 29 0a 20 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f e-p.node).node)....((js2-functio
470c0 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e n-node-p.node).....(js2-function
470e0 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 6c 61 73 73 -node-name.node))....((js2-class
47100 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 -node-p.node).....(js2-class-nod
47120 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 e-name.node))....((js2-comp-loop
47140 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 -node-p.node).....(js2-comp-loop
47160 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e 6f 64 65 29 29 0a 20 20 20 28 74 20 6e 6f 64 65 -node-iterator.node))....(t.node
47180 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 73 65 )))..(defun.js2--highlight-unuse
471a0 64 2d 76 61 72 69 61 62 6c 65 20 28 73 79 6d 62 6f 6c 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 20 d-variable.(symbol.info)...(let.
471c0 28 28 6e 61 6d 65 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29 ((name.(js2-symbol-name.symbol))
471e0 0a 20 20 20 20 20 20 20 20 28 69 6e 69 74 65 64 20 28 63 61 72 20 69 6e 66 6f 29 29 0a 20 20 20 .........(inited.(car.info))....
47200 20 20 20 20 20 28 72 65 66 73 20 28 63 64 72 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 70 .....(refs.(cdr.info)).........p
47220 6f 73 20 6c 65 6e 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 69 6e 69 74 65 64 20 os.len).....(unless.(and.inited.
47240 72 65 66 73 29 0a 20 20 20 20 20 20 28 69 66 20 72 65 66 73 0a 20 20 20 20 20 20 20 20 20 20 28 refs).......(if.refs...........(
47260 64 6f 6c 69 73 74 20 28 72 65 66 20 72 65 66 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 dolist.(ref.refs).............(s
47280 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 72 65 66 29 29 0a etq.pos.(js2-node-abs-pos.ref)).
472a0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d ............(setq.len.(js2-name-
472c0 6e 6f 64 65 2d 6c 65 6e 20 72 65 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d node-len.ref)).............(js2-
472e0 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 75 6e 69 6e 69 74 69 61 6c 69 7a 65 report-warning."msg.uninitialize
47300 64 2e 76 61 72 69 61 62 6c 65 22 20 6e 61 6d 65 20 70 6f 73 20 6c 65 6e 0a 20 20 20 20 20 20 20 d.variable".name.pos.len........
47320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 77 61 .........................'js2-wa
47340 72 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 6a 73 32 2d 77 61 rning)).........(when.(or.js2-wa
47360 72 6e 2d 61 62 6f 75 74 2d 75 6e 75 73 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 75 6d 65 6e rn-about-unused-function-argumen
47380 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 69 6e ts...................(not.(eq.in
473a0 69 74 65 64 20 3f 50 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d ited.?P)))...........(let*.((sym
473c0 6e 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 61 73 74 2d 6e 6f 64 65 20 73 79 6d 62 6f 6c 29 29 0a n.(js2-symbol-ast-node.symbol)).
473e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 6e 20 28 6a 73 32 2d 2d 67 65 .................(namen.(js2--ge
47400 74 2d 6e 61 6d 65 2d 6e 6f 64 65 20 73 79 6d 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 t-name-node.symn))).............
47420 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 6f 70 2d 6c 65 76 65 6c 2d 64 65 63 6c (unless.(js2-node-top-level-decl
47440 2d 70 20 6e 61 6d 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f -p.namen)...............(setq.po
47460 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 61 6d 65 6e 29 29 0a 20 20 20 20 s.(js2-node-abs-pos.namen)).....
47480 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f ..........(setq.len.(js2-name-no
474a0 64 65 2d 6c 65 6e 20 6e 61 6d 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 de-len.namen))...............(js
474c0 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 75 6e 75 73 65 64 2e 76 61 72 2-report-warning."msg.unused.var
474e0 69 61 62 6c 65 22 20 6e 61 6d 65 20 70 6f 73 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 iable".name.pos.len.............
47500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 77 61 72 6e 69 ......................'js2-warni
47520 6e 67 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 ng))))))))..(defun.js2-highlight
47540 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65 73 20 28 29 0a 20 20 22 48 69 67 68 6c 69 67 68 -unused-variables.()..."Highligh
47560 74 20 75 6e 75 73 65 64 20 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 t.unused.variables."...(let.((va
47580 72 73 20 28 6a 73 32 2d 2d 63 6c 61 73 73 69 66 79 2d 76 61 72 69 61 62 6c 65 73 29 29 29 0a 20 rs.(js2--classify-variables)))..
475a0 20 20 20 28 6d 61 70 68 61 73 68 20 23 27 6a 73 32 2d 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 ...(maphash.#'js2--highlight-unu
475c0 73 65 64 2d 76 61 72 69 61 62 6c 65 20 76 61 72 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f sed-variable.vars)))..;;;###auto
475e0 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6a 73 32 2d 68 69 67 68 load.(define-minor-mode.js2-high
47600 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65 73 2d 6d 6f 64 65 0a 20 20 22 54 light-unused-variables-mode..."T
47620 6f 67 67 6c 65 20 68 69 67 68 6c 69 67 68 74 20 6f 66 20 75 6e 75 73 65 64 20 76 61 72 69 61 62 oggle.highlight.of.unused.variab
47640 6c 65 73 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 22 0a 20 20 28 69 66 20 6a 73 32 2d 68 69 les."...:lighter.""...(if.js2-hi
47660 67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65 73 2d 6d 6f 64 65 0a 20 20 ghlight-unused-variables-mode...
47680 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 ....(add-hook.'js2-post-parse-ca
476a0 6c 6c 62 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 68 69 llbacks.................#'js2-hi
476c0 67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65 73 20 6e 69 6c 20 74 29 0a ghlight-unused-variables.nil.t).
476e0 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 ....(remove-hook.'js2-post-parse
47700 2d 63 61 6c 6c 62 61 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 -callbacks..................#'js
47720 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65 73 20 74 29 29 2-highlight-unused-variables.t))
47740 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 64 64 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 )..(defun.js2-add-additional-ext
47760 65 72 6e 73 20 28 65 78 74 65 72 6e 73 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 61 64 64 69 74 erns.(externs)...(setq.js2-addit
47780 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 65 78 74 ional-externs.........(nconc.ext
477a0 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 61 64 64 69 74 69 6f 6e erns................js2-addition
477c0 61 6c 2d 65 78 74 65 72 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73 al-externs)))..(defun.js2-get-js
477e0 6c 69 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65 72 73 20 28 63 6f 6d 6d 65 6e lint-comment-identifiers.(commen
47800 74 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f t)...(js2-reparse)...(cl-loop.fo
47820 72 20 6e 6f 64 65 20 69 6e 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 r.node.in.(js2-ast-root-comments
47840 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 .js2-mode-ast)............when.(
47860 61 6e 64 20 28 65 71 20 27 62 6c 6f 63 6b 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 and.(eq.'block.(js2-comment-node
47880 2d 66 6f 72 6d 61 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -format.node))..................
478a0 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(save-excursion.............
478c0 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64 65 2d ...........(goto-char.(js2-node-
478e0 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 abs-pos.node))..................
47900 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74 20 22 2f 5c 5c 2a 20 ......(looking-at.(concat."/\\*.
47920 2a 22 20 63 6f 6d 6d 65 6e 74 20 22 5c 5c 28 3f 3a 20 5c 5c 7c 24 5c 5c 29 22 29 29 29 29 0a 20 *".comment."\\(?:.\\|$\\)"))))..
47940 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 ..........append.(js2-get-jslint
47960 2d 63 6f 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65 72 73 2d 69 6e 0a 20 20 20 20 20 20 20 20 -comment-identifiers-in.........
47980 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 20 20 20 20 ...........(match-end.0)........
479a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 6e 6f ............(js2-node-abs-end.no
479c0 64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 63 6f de))))..(defun.js2-get-jslint-co
479e0 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65 72 73 2d 69 6e 20 28 62 65 67 20 65 6e 64 29 0a 20 mment-identifiers-in.(beg.end)..
47a00 20 28 6c 65 74 20 28 72 65 73 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a .(let.(res).....(save-excursion.
47a20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 28 77 68 69 ......(goto-char.beg).......(whi
47a40 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6a 73 32 2d 6d 6f 64 65 2d 69 le.(re-search-forward.js2-mode-i
47a60 64 65 6e 74 69 66 69 65 72 2d 72 65 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 dentifier-re.end.t).........(let
47a80 20 28 28 6d 61 74 63 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 29 0a 20 20 20 20 .((match.(match-string.0))).....
47aa0 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 6d 61 74 63 68 20 27 28 22 74 ......(unless.(member.match.'("t
47ac0 72 75 65 22 20 22 66 61 6c 73 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 rue"."false")).............(push
47ae0 20 6d 61 74 63 68 20 72 65 73 29 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 .match.res))))).....(nreverse.re
47b00 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 67 6c s)))..(defun.js2-apply-jslint-gl
47b20 6f 62 61 6c 73 20 28 29 0a 20 20 28 6a 73 32 2d 61 64 64 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 obals.()...(js2-add-additional-e
47b40 78 74 65 72 6e 73 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 29 29 xterns.(js2-get-jslint-globals))
47b60 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 )..(defun.js2-get-jslint-globals
47b80 20 28 29 0a 20 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 69 64 .()...(js2-get-jslint-comment-id
47ba0 65 6e 74 69 66 69 65 72 73 20 22 67 6c 6f 62 61 6c 22 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 entifiers."global"))..(defun.js2
47bc0 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e -apply-jslint-declaration-extern
47be0 73 20 28 29 0a 20 20 28 6a 73 32 2d 61 64 64 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 s.()...(js2-add-additional-exter
47c00 6e 73 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 ns.(js2-get-jslint-declaration-e
47c20 78 74 65 72 6e 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6a 73 6c 69 6e 74 2d 64 65 xterns)))..(defvar.js2-jslint-de
47c40 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 0a 20 20 60 28 28 22 62 72 6f 77 73 65 72 22 claration-externs...`(("browser"
47c60 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 ...,(mapcar.'symbol-name........
47c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 41 75 64 69 6f 20 63 6c 65 61 72 ...................'(Audio.clear
47ca0 49 6e 74 65 72 76 61 6c 20 63 6c 65 61 72 54 69 6d 65 6f 75 74 20 64 6f 63 75 6d 65 6e 74 0a 20 Interval.clearTimeout.document..
47cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 65 6e 74 ...........................event
47ce0 20 68 69 73 74 6f 72 79 20 49 6d 61 67 65 20 6c 6f 63 61 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 .history.Image.location.name....
47d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 76 69 67 61 74 .........................navigat
47d20 6f 72 20 4f 70 74 69 6f 6e 20 73 63 72 65 65 6e 20 73 65 74 49 6e 74 65 72 76 61 6c 0a 20 20 20 or.Option.screen.setInterval....
47d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 54 69 6d 65 .........................setTime
47d60 6f 75 74 20 58 4d 4c 48 74 74 70 52 65 71 75 65 73 74 29 29 29 0a 20 20 20 20 28 22 6e 6f 64 65 out.XMLHttpRequest))).....("node
47d80 22 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 "...,(mapcar.'symbol-name.......
47da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 42 75 66 66 65 72 20 63 6c 65 61 72 49 .................'(Buffer.clearI
47dc0 6d 6d 65 64 69 61 74 65 20 63 6c 65 61 72 49 6e 74 65 72 76 61 6c 0a 20 20 20 20 20 20 20 20 20 mmediate.clearInterval..........
47de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 65 61 72 54 69 6d 65 6f 75 74 20 63 6f 6e ................clearTimeout.con
47e00 73 6f 6c 65 20 65 78 70 6f 72 74 73 20 67 6c 6f 62 61 6c 20 6d 6f 64 75 6c 65 0a 20 20 20 20 20 sole.exports.global.module......
47e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 63 65 73 73 20 71 75 65 72 ....................process.quer
47e40 79 73 74 72 69 6e 67 20 72 65 71 75 69 72 65 20 73 65 74 49 6d 6d 65 64 69 61 74 65 0a 20 20 20 ystring.require.setImmediate....
47e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 49 6e 74 65 72 76 61 ......................setInterva
47e80 6c 20 73 65 74 54 69 6d 65 6f 75 74 20 5f 5f 64 69 72 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 l.setTimeout.__dirname..........
47ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 5f 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 ................__filename)))...
47ec0 20 20 28 22 65 73 36 22 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65 ..("es6"...,(mapcar.'symbol-name
47ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 41 72 72 61 79 42 75 .......................'(ArrayBu
47f00 66 66 65 72 20 44 61 74 61 56 69 65 77 20 46 6c 6f 61 74 33 32 41 72 72 61 79 0a 20 20 20 20 20 ffer.DataView.Float32Array......
47f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6c 6f 61 74 36 34 41 72 72 61 79 20 ...................Float64Array.
47f40 49 6e 74 38 41 72 72 61 79 20 49 6e 74 31 36 41 72 72 61 79 20 49 6e 74 33 32 41 72 72 61 79 0a Int8Array.Int16Array.Int32Array.
47f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 6c 20 4d 61 70 ........................Intl.Map
47f80 20 50 72 6f 6d 69 73 65 20 50 72 6f 78 79 20 52 65 66 6c 65 63 74 20 53 65 74 20 53 79 6d 62 6f .Promise.Proxy.Reflect.Set.Symbo
47fa0 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d l.........................System
47fc0 20 55 69 6e 74 38 41 72 72 61 79 20 55 69 6e 74 38 43 6c 61 6d 70 65 64 41 72 72 61 79 0a 20 20 .Uint8Array.Uint8ClampedArray...
47fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 69 6e 74 31 36 41 72 72 61 ......................Uint16Arra
48000 79 20 55 69 6e 74 33 32 41 72 72 61 79 20 57 65 61 6b 4d 61 70 20 57 65 61 6b 53 65 74 29 29 29 y.Uint32Array.WeakMap.WeakSet)))
48020 0a 20 20 20 20 28 22 63 6f 75 63 68 22 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c .....("couch"...,(mapcar.'symbol
48040 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 -name.........................'(
48060 65 6d 69 74 20 67 65 74 52 6f 77 20 69 73 41 72 72 61 79 20 6c 6f 67 20 70 72 6f 76 69 64 65 73 emit.getRow.isArray.log.provides
48080 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 69 73 ...........................regis
480a0 74 65 72 54 79 70 65 20 72 65 71 75 69 72 65 20 73 65 6e 64 20 73 74 61 72 74 20 73 75 6d 0a 20 terType.require.send.start.sum..
480c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 4a 53 4f 4e 29 .........................toJSON)
480e0 29 29 0a 20 20 20 20 28 22 64 65 76 65 6c 22 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 )).....("devel"...,(mapcar.'symb
48100 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ol-name.........................
48120 27 28 61 6c 65 72 74 20 63 6f 6e 66 69 72 6d 20 63 6f 6e 73 6f 6c 65 20 44 65 62 75 67 20 6f 70 '(alert.confirm.console.Debug.op
48140 65 72 61 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 era.prompt......................
48160 20 20 20 20 20 57 53 48 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73 .....WSH)))))..(defun.js2-get-js
48180 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 28 29 0a 20 20 28 61 lint-declaration-externs.()...(a
481a0 70 70 6c 79 20 27 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c pply.'append..........(mapcar.(l
481c0 61 6d 62 64 61 20 28 69 64 65 6e 74 69 66 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ambda.(identifier)..............
481e0 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 ......(cdr.(assoc.identifier....
48200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d ............................js2-
48220 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 29 29 29 0a 20 20 jslint-declaration-externs)))...
48240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 63 ...............(js2-get-jslint-c
48260 6f 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65 72 73 20 22 6a 73 6c 69 6e 74 22 29 29 29 29 0a omment-identifiers."jslint")))).
48280 0a 3b 3b 3b 20 49 4d 65 6e 75 20 73 75 70 70 6f 72 74 0a 0a 3b 3b 20 57 65 20 63 75 72 72 65 6e .;;;.IMenu.support..;;.We.curren
482a0 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 20 69 6d 65 6e 75 2c 20 62 75 74 20 65 76 65 6e tly.only.support.imenu,.but.even
482c0 74 75 61 6c 6c 79 20 73 68 6f 75 6c 64 20 73 75 70 70 6f 72 74 20 73 70 65 65 64 62 61 72 20 61 tually.should.support.speedbar.a
482e0 6e 64 0a 3b 3b 20 70 6f 73 73 69 62 6c 79 20 6f 74 68 65 72 20 62 72 6f 77 73 69 6e 67 20 6d 65 nd.;;.possibly.other.browsing.me
48300 63 68 61 6e 69 73 6d 73 2e 0a 0a 3b 3b 20 54 68 65 20 62 61 73 69 63 20 73 74 72 61 74 65 67 79 chanisms...;;.The.basic.strategy
48320 20 69 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 66 75 6e 63 74 69 6f 6e 20 61 73 73 69 67 6e 6d .is.to.identify.function.assignm
48340 65 6e 74 20 74 61 72 67 65 74 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 3b 3b 20 60 66 6f 6f 2e ent.targets.of.the.form.;;.`foo.
48360 62 61 72 2e 62 61 7a 27 2c 20 63 6f 6e 76 65 72 74 20 74 68 65 6d 20 74 6f 20 28 6c 69 73 74 20 bar.baz',.convert.them.to.(list.
48380 66 6e 20 66 6f 6f 20 62 61 72 20 62 61 7a 20 3c 70 6f 73 69 74 69 6f 6e 3e 29 2c 20 61 6e 64 20 fn.foo.bar.baz.<position>),.and.
483a0 70 75 73 68 20 74 68 65 0a 3b 3b 20 6c 69 73 74 20 69 6e 74 6f 20 60 6a 73 32 2d 69 6d 65 6e 75 push.the.;;.list.into.`js2-imenu
483c0 2d 72 65 63 6f 72 64 65 72 27 2e 20 20 54 68 65 20 6c 69 73 74 73 20 61 72 65 20 6d 65 72 67 65 -recorder'...The.lists.are.merge
483e0 64 20 69 6e 74 6f 20 61 20 74 72 69 65 2d 6c 69 6b 65 20 74 72 65 65 0a 3b 3b 20 66 6f 72 20 69 d.into.a.trie-like.tree.;;.for.i
48400 6d 65 6e 75 20 61 66 74 65 72 20 70 61 72 73 69 6e 67 20 69 73 20 66 69 6e 69 73 68 65 64 2e 0a menu.after.parsing.is.finished..
48420 0a 3b 3b 20 41 20 60 66 6f 6f 2e 62 61 72 2e 62 61 7a 27 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 .;;.A.`foo.bar.baz'.assignment.t
48440 61 72 67 65 74 20 6d 61 79 20 62 65 20 65 78 70 72 65 73 73 65 64 20 69 6e 20 6d 61 6e 79 20 77 arget.may.be.expressed.in.many.w
48460 61 79 73 20 69 6e 0a 3b 3b 20 4a 61 76 61 53 63 72 69 70 74 2c 20 61 6e 64 20 74 68 65 20 67 65 ays.in.;;.JavaScript,.and.the.ge
48480 6e 65 72 61 6c 20 70 72 6f 62 6c 65 6d 20 69 73 20 75 6e 64 65 63 69 64 61 62 6c 65 2e 20 20 48 neral.problem.is.undecidable...H
484a0 6f 77 65 76 65 72 2c 20 73 65 76 65 72 61 6c 20 66 6f 72 6d 73 0a 3b 3b 20 61 72 65 20 72 65 61 owever,.several.forms.;;.are.rea
484c0 64 69 6c 79 20 72 65 63 6f 67 6e 69 7a 61 62 6c 65 20 61 74 20 70 61 72 73 65 2d 74 69 6d 65 3b dily.recognizable.at.parse-time;
484e0 20 74 68 65 20 66 6f 72 6d 73 20 77 65 20 61 74 74 65 6d 70 74 20 74 6f 20 72 65 63 6f 67 6e 69 .the.forms.we.attempt.to.recogni
48500 7a 65 0a 3b 3b 20 69 6e 63 6c 75 64 65 3a 0a 0a 3b 3b 20 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6f ze.;;.include:..;;..function.foo
48520 28 29 20 20 2d 2d 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 3b 3b 20 20 ()..--.function.declaration.;;..
48540 66 6f 6f 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 20 2d 2d 20 66 75 6e 63 74 69 6f 6e 20 65 78 foo.=.function()..--.function.ex
48560 70 72 65 73 73 69 6f 6e 20 61 73 73 69 67 6e 65 64 20 74 6f 20 76 61 72 69 61 62 6c 65 0a 3b 3b pression.assigned.to.variable.;;
48580 20 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 20 2d 2d 20 66 ..foo.bar.baz.=.function()..--.f
485a0 75 6e 63 74 69 6f 6e 20 65 78 70 72 20 61 73 73 69 67 6e 65 64 20 74 6f 20 6e 65 73 74 65 64 20 unction.expr.assigned.to.nested.
485c0 70 72 6f 70 65 72 74 79 2d 67 65 74 0a 3b 3b 20 20 66 6f 6f 20 3d 20 7b 62 61 72 3a 20 66 75 6e property-get.;;..foo.=.{bar:.fun
485e0 63 74 69 6f 6e 28 29 7d 20 20 2d 2d 20 66 75 6e 20 70 72 6f 70 20 69 6e 20 6f 62 6a 65 63 74 20 ction()}..--.fun.prop.in.object.
48600 6c 69 74 65 72 61 6c 20 61 73 73 69 67 6e 65 64 20 74 6f 20 76 61 72 0a 3b 3b 20 20 66 6f 6f 20 literal.assigned.to.var.;;..foo.
48620 3d 20 7b 62 61 72 3a 20 7b 62 61 7a 3a 20 66 75 6e 63 74 69 6f 6e 28 29 7d 7d 20 2d 2d 20 69 6e =.{bar:.{baz:.function()}}.--.in
48640 73 69 64 65 20 6e 65 73 74 65 64 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 0a 3b 3b 20 20 66 side.nested.object.literal.;;..f
48660 6f 6f 2e 62 61 72 20 3d 20 7b 62 61 7a 3a 20 66 75 6e 63 74 69 6f 6e 28 29 7d 7d 20 2d 2d 20 6f oo.bar.=.{baz:.function()}}.--.o
48680 62 6a 20 6c 69 74 20 61 73 73 69 67 6e 65 64 20 74 6f 20 6e 65 73 74 65 64 20 70 72 6f 70 20 67 bj.lit.assigned.to.nested.prop.g
486a0 65 74 0a 3b 3b 20 20 61 2e 62 20 3d 20 7b 63 3a 20 7b 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 7d et.;;..a.b.=.{c:.{d:.function()}
486c0 7d 20 2d 2d 20 6e 65 73 74 65 64 20 6f 62 6a 20 6c 69 74 20 61 73 73 69 67 6e 65 64 20 74 6f 20 }.--.nested.obj.lit.assigned.to.
486e0 6e 65 73 74 65 64 20 70 72 6f 70 20 67 65 74 0a 3b 3b 20 20 66 6f 6f 20 3d 20 7b 67 65 74 20 62 nested.prop.get.;;..foo.=.{get.b
48700 61 72 28 29 20 7b 2e 2e 2e 7d 7d 20 20 2d 2d 20 67 65 74 74 65 72 2f 73 65 74 74 65 72 20 69 6e ar().{...}}..--.getter/setter.in
48720 20 6f 62 6a 20 6c 69 74 65 72 61 6c 0a 3b 3b 20 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6f 28 29 20 .obj.literal.;;..function.foo().
48740 7b 66 75 6e 63 74 69 6f 6e 20 62 61 72 28 29 20 7b 2e 2e 2e 7d 7d 20 20 2d 2d 20 6e 65 73 74 65 {function.bar().{...}}..--.neste
48760 64 20 66 75 6e 63 74 69 6f 6e 0a 3b 3b 20 20 66 6f 6f 5b 27 61 27 5d 20 3d 20 66 75 6e 63 74 69 d.function.;;..foo['a'].=.functi
48780 6f 6e 28 29 20 20 2d 2d 20 66 75 6e 20 65 78 70 72 20 61 73 73 69 67 6e 65 64 20 74 6f 20 64 65 on()..--.fun.expr.assigned.to.de
487a0 74 65 72 6d 69 6e 69 73 74 69 63 20 65 6c 65 6d 65 6e 74 2d 67 65 74 0a 0a 3b 3b 20 54 68 69 73 terministic.element-get..;;.This
487c0 20 6c 69 73 74 20 62 6f 69 6c 73 20 64 6f 77 6e 20 74 6f 20 61 20 66 65 77 20 66 6f 72 6d 73 20 .list.boils.down.to.a.few.forms.
487e0 74 68 61 74 20 63 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 that.can.be.combined.recursively
48800 2e 0a 3b 3b 20 54 6f 70 2d 6c 65 76 65 6c 20 6e 61 6d 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 ..;;.Top-level.named.function.de
48820 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 63 6c 75 64 65 20 62 6f 74 68 20 74 68 65 20 6c 65 66 74 clarations.include.both.the.left
48840 2d 68 61 6e 64 20 28 6e 61 6d 65 29 0a 3b 3b 20 61 6e 64 20 74 68 65 20 72 69 67 68 74 2d 68 61 -hand.(name).;;.and.the.right-ha
48860 6e 64 20 28 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 29 20 65 78 70 72 65 73 73 69 6f 6e 73 20 nd.(function.value).expressions.
48880 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 64 75 63 65 20 61 6e 20 69 6d 65 6e 75 0a 3b 3b 20 65 6e needed.to.produce.an.imenu.;;.en
488a0 74 72 79 2e 20 20 54 68 65 20 6f 74 68 65 72 20 22 72 69 67 68 74 2d 68 61 6e 64 22 20 66 6f 72 try...The.other."right-hand".for
488c0 6d 73 20 77 65 20 6e 65 65 64 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 61 72 65 3a 0a 3b 3b 20 20 ms.we.need.to.look.for.are:.;;..
488e0 2d 20 66 75 6e 63 74 69 6f 6e 73 20 64 65 63 6c 61 72 65 64 20 61 73 20 70 72 6f 70 73 2f 67 65 -.functions.declared.as.props/ge
48900 74 74 65 72 73 2f 73 65 74 74 65 72 73 20 69 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 73 tters/setters.in.object.literals
48920 0a 3b 3b 20 20 2d 20 6e 65 73 74 65 64 20 6e 61 6d 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 .;;..-.nested.named.function.dec
48940 6c 61 72 61 74 69 6f 6e 73 0a 3b 3b 20 54 68 65 20 22 6c 65 66 74 2d 68 61 6e 64 22 20 65 78 70 larations.;;.The."left-hand".exp
48960 72 65 73 73 69 6f 6e 73 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 61 ressions.that.functions.can.be.a
48980 73 73 69 67 6e 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 3a 0a 3b 3b 20 20 2d 20 6c 6f 63 61 6c 2f ssigned.to.include:.;;..-.local/
489a0 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 0a 3b 3b 20 20 2d 20 6e 65 73 74 65 64 20 70 72 global.variables.;;..-.nested.pr
489c0 6f 70 65 72 74 79 2d 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6c 69 6b 65 20 61 2e 62 2e operty-get.expressions.like.a.b.
489e0 63 2e 64 0a 3b 3b 20 20 2d 20 65 6c 65 6d 65 6e 74 20 67 65 74 73 20 6c 69 6b 65 20 66 6f 6f 5b c.d.;;..-.element.gets.like.foo[
48a00 31 30 5d 20 6f 72 20 66 6f 6f 5b 27 62 61 72 27 5d 20 77 68 65 72 65 20 74 68 65 20 69 6e 64 65 10].or.foo['bar'].where.the.inde
48a20 78 0a 3b 3b 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e 20 62 65 20 74 72 69 76 69 61 x.;;....expression.can.be.trivia
48a40 6c 6c 79 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65 lly.converted.to.a.property.name
48a60 2e 20 20 54 68 65 79 0a 3b 3b 20 20 20 20 65 66 66 65 63 74 69 76 65 6c 79 20 74 68 65 6e 20 62 ...They.;;....effectively.then.b
48a80 65 63 6f 6d 65 20 70 72 6f 70 65 72 74 79 20 67 65 74 73 2e 0a 0a 3b 3b 20 41 6c 6c 20 74 68 65 ecome.property.gets...;;.All.the
48aa0 20 64 69 66 66 65 72 65 6e 74 20 64 65 66 69 6e 69 74 69 6f 6e 20 74 79 70 65 73 20 61 72 65 20 .different.definition.types.are.
48ac0 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 64 20 69 6e 74 6f 20 74 68 65 20 66 6f 72 6d 0a 3b 3b 20 66 canonicalized.into.the.form.;;.f
48ae0 6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 70 6f 73 69 74 69 6f 6e 2d 6f 66 2d 66 75 6e 63 74 69 6f oo.bar.baz.=.position-of-functio
48b00 6e 2d 6b 65 79 77 6f 72 64 0a 0a 3b 3b 20 57 65 20 6e 65 65 64 20 74 6f 20 62 75 69 6c 64 20 61 n-keyword..;;.We.need.to.build.a
48b20 20 74 72 69 65 2d 6c 69 6b 65 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 20 .trie-like.structure.for.imenu..
48b40 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 0a 3b 3b 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 .As.an.example,.;;.consider.the.
48b60 66 6f 6c 6c 6f 77 69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20 63 6f 64 65 3a 0a 0a 3b 3b 20 61 following.JavaScript.code:..;;.a
48b80 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 20 2f 2f 20 66 75 6e 63 74 69 6f 6e .=.function().{...}..//.function
48ba0 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 35 0a 3b 3b 20 62 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 .at.position.5.;;.b.=.function()
48bc0 20 7b 2e 2e 2e 7d 20 20 2f 2f 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 .{...}..//.function.at.position.
48be0 32 35 0a 3b 3b 20 66 6f 6f 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 2f 2f 20 25.;;.foo.=.function().{...}.//.
48c00 66 75 6e 63 74 69 6f 6e 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 31 30 30 0a 3b 3b 20 66 6f 6f 2e function.at.position.100.;;.foo.
48c20 62 61 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 2f 2f 20 66 75 6e 63 74 69 bar.=.function().{...}.//.functi
48c40 6f 6e 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 32 30 30 0a 3b 3b 20 66 6f 6f 2e 62 61 72 2e 62 61 on.at.position.200.;;.foo.bar.ba
48c60 7a 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 2f 2f 20 66 75 6e 63 74 69 6f 6e z.=.function().{...}.//.function
48c80 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 33 30 30 0a 3b 3b 20 66 6f 6f 2e 62 61 72 2e 7a 61 62 20 .at.position.300.;;.foo.bar.zab.
48ca0 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 2f 2f 20 66 75 6e 63 74 69 6f 6e 20 61 =.function().{...}.//.function.a
48cc0 74 20 70 6f 73 69 74 69 6f 6e 20 34 30 30 0a 0a 3b 3b 20 44 75 72 69 6e 67 20 70 61 72 73 69 6e t.position.400..;;.During.parsin
48ce0 67 20 77 65 20 61 63 63 75 6d 75 6c 61 74 65 20 61 6e 20 65 6e 74 72 79 20 66 6f 72 20 65 61 63 g.we.accumulate.an.entry.for.eac
48d00 68 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 0a 3b 3b 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 h.definition.in.;;.the.variable.
48d20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 27 2c 20 6c 69 6b 65 20 73 6f 3a 0a 0a `js2-imenu-recorder',.like.so:..
48d40 3b 3b 20 27 28 28 66 6e 20 61 20 35 29 0a 3b 3b 20 20 20 28 66 6e 20 62 20 32 35 29 0a 3b 3b 20 ;;.'((fn.a.5).;;...(fn.b.25).;;.
48d60 20 20 28 66 6e 20 66 6f 6f 20 31 30 30 29 0a 3b 3b 20 20 20 28 66 6e 20 66 6f 6f 20 62 61 72 20 ..(fn.foo.100).;;...(fn.foo.bar.
48d80 32 30 30 29 0a 3b 3b 20 20 20 28 66 6e 20 66 6f 6f 20 62 61 72 20 62 61 7a 20 33 30 30 29 0a 3b 200).;;...(fn.foo.bar.baz.300).;
48da0 3b 20 20 20 28 66 6e 20 66 6f 6f 20 62 61 72 20 7a 61 62 20 34 30 30 29 29 0a 0a 3b 3b 20 57 68 ;...(fn.foo.bar.zab.400))..;;.Wh
48dc0 65 72 65 20 27 66 6e 27 20 69 73 20 74 68 65 20 72 65 73 70 65 63 74 69 76 65 20 66 75 6e 63 74 ere.'fn'.is.the.respective.funct
48de0 69 6f 6e 20 6e 6f 64 65 2e 0a 3b 3b 20 41 66 74 65 72 20 70 61 72 73 69 6e 67 20 74 68 65 73 65 ion.node..;;.After.parsing.these
48e00 20 65 6e 74 72 69 65 73 20 61 72 65 20 6d 65 72 67 65 64 20 69 6e 74 6f 20 74 68 69 73 20 61 6c .entries.are.merged.into.this.al
48e20 69 73 74 2d 74 72 69 65 3a 0a 0a 3b 3b 20 27 28 28 61 20 2e 20 31 29 0a 3b 3b 20 20 20 28 62 20 ist-trie:..;;.'((a...1).;;...(b.
48e40 2e 20 32 29 0a 3b 3b 20 20 20 28 66 6f 6f 20 28 3c 64 65 66 69 6e 69 74 69 6f 6e 3e 20 2e 20 33 ..2).;;...(foo.(<definition>...3
48e60 29 0a 3b 3b 20 20 20 20 20 20 20 20 28 62 61 72 20 28 3c 64 65 66 69 6e 69 74 69 6f 6e 3e 20 2e ).;;........(bar.(<definition>..
48e80 20 36 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 7a 20 2e 20 31 30 30 29 0a 3b .6).;;.............(baz...100).;
48ea0 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 61 62 20 2e 20 32 30 30 29 29 29 29 0a 0a 3b 3b ;.............(zab...200))))..;;
48ec0 20 4e 6f 74 65 20 74 68 65 20 77 61 63 6b 79 20 6e 65 65 64 20 66 6f 72 20 61 20 3c 64 65 66 69 .Note.the.wacky.need.for.a.<defi
48ee0 6e 69 74 69 6f 6e 3e 20 6e 61 6d 65 2e 20 20 54 68 65 20 74 6f 6b 65 6e 20 63 61 6e 20 62 65 20 nition>.name...The.token.can.be.
48f00 61 6e 79 74 68 69 6e 67 0a 3b 3b 20 74 68 61 74 20 69 73 6e 27 74 20 61 20 76 61 6c 69 64 20 4a anything.;;.that.isn't.a.valid.J
48f20 61 76 61 53 63 72 69 70 74 20 69 64 65 6e 74 69 66 69 65 72 2c 20 62 65 63 61 75 73 65 20 79 6f avaScript.identifier,.because.yo
48f40 75 20 6d 69 67 68 74 20 6d 61 6b 65 20 66 6f 6f 0a 3b 3b 20 61 20 66 75 6e 63 74 69 6f 6e 20 61 u.might.make.foo.;;.a.function.a
48f60 6e 64 20 74 68 65 6e 20 73 74 61 72 74 20 73 65 74 74 69 6e 67 20 70 72 6f 70 65 72 74 69 65 73 nd.then.start.setting.properties
48f80 20 6f 6e 20 69 74 20 74 68 61 74 20 61 72 65 20 61 6c 73 6f 20 66 75 6e 63 74 69 6f 6e 73 2e 0a .on.it.that.are.also.functions..
48fa0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6e 6f 64 65 .(defun.js2-prop-node-name.(node
48fc0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 6e 6f 64 65 20 74 )..."Return.the.name.of.a.node.t
48fe0 68 61 74 20 6d 61 79 20 62 65 20 61 20 70 72 6f 70 65 72 74 79 2d 67 65 74 2f 70 72 6f 70 65 72 hat.may.be.a.property-get/proper
49000 74 79 2d 6e 61 6d 65 2e 0a 49 66 20 4e 4f 44 45 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 ty-name..If.NODE.is.not.a.valid.
49020 6e 61 6d 65 2d 6e 6f 64 65 2c 20 73 74 72 69 6e 67 2d 6e 6f 64 65 20 6f 72 20 69 6e 74 65 67 72 name-node,.string-node.or.integr
49040 61 6c 20 6e 75 6d 62 65 72 2d 6e 6f 64 65 2c 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 20 4f 74 al.number-node,.returns.nil...Ot
49060 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 74 72 69 6e 67 20 6e 61 6d 65 2f herwise.returns.the.string.name/
49080 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 value.of.the.node."...(cond....(
490a0 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d (js2-name-node-p.node).....(js2-
490c0 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 73 name-node-name.node))....((js2-s
490e0 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 73 74 72 69 tring-node-p.node).....(js2-stri
49100 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 61 6e 64 20 28 6a ng-node-value.node))....((and.(j
49120 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 s2-number-node-p.node)..........
49140 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 5b 30 2d 39 5d 2b 24 22 20 28 6a 73 32 2d 6e 75 (string-match."^[0-9]+$".(js2-nu
49160 6d 62 65 72 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32 mber-node-value.node))).....(js2
49180 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 65 -number-node-value.node))....((e
491a0 71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f 64 65 29 20 6a 73 32 2d 54 48 49 53 29 q.(js2-node-type.node).js2-THIS)
491c0 0a 20 20 20 20 22 74 68 69 73 22 29 0a 20 20 20 28 28 65 71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 ....."this")....((eq.(js2-node-t
491e0 79 70 65 20 6e 6f 64 65 29 20 6a 73 32 2d 53 55 50 45 52 29 0a 20 20 20 20 22 73 75 70 65 72 22 ype.node).js2-SUPER)....."super"
49200 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 71 6e 61 6d 65 2d 63 6f 6d 70 6f )))..(defun.js2-node-qname-compo
49220 6e 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f nent.(node)..."Return.the.name.o
49240 66 20 74 68 69 73 20 6e 6f 64 65 2c 20 69 66 20 69 74 20 63 6f 6e 74 72 69 62 75 74 65 73 20 74 f.this.node,.if.it.contributes.t
49260 6f 20 61 20 71 6e 61 6d 65 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 74 68 65 20 6e 6f o.a.qname..Returns.nil.if.the.no
49280 64 65 20 64 6f 65 73 6e 27 74 20 63 6f 6e 74 72 69 62 75 74 65 2e 22 0a 20 20 28 63 6f 70 79 2d de.doesn't.contribute."...(copy-
492a0 73 65 71 75 65 6e 63 65 0a 20 20 20 28 6f 72 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e sequence....(or.(js2-prop-node-n
492c0 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 ame.node)........(cond.........(
492e0 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a (and.(js2-function-node-p.node).
49300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 ..............(js2-function-node
49320 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d -name.node))..........(js2-name-
49340 6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d node-name.(js2-function-node-nam
49360 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 63 6f 6d 70 75 74 65 64 e.node))).........((js2-computed
49380 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 -prop-name-node-p.node).........
493a0 20 22 5b 63 6f 6d 70 75 74 65 64 5d 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 ."[computed]")))))..(defun.js2-r
493c0 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 28 66 6e 2d 6e 6f 64 65 20 71 6e 61 6d 65 ecord-imenu-entry.(fn-node.qname
493e0 20 70 6f 73 29 0a 20 20 22 41 64 64 20 61 6e 20 65 6e 74 72 79 20 74 6f 20 60 6a 73 32 2d 69 6d .pos)..."Add.an.entry.to.`js2-im
49400 65 6e 75 2d 72 65 63 6f 72 64 65 72 27 2e 0a 46 4e 2d 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65 enu-recorder'..FN-NODE.should.be
49420 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 74 65 6d 27 73 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 .the.current.item's.function.nod
49440 65 2e 0a 0a 41 73 73 6f 63 69 61 74 65 20 46 4e 2d 4e 4f 44 45 20 77 69 74 68 20 69 74 73 20 51 e...Associate.FN-NODE.with.its.Q
49460 4e 41 4d 45 20 66 6f 72 20 6c 61 74 65 72 20 6c 6f 6f 6b 75 70 2e 0a 54 68 69 73 20 69 73 20 75 NAME.for.later.lookup..This.is.u
49480 73 65 64 20 69 6e 20 70 6f 73 74 70 72 6f 63 65 73 73 69 6e 67 20 74 68 65 20 63 68 61 69 6e 20 sed.in.postprocessing.the.chain.
494a0 6c 69 73 74 2e 20 20 46 6f 72 20 65 61 63 68 20 63 68 61 69 6e 2c 20 77 65 20 66 69 6e 64 0a 74 list...For.each.chain,.we.find.t
494c0 68 65 20 70 61 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 2c 20 6c 6f 6f 6b 20 75 70 20 69 74 73 20 he.parent.function,.look.up.its.
494e0 71 6e 61 6d 65 2c 20 74 68 65 6e 20 70 72 65 70 65 6e 64 20 61 20 63 6f 70 79 20 6f 66 20 69 74 qname,.then.prepend.a.copy.of.it
49500 20 74 6f 20 74 68 65 20 63 68 61 69 6e 2e 22 0a 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 66 6e .to.the.chain."...(push.(cons.fn
49520 2d 6e 6f 64 65 20 28 61 70 70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 70 6f 73 29 29 29 -node.(append.qname.(list.pos)))
49540 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 29 0a 20 20 28 75 6e 6c 65 73 73 20 6a .js2-imenu-recorder)...(unless.j
49560 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 0a 20 20 20 20 28 73 65 74 71 20 s2-imenu-function-map.....(setq.
49580 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 28 6d 61 6b 65 2d 68 61 73 js2-imenu-function-map.(make-has
495a0 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 29 29 29 0a 20 20 28 70 75 74 68 61 73 68 20 h-table.:test.'eq)))...(puthash.
495c0 66 6e 2d 6e 6f 64 65 20 71 6e 61 6d 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e fn-node.qname.js2-imenu-function
495e0 2d 6d 61 70 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d -map))..(defun.js2-record-imenu-
49600 66 75 6e 63 74 69 6f 6e 73 20 28 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 76 61 72 29 0a 20 functions.(node.&optional.var)..
49620 20 22 52 65 63 6f 72 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f ."Record.function.definitions.fo
49640 72 20 69 6d 65 6e 75 2e 0a 4e 4f 44 45 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 r.imenu..NODE.is.a.function.node
49660 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 2e 0a 56 41 52 2c 20 69 66 20 6e .or.an.object.literal..VAR,.if.n
49680 6f 6e 2d 6e 69 6c 2c 20 69 73 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 61 74 20 4e on-nil,.is.the.expression.that.N
496a0 4f 44 45 20 69 73 20 62 65 69 6e 67 20 61 73 73 69 67 6e 65 64 20 74 6f 2e 0a 57 68 65 6e 20 70 ODE.is.being.assigned.to..When.p
496c0 61 73 73 65 64 20 61 72 67 75 6d 65 6e 74 73 20 6f 66 20 77 72 6f 6e 67 20 74 79 70 65 2c 20 64 assed.arguments.of.wrong.type,.d
496e0 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d oes.nothing."...(when.js2-parse-
49700 69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 28 6c 65 74 20 28 28 66 75 6e 2d 70 20 28 6a 73 32 2d 66 ide-mode.....(let.((fun-p.(js2-f
49720 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 unction-node-p.node))...........
49740 71 6e 61 6d 65 20 66 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 qname.fname-node).......(cond...
49760 20 20 20 20 20 3b 3b 20 6e 6f 6e 2d 61 6e 6f 6e 79 6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 64 .....;;.non-anonymous.function.d
49780 65 63 6c 61 72 61 74 69 6f 6e 3f 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 66 75 6e 2d 70 0a 20 eclaration?........((and.fun-p..
497a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 ............(not.var)...........
497c0 20 20 20 28 73 65 74 71 20 66 6e 61 6d 65 2d 6e 6f 64 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f ...(setq.fname-node.(js2-functio
497e0 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 n-node-name.node))).........(js2
49800 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 6e 6f 64 65 20 28 6c 69 73 74 20 66 -record-imenu-entry.node.(list.f
49820 6e 61 6d 65 2d 6e 6f 64 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 29 name-node).(js2-node-pos.node)))
49840 0a 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 72 65 6d 61 69 6e 69 6e 67 20 66 6f 72 6d 73 2c 20 ........;;.for.remaining.forms,.
49860 63 6f 6d 70 75 74 65 20 6c 65 66 74 2d 73 69 64 65 20 74 72 65 65 20 62 72 61 6e 63 68 20 66 69 compute.left-side.tree.branch.fi
49880 72 73 74 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 76 61 72 20 28 73 65 74 71 20 71 6e 61 6d 65 rst........((and.var.(setq.qname
498a0 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 76 61 .(js2-compute-nested-prop-get.va
498c0 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 r))).........(cond..........;;.f
498e0 6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 oo.bar.baz.=.function..........(
49900 66 75 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e fun-p...........(js2-record-imen
49920 75 2d 65 6e 74 72 79 20 6e 6f 64 65 20 71 6e 61 6d 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 u-entry.node.qname.(js2-node-pos
49940 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f 2e 62 61 72 2e 62 61 7a .node)))..........;;.foo.bar.baz
49960 20 3d 20 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 6f .=.object-literal..........;;.lo
49980 6f 6b 20 66 6f 72 20 6e 65 73 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 3a 20 20 7b 61 3a 20 7b 62 ok.for.nested.functions:..{a:.{b
499a0 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 7d 7d 0a 20 20 20 20 20 20 20 20 20 28 :.function().{...}.}}..........(
499c0 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 (js2-object-node-p.node)........
499e0 20 20 20 3b 3b 20 4e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 20 68 65 72 65 20 69 73 20 73 74 69 6c ...;;.Node.position.here.is.stil
49a00 6c 20 61 62 73 6f 6c 75 74 65 2c 20 73 69 6e 63 65 20 74 68 65 20 70 61 72 73 65 72 0a 20 20 20 l.absolute,.since.the.parser....
49a20 20 20 20 20 20 20 20 3b 3b 20 70 61 73 73 65 73 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 .......;;.passes.the.assignment.
49a40 74 61 72 67 65 74 20 61 6e 64 20 76 61 6c 75 65 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 20 target.and.value.expressions....
49a60 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 75 73 20 62 65 66 6f 72 65 20 74 68 65 79 20 61 72 65 20 .......;;.to.us.before.they.are.
49a80 61 64 64 65 64 20 61 73 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 74 68 65 20 61 73 73 69 67 6e 6d added.as.children.of.the.assignm
49aa0 65 6e 74 20 6e 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d ent.node............(js2-record-
49ac0 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 6e 6f 64 65 20 71 6e 61 6d 65 20 28 6a 73 32 2d 6e object-literal.node.qname.(js2-n
49ae0 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 ode-pos.node)))))))))..(defun.js
49b00 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 28 6e 6f 64 65 29 2-compute-nested-prop-get.(node)
49b20 0a 20 20 22 49 66 20 4e 4f 44 45 20 69 73 20 6f 66 20 66 6f 72 6d 20 66 6f 6f 2e 62 61 72 2c 20 ..."If.NODE.is.of.form.foo.bar,.
49b40 66 6f 6f 5b 5c 5c 3d 27 62 61 72 5c 5c 3d 27 5d 2c 20 6f 72 20 61 6e 79 20 6e 65 73 74 65 64 20 foo[\\='bar\\='],.or.any.nested.
49b60 63 6f 6d 62 69 6e 61 74 69 6f 6e 2c 20 72 65 74 75 72 6e 0a 63 6f 6d 70 6f 6e 65 6e 74 20 6e 6f combination,.return.component.no
49b80 64 65 73 20 61 73 20 61 20 6c 69 73 74 2e 20 20 4f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e des.as.a.list...Otherwise.return
49ba0 20 6e 69 6c 2e 20 20 45 6c 65 6d 65 6e 74 2d 67 65 74 73 20 61 72 65 20 74 72 65 61 74 65 64 0a .nil...Element-gets.are.treated.
49bc0 61 73 20 70 72 6f 70 65 72 74 79 2d 67 65 74 73 20 69 66 20 74 68 65 20 69 6e 64 65 78 20 65 78 as.property-gets.if.the.index.ex
49be0 70 72 65 73 73 69 6f 6e 20 69 73 20 61 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 20 70 6f 73 69 74 pression.is.a.string,.or.a.posit
49c00 69 76 65 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 6c 65 66 74 20 72 69 67 68 74 ive.integer."...(let.(left.right
49c20 20 68 65 61 64 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d .head).....(cond......((or.(js2-
49c40 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 name-node-p.node)...........(js2
49c60 2d 74 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 -this-or-super-node-p.node))....
49c80 20 20 20 28 6c 69 73 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 3b 3b 20 66 6f 6f 2e 62 61 72 2e ...(list.node))......;;.foo.bar.
49ca0 62 61 7a 20 69 73 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 61 73 20 28 66 6f 6f 2e 62 61 72 baz.is.parenthesized.as.(foo.bar
49cc0 29 2e 62 61 7a 20 3d 3e 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 20 69 73 20 61 20 6c 65 61 66 ).baz.=>.right.operand.is.a.leaf
49ce0 0a 20 20 20 20 20 28 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 ......((js2-prop-get-node-p.node
49d00 29 20 20 20 20 20 20 20 20 3b 20 66 6f 6f 2e 62 61 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c )........;.foo.bar.......(setq.l
49d20 65 66 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 eft.(js2-prop-get-node-left.node
49d40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 ).............right.(js2-prop-ge
49d60 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 t-node-right.node)).......(if.(s
49d80 65 74 71 20 68 65 61 64 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f etq.head.(js2-compute-nested-pro
49da0 70 2d 67 65 74 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 68 65 p-get.left))...........(nconc.he
49dc0 61 64 20 28 6c 69 73 74 20 72 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 65 6c ad.(list.right))))......((js2-el
49de0 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 20 20 20 20 20 20 20 20 3b 20 66 6f 6f em-get-node-p.node)........;.foo
49e00 5b 27 62 61 72 27 5d 20 6f 72 20 66 6f 6f 5b 31 30 31 5d 0a 20 20 20 20 20 20 28 73 65 74 71 20 ['bar'].or.foo[101].......(setq.
49e20 6c 65 66 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e left.(js2-elem-get-node-target.n
49e40 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 20 28 6a 73 32 2d 65 6c 65 6d ode).............right.(js2-elem
49e60 2d 67 65 74 2d 6e 6f 64 65 2d 65 6c 65 6d 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 -get-node-element.node)).......(
49e80 69 66 20 28 6f 72 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29 if.(or.(js2-string-node-p.right)
49ea0 20 20 20 20 20 20 3b 20 5b 27 62 61 72 27 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 ......;.['bar']...............(a
49ec0 6e 64 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29 20 3b 20 5b nd.(js2-number-node-p.right).;.[
49ee0 31 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 10]....................(string-m
49f00 61 74 63 68 20 22 5e 5b 30 2d 39 5d 2b 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch."^[0-9]+$".................
49f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 .................(js2-number-nod
49f40 65 2d 76 61 6c 75 65 20 72 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 e-value.right))))...........(if.
49f60 28 73 65 74 71 20 68 65 61 64 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 (setq.head.(js2-compute-nested-p
49f80 72 6f 70 2d 67 65 74 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 rop-get.left))...............(nc
49fa0 6f 6e 63 20 68 65 61 64 20 28 6c 69 73 74 20 72 69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 28 64 onc.head.(list.right))))))))..(d
49fc0 65 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 28 efun.js2-record-object-literal.(
49fe0 6e 6f 64 65 20 71 6e 61 6d 65 20 70 6f 73 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 70 node.qname.pos)..."Recursively.p
4a000 72 6f 63 65 73 73 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20 6c 6f 6f 6b 69 6e 67 rocess.an.object.literal.looking
4a020 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 4e 4f 44 45 20 69 73 20 61 6e 20 6f 62 6a 65 63 .for.functions..NODE.is.an.objec
4a040 74 20 6c 69 74 65 72 61 6c 20 74 68 61 74 20 69 73 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64 t.literal.that.is.the.right-hand
4a060 20 63 68 69 6c 64 20 6f 66 20 61 6e 20 61 73 73 69 67 6e 6d 65 6e 74 0a 65 78 70 72 65 73 73 69 .child.of.an.assignment.expressi
4a080 6f 6e 2e 20 20 51 4e 41 4d 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 20 72 65 on...QNAME.is.a.list.of.nodes.re
4a0a0 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 61 72 67 65 74 presenting.the.assignment.target
4a0c0 2c 0a 65 2e 67 2e 20 66 6f 72 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 7b 2e 2e 2e 7d 2c 20 ,.e.g..for.foo.bar.baz.=.{...},.
4a0e0 51 4e 41 4d 45 20 69 73 20 28 66 6f 6f 2d 6e 6f 64 65 20 62 61 72 2d 6e 6f 64 65 20 62 61 7a 2d QNAME.is.(foo-node.bar-node.baz-
4a100 6e 6f 64 65 29 2e 0a 50 4f 53 20 69 73 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74 node)..POS.is.the.absolute.posit
4a120 69 6f 6e 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e 0a 57 65 20 64 6f 20 61 20 64 65 70 74 68 2d 66 ion.of.the.node..We.do.a.depth-f
4a140 69 72 73 74 20 74 72 61 76 65 72 73 61 6c 20 6f 66 20 4e 4f 44 45 2e 20 20 46 6f 72 20 61 6e 79 irst.traversal.of.NODE...For.any
4a160 20 66 75 6e 63 74 69 6f 6e 73 20 77 65 20 66 69 6e 64 2c 0a 77 65 20 61 70 70 65 6e 64 20 74 68 .functions.we.find,.we.append.th
4a180 65 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65 20 74 6f 20 51 4e 41 4d 45 2c 20 74 68 65 6e 20 63 e.property.name.to.QNAME,.then.c
4a1a0 61 6c 6c 20 60 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 27 2e 22 0a 20 all.`js2-record-imenu-entry'."..
4a1c0 20 28 6c 65 74 20 28 72 69 67 68 74 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a 73 .(let.(right).....(dolist.(e.(js
4a1e0 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 29 20 20 3b 20 65 20 2-object-node-elems.node))..;.e.
4a200 69 73 20 61 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 27 0a 20 20 20 20 is.a.`js2-object-prop-node'.....
4a220 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 65 29 0a 20 20 20 ..(when.(js2-infix-node-p.e)....
4a240 20 20 20 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 .....(let.((left.(js2-infix-node
4a260 2d 6c 65 66 74 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 65 6d 65 -left.e))...............;;.Eleme
4a280 6e 74 20 70 6f 73 69 74 69 6f 6e 73 20 61 72 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 nt.positions.are.relative.to.the
4a2a0 20 70 61 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .parent.position................
4a2c0 28 70 6f 73 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 65 29 29 29 29 0a (pos.(+.pos.(js2-node-pos.e)))).
4a2e0 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f ..........(cond............;;.fo
4a300 6f 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 0a 20 20 20 20 20 20 20 20 20 20 20 28 o:.function().{...}............(
4a320 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 28 73 65 74 71 20 72 69 67 68 74 (js2-function-node-p.(setq.right
4a340 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 29 29 29 0a 20 20 20 20 .(js2-infix-node-right.e))).....
4a360 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d ........(when.(js2-prop-node-nam
4a380 65 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 73 20 61 20 70 6f e.left)...............;;.As.a.po
4a3a0 6c 69 63 79 20 64 65 63 69 73 69 6f 6e 2c 20 77 65 20 72 65 63 6f 72 64 20 74 68 65 20 70 6f 73 licy.decision,.we.record.the.pos
4a3c0 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 2c 0a 20 20 20 20 20 20 20 20 20 ition.of.the.property,..........
4a3e0 20 20 20 20 20 3b 3b 20 6e 6f 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 .....;;.not.the.position.of.the.
4a400 60 66 75 6e 63 74 69 6f 6e 27 20 6b 65 79 77 6f 72 64 2c 20 73 69 6e 63 65 20 74 68 65 20 70 72 `function'.keyword,.since.the.pr
4a420 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 65 66 66 65 63 operty...............;;.is.effec
4a440 74 69 76 65 6c 79 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e tively.the.name.of.the.function.
4a460 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 ...............(js2-record-imenu
4a480 2d 65 6e 74 72 79 20 72 69 67 68 74 20 28 61 70 70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 -entry.right.(append.qname.(list
4a4a0 20 6c 65 66 74 29 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f .left)).pos)))............;;.foo
4a4c0 3a 20 7b 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 7d 20 2d 2d 20 61 64 64 20 66 6f 6f 20 74 6f :.{object-literal}.--.add.foo.to
4a4e0 20 71 6e 61 6d 65 2c 20 6f 66 66 73 65 74 20 70 6f 73 69 74 69 6f 6e 2c 20 61 6e 64 20 72 65 63 .qname,.offset.position,.and.rec
4a500 75 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 urse............((js2-object-nod
4a520 65 2d 70 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f e-p.right).............(js2-reco
4a540 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 rd-object-literal.right.........
4a560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
4a580 61 70 70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f append.qname.(list.(js2-infix-no
4a5a0 64 65 2d 6c 65 66 74 20 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-left.e)))....................
4a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d ....................(+.pos.(js2-
4a5e0 6e 6f 64 65 2d 70 6f 73 20 72 69 67 68 74 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e node-pos.right))))))))))..(defun
4a600 20 6a 73 32 2d 6e 6f 64 65 2d 74 6f 70 2d 6c 65 76 65 6c 2d 64 65 63 6c 2d 70 20 28 6e 6f 64 65 .js2-node-top-level-decl-p.(node
4a620 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 27 73 20 6e 61 6d 65 20 69 73 20 )..."Return.t.if.NODE's.name.is.
4a640 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 73 63 6f 70 65 2e 0a defined.in.the.top-level.scope..
4a660 41 6c 73 6f 20 72 65 74 75 72 6e 73 20 74 20 69 66 20 4e 4f 44 45 27 73 20 6e 61 6d 65 20 69 73 Also.returns.t.if.NODE's.name.is
4a680 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20 61 6e 79 20 73 63 6f 70 65 2c 20 73 69 6e 63 65 .not.defined.in.any.scope,.since
4a6a0 20 69 74 20 69 6d 70 6c 69 65 73 0a 74 68 61 74 20 69 74 27 73 20 61 6e 20 65 78 74 65 72 6e 61 .it.implies.that.it's.an.externa
4a6c0 6c 20 76 61 72 69 61 62 6c 65 2c 20 77 68 69 63 68 20 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 69 l.variable,.which.must.also.be.i
4a6e0 6e 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 73 63 6f 70 65 2e 22 0a 20 20 28 6c 65 74 2a 20 n.the.top-level.scope."...(let*.
4a700 28 28 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 ((name.(js2-prop-node-name.node)
4a720 29 0a 20 20 20 20 20 20 20 20 20 28 74 68 69 73 2d 73 63 6f 70 65 20 28 6a 73 32 2d 6e 6f 64 65 )..........(this-scope.(js2-node
4a740 2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 -get-enclosing-scope.node)).....
4a760 20 20 20 20 20 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 .....defining-scope).....(cond..
4a780 20 20 20 20 28 28 6a 73 32 2d 74 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e 6f 64 65 2d 70 20 6e ....((js2-this-or-super-node-p.n
4a7a0 6f 64 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 74 68 69 73 ode).......nil)......((null.this
4a7c0 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 28 28 73 65 74 71 20 64 65 66 -scope).......t)......((setq.def
4a7e0 69 6e 69 6e 67 2d 73 63 6f 70 65 20 28 6a 73 32 2d 67 65 74 2d 64 65 66 69 6e 69 6e 67 2d 73 63 ining-scope.(js2-get-defining-sc
4a800 6f 70 65 20 74 68 69 73 2d 73 63 6f 70 65 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6a 73 32 ope.this-scope.name)).......(js2
4a820 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 29 29 0a 20 20 20 -ast-root-p.defining-scope))....
4a840 20 20 28 74 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 77 72 61 70 70 65 72 2d 66 ..(t.t))))..(defun.js2-wrapper-f
4a860 75 6e 63 74 69 6f 6e 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 unction-p.(node)..."Return.t.if.
4a880 4e 4f 44 45 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 NODE.is.a.function.expression.th
4a8a0 61 74 27 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 69 6e 76 6f 6b 65 64 2e 0a 4e 4f 44 45 20 6d at's.immediately.invoked..NODE.m
4a8c0 75 73 74 20 62 65 20 60 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 ust.be.`js2-function-node'."...(
4a8e0 6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f let.((parent.(js2-node-parent.no
4a900 64 65 29 29 29 0a 20 20 20 20 28 6f 72 0a 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 28 29 de))).....(or......;;.function()
4a920 7b 2e 2e 2e 7d 28 29 3b 0a 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 {...}();......(and.(js2-call-nod
4a940 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 20 28 e-p.parent)...........(eq.node.(
4a960 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 61 72 65 6e 74 29 29 29 0a 20 js2-call-node-target.parent)))..
4a980 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e ....(and.(js2-paren-node-p.paren
4a9a0 74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 66 75 6e 63 74 69 6f 6e 28 29 7b 2e 2e 2e 7d t)...........;;.(function(){...}
4a9c0 29 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 )();...........(or.(js2-call-nod
4a9e0 65 2d 70 20 28 73 65 74 71 20 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e e-p.(setq.parent.(js2-node-paren
4aa00 74 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 66 75 t.parent)))...............;;.(fu
4aa20 6e 63 74 69 6f 6e 28 29 7b 2e 2e 2e 7d 29 2e 63 61 6c 6c 28 74 68 69 73 29 3b 0a 20 20 20 20 20 nction(){...}).call(this);......
4aa40 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 .........(and.(js2-prop-get-node
4aa60 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d -p.parent)....................(m
4aa80 65 6d 62 65 72 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 70 ember.(js2-name-node-name.(js2-p
4aaa0 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 rop-get-node-right.parent)).....
4aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 63 61 6c 6c 22 20 .......................'("call".
4aae0 22 61 70 70 6c 79 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 "apply"))....................(js
4ab00 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 2-call-node-p.(js2-node-parent.p
4ab20 61 72 65 6e 74 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 72 6f 77 73 65 arent))))))))..(defun.js2-browse
4ab40 2d 70 6f 73 74 70 72 6f 63 65 73 73 2d 63 68 61 69 6e 73 20 28 29 0a 20 20 22 4d 6f 64 69 66 79 -postprocess-chains.()..."Modify
4ab60 20 66 75 6e 63 74 69 6f 6e 2d 64 65 63 6c 61 72 61 74 69 6f 6e 20 6e 61 6d 65 20 63 68 61 69 6e .function-declaration.name.chain
4ab80 73 20 61 66 74 65 72 20 70 61 72 73 69 6e 67 20 66 69 6e 69 73 68 65 73 2e 0a 53 6f 6d 65 20 6f s.after.parsing.finishes..Some.o
4aba0 66 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 f.the.information.is.only.availa
4abc0 62 6c 65 20 61 66 74 65 72 20 74 68 65 20 70 61 72 73 65 20 74 72 65 65 20 69 73 20 63 6f 6d 70 ble.after.the.parse.tree.is.comp
4abe0 6c 65 74 65 2e 0a 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 70 72 6f 63 65 73 73 69 6e 67 20 61 lete..For.instance,.processing.a
4ac00 20 6e 65 73 74 65 64 20 73 63 6f 70 65 20 72 65 71 75 69 72 65 73 20 61 20 70 61 72 65 6e 74 20 .nested.scope.requires.a.parent.
4ac20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 20 66 function.node."...(let.(result.f
4ac40 6e 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 70 20 65 6c 65 6d 29 0a 20 20 20 20 28 64 6f 6c 69 n.parent-qname.p.elem).....(doli
4ac60 73 74 20 28 65 6e 74 72 79 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 29 0a 20 20 st.(entry.js2-imenu-recorder)...
4ac80 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 20 67 6f 65 73 20 66 69 72 73 74 0a ....;;.function.node.goes.first.
4aca0 20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 0a 20 20 20 ......(cl-destructuring-bind....
4acc0 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 66 6e 20 26 72 65 73 74 20 28 26 77 68 6f 6c 65 .......(current-fn.&rest.(&whole
4ace0 20 63 68 61 69 6e 20 68 65 61 64 20 26 72 65 73 74 20 72 65 73 74 29 29 20 65 6e 74 72 79 0a 20 .chain.head.&rest.rest)).entry..
4ad00 20 20 20 20 20 20 20 3b 3b 20 45 78 61 6d 69 6e 65 20 68 65 61 64 27 73 20 64 65 66 69 6e 69 6e .......;;.Examine.head's.definin
4ad20 67 20 73 63 6f 70 65 3a 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 2d 70 72 6f 63 65 73 73 65 g.scope:.........;;.Pre-processe
4ad40 64 20 63 68 61 69 6e 2c 20 6f 72 20 74 6f 70 2d 6c 65 76 65 6c 2f 65 78 74 65 72 6e 61 6c 2c 20 d.chain,.or.top-level/external,.
4ad60 6b 65 65 70 20 61 73 2d 69 73 2e 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 73 74 72 keep.as-is..........(if.(or.(str
4ad80 69 6e 67 70 20 68 65 61 64 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 6f 70 2d 6c 65 76 65 6c 2d 64 ingp.head).(js2-node-top-level-d
4ada0 65 63 6c 2d 70 20 68 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 ecl-p.head)).............(push.c
4adc0 68 61 69 6e 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 hain.result)...........(when.(js
4ade0 32 2d 74 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e 6f 64 65 2d 70 20 68 65 61 64 29 0a 20 20 20 2-this-or-super-node-p.head)....
4ae00 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 68 61 69 6e 20 28 63 64 72 20 63 68 61 69 6e 29 .........(setq.chain.(cdr.chain)
4ae20 29 29 20 3b 20 64 69 73 63 61 72 64 20 74 68 69 73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 )).;.discard.this-node..........
4ae40 20 28 77 68 65 6e 20 28 73 65 74 71 20 66 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 .(when.(setq.fn.(js2-node-parent
4ae60 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 63 75 72 72 65 6e 74 2d 66 6e 29 29 0a 20 20 20 20 20 -script-or-fn.current-fn))......
4ae80 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 28 67 65 74 68 61 .......(setq.parent-qname.(getha
4aea0 73 68 20 66 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 27 6e 6f sh.fn.js2-imenu-function-map.'no
4aec0 74 2d 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 t-found)).............(when.(eq.
4aee0 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 27 6e 6f 74 2d 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 parent-qname.'not-found)........
4af00 20 20 20 20 20 20 20 3b 3b 20 61 6e 6f 6e 79 6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 .......;;.anonymous.function.exp
4af20 72 65 73 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 72 65 63 6f 72 64 65 64 0a 20 20 20 20 20 20 ressions.are.not.recorded.......
4af40 20 20 20 20 20 20 20 20 3b 3b 20 64 75 72 69 6e 67 20 74 68 65 20 70 61 72 73 65 2c 20 73 6f 20 ........;;.during.the.parse,.so.
4af60 77 65 20 6e 65 65 64 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 69 73 20 63 61 73 65 20 68 65 72 65 we.need.to.handle.this.case.here
4af80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74 2d 71 6e 61 6d ...............(setq.parent-qnam
4afa0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 77 e.....................(if.(js2-w
4afc0 72 61 70 70 65 72 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 66 6e 29 0a 20 20 20 20 20 20 20 20 20 20 rapper-function-p.fn)...........
4afe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 67 72 61 6e 64 70 61 72 65 6e 74 ..............(let.((grandparent
4b000 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 66 .(js2-node-parent-script-or-fn.f
4b020 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 n)))...........................(
4b040 69 66 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 67 72 61 6e 64 70 61 72 65 6e 74 29 0a if.(js2-ast-root-p.grandparent).
4b060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 ..............................ni
4b080 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 l.............................(g
4b0a0 65 74 68 61 73 68 20 67 72 61 6e 64 70 61 72 65 6e 74 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e ethash.grandparent.js2-imenu-fun
4b0c0 63 74 69 6f 6e 2d 6d 61 70 20 27 73 6b 69 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ction-map.'skip)))..............
4b0e0 20 20 20 20 20 20 20 20 20 27 73 6b 69 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .........'skip))...............(
4b100 70 75 74 68 61 73 68 20 66 6e 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 6a 73 32 2d 69 6d 65 6e puthash.fn.parent-qname.js2-imen
4b120 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 u-function-map)).............(if
4b140 20 28 65 71 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 27 73 6b 69 70 29 0a 20 20 20 20 20 20 20 .(eq.parent-qname.'skip)........
4b160 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 64 6f 6e 27 74 20 73 68 6f 77 20 69 74 2c 20 6c 65 .........;;.We.don't.show.it,.le
4b180 74 27 73 20 72 65 63 6f 72 64 20 74 68 61 74 20 66 61 63 74 2e 0a 20 20 20 20 20 20 20 20 20 20 t's.record.that.fact............
4b1a0 20 20 20 20 20 20 28 72 65 6d 68 61 73 68 20 63 75 72 72 65 6e 74 2d 66 6e 20 6a 73 32 2d 69 6d ......(remhash.current-fn.js2-im
4b1c0 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 enu-function-map)...............
4b1e0 3b 3b 20 50 72 65 70 65 6e 64 20 70 61 72 65 6e 74 20 66 6e 20 71 6e 61 6d 65 20 74 6f 20 74 68 ;;.Prepend.parent.fn.qname.to.th
4b200 69 73 20 63 68 61 69 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 71 is.chain................(let.((q
4b220 6e 61 6d 65 20 28 61 70 70 65 6e 64 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 63 68 61 69 6e 29 name.(append.parent-qname.chain)
4b240 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 63 75 72 72 )).................(puthash.curr
4b260 65 6e 74 2d 66 6e 20 28 62 75 74 6c 61 73 74 20 71 6e 61 6d 65 29 20 6a 73 32 2d 69 6d 65 6e 75 ent-fn.(butlast.qname).js2-imenu
4b280 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -function-map).................(
4b2a0 70 75 73 68 20 71 6e 61 6d 65 20 72 65 73 75 6c 74 29 29 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 push.qname.result))))))).....;;.
4b2c0 43 6f 6c 6c 65 63 74 20 63 68 61 69 6e 73 20 6f 62 74 61 69 6e 65 64 20 62 79 20 74 68 69 72 64 Collect.chains.obtained.by.third
4b2e0 2d 70 61 72 74 79 20 63 6f 64 65 2e 0a 20 20 20 20 28 6c 65 74 20 28 6a 73 32 2d 69 6d 65 6e 75 -party.code......(let.(js2-imenu
4b300 2d 72 65 63 6f 72 64 65 72 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 -recorder).......(run-hooks.'js2
4b320 2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 29 0a 20 20 20 20 20 20 28 64 -build-imenu-callbacks).......(d
4b340 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 29 olist.(entry.js2-imenu-recorder)
4b360 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 64 72 20 65 6e 74 72 79 29 20 72 65 73 75 6c .........(push.(cdr.entry).resul
4b380 74 29 29 29 0a 20 20 20 20 3b 3b 20 46 69 6e 61 6c 6c 79 20 72 65 70 6c 61 63 65 20 65 61 63 68 t))).....;;.Finally.replace.each
4b3a0 20 6e 6f 64 65 20 69 6e 20 65 61 63 68 20 63 68 61 69 6e 20 77 69 74 68 20 69 74 73 20 6e 61 6d .node.in.each.chain.with.its.nam
4b3c0 65 2e 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 61 69 6e 20 72 65 73 75 6c 74 29 0a 20 20 e......(dolist.(chain.result)...
4b3e0 20 20 20 20 28 73 65 74 71 20 70 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 ....(setq.p.chain).......(while.
4b400 70 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 20 28 73 65 74 71 20 p.........(if.(js2-node-p.(setq.
4b420 65 6c 65 6d 20 28 63 61 72 20 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 elem.(car.p))).............(setc
4b440 61 72 20 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 71 6e 61 6d 65 2d 63 6f 6d 70 6f 6e 65 6e 74 20 65 ar.p.(js2-node-qname-component.e
4b460 6c 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 20 28 63 64 72 20 70 29 29 29 lem))).........(setq.p.(cdr.p)))
4b480 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 3b 3b 20 4d 65 72 67 65 20 6e 61 6d 65 20 63 68 ).....result))..;;.Merge.name.ch
4b4a0 61 69 6e 73 20 69 6e 74 6f 20 61 20 74 72 69 65 2d 6c 69 6b 65 20 74 72 65 65 20 73 74 72 75 63 ains.into.a.trie-like.tree.struc
4b4c0 74 75 72 65 20 6f 66 20 6e 65 73 74 65 64 20 6c 69 73 74 73 2e 0a 3b 3b 20 54 6f 20 73 69 6d 70 ture.of.nested.lists..;;.To.simp
4b4e0 6c 69 66 79 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 72 69 65 2c 20 77 lify.construction.of.the.trie,.w
4b500 65 20 66 69 72 73 74 20 62 75 69 6c 64 20 69 74 20 6f 75 74 20 75 73 69 6e 67 20 74 68 65 20 72 e.first.build.it.out.using.the.r
4b520 75 6c 65 0a 3b 3b 20 74 68 61 74 20 74 68 65 20 74 72 69 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 ule.;;.that.the.trie.consists.of
4b540 20 6c 69 73 74 73 20 6f 66 20 70 61 69 72 73 2e 20 20 45 61 63 68 20 70 61 69 72 20 69 73 20 61 .lists.of.pairs...Each.pair.is.a
4b560 20 32 2d 65 6c 65 6d 65 6e 74 20 61 72 72 61 79 3a 0a 3b 3b 20 5b 6b 65 79 2c 20 6e 75 6d 2d 6f .2-element.array:.;;.[key,.num-o
4b580 72 2d 6c 69 73 74 5d 2e 20 20 54 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 63 61 6e r-list]...The.second.element.can
4b5a0 20 62 65 20 61 20 6e 75 6d 62 65 72 3b 20 69 66 20 73 6f 2c 20 74 68 69 73 20 6b 65 79 0a 3b 3b .be.a.number;.if.so,.this.key.;;
4b5c0 20 69 73 20 61 20 6c 65 61 66 2d 6e 6f 64 65 20 77 69 74 68 20 6f 6e 6c 79 20 6f 6e 65 20 76 61 .is.a.leaf-node.with.only.one.va
4b5e0 6c 75 65 2e 20 20 28 49 2e 65 2e 20 74 68 65 72 65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 64 65 lue...(I.e..there.is.only.one.de
4b600 63 6c 61 72 61 74 69 6f 6e 0a 3b 3b 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 claration.;;.associated.with.the
4b620 20 6b 65 79 20 61 74 20 74 68 69 73 20 6c 65 76 65 6c 2e 29 20 20 4f 74 68 65 72 77 69 73 65 20 .key.at.this.level.)..Otherwise.
4b640 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 69 73 0a 3b 3b 20 61 20 6c 69 73 74 20 the.second.element.is.;;.a.list.
4b660 6f 66 20 70 61 69 72 73 2c 20 77 69 74 68 20 74 68 65 20 72 75 6c 65 20 61 70 70 6c 69 65 64 20 of.pairs,.with.the.rule.applied.
4b680 72 65 63 75 72 73 69 76 65 6c 79 2e 20 20 54 68 69 73 20 73 79 6d 6d 65 74 72 79 20 70 65 72 6d recursively...This.symmetry.perm
4b6a0 69 74 73 0a 3b 3b 20 61 20 73 69 6d 70 6c 65 20 72 65 63 75 72 73 69 76 65 20 66 6f 72 6d 75 6c its.;;.a.simple.recursive.formul
4b6c0 61 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 6a 73 32 2d 6d 6f 64 65 20 69 73 20 62 75 69 6c 64 69 6e ation..;;.;;.js2-mode.is.buildin
4b6e0 67 20 74 68 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 20 g.the.data.structure.for.imenu..
4b700 20 54 68 65 20 69 6d 65 6e 75 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 3b 3b 20 63 6c 61 69 .The.imenu.documentation.;;.clai
4b720 6d 73 20 74 68 61 74 20 69 74 27 73 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 61 62 6f 76 65 ms.that.it's.the.structure.above
4b740 2c 20 62 75 74 20 69 6e 20 70 72 61 63 74 69 63 65 20 69 74 20 77 61 6e 74 73 20 74 68 65 20 63 ,.but.in.practice.it.wants.the.c
4b760 68 69 6c 64 72 65 6e 0a 3b 3b 20 61 74 20 74 68 65 20 73 61 6d 65 20 6c 69 73 74 20 6c 65 76 65 hildren.;;.at.the.same.list.leve
4b780 6c 20 61 73 20 74 68 65 20 6b 65 79 20 66 6f 72 20 74 68 61 74 20 6c 65 76 65 6c 2c 20 77 68 69 l.as.the.key.for.that.level,.whi
4b7a0 63 68 20 69 73 20 68 6f 77 20 49 27 76 65 20 64 72 61 77 6e 0a 3b 3b 20 74 68 65 20 22 45 78 70 ch.is.how.I've.drawn.;;.the."Exp
4b7c0 65 63 74 65 64 20 66 69 6e 61 6c 20 72 65 73 75 6c 74 22 20 61 62 6f 76 65 2e 20 20 57 65 27 6c ected.final.result".above...We'l
4b7e0 6c 20 70 6f 73 74 70 72 6f 63 65 73 73 20 74 68 65 20 74 72 69 65 20 74 6f 20 72 65 6d 6f 76 65 l.postprocess.the.trie.to.remove
4b800 20 74 68 65 0a 3b 3b 20 6c 69 73 74 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 74 68 65 20 .the.;;.list.wrapper.around.the.
4b820 63 68 69 6c 64 72 65 6e 20 61 74 20 65 61 63 68 20 6c 65 76 65 6c 2e 0a 3b 3b 0a 3b 3b 20 41 20 children.at.each.level..;;.;;.A.
4b840 63 6f 6d 70 6c 65 74 65 64 20 6e 65 73 74 65 64 20 69 6d 65 6e 75 2d 61 6c 69 73 74 20 65 6e 74 completed.nested.imenu-alist.ent
4b860 72 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a 3b 3b 20 20 20 20 20 20 20 27 28 28 ry.looks.like.this:.;;.......'((
4b880 22 66 6f 6f 22 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 22 3c 64 65 66 69 6e 69 74 69 6f 6e 3e "foo".;;..........("<definition>
4b8a0 22 20 2e 20 37 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 22 62 61 72 22 0a 3b 3b 20 20 20 20 "...7).;;..........("bar".;;....
4b8c0 20 20 20 20 20 20 20 28 22 61 22 20 2e 20 34 30 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 28 .......("a"...40).;;...........(
4b8e0 22 62 22 20 2e 20 36 30 29 29 29 29 0a 3b 3b 0a 3b 3b 20 49 6e 20 70 61 72 74 69 63 75 6c 61 72 "b"...60)))).;;.;;.In.particular
4b900 2c 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 60 69 6d 65 6e 75 2d 2d ,.the.documentation.for.`imenu--
4b920 69 6e 64 65 78 2d 61 6c 69 73 74 27 20 73 61 79 73 20 74 68 61 74 0a 3b 3b 20 61 20 6e 65 73 74 index-alist'.says.that.;;.a.nest
4b940 65 64 20 73 75 62 2d 61 6c 69 73 74 20 65 6c 65 6d 65 6e 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 ed.sub-alist.element.looks.like.
4b960 28 49 4e 44 45 58 2d 4e 41 4d 45 20 53 55 42 2d 41 4c 49 53 54 29 2e 0a 3b 3b 20 54 68 65 20 73 (INDEX-NAME.SUB-ALIST)..;;.The.s
4b980 75 62 2d 61 6c 69 73 74 20 65 6e 74 72 69 65 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 66 6f 6c ub-alist.entries.immediately.fol
4b9a0 6c 6f 77 20 49 4e 44 45 58 2d 4e 41 4d 45 2c 20 74 68 65 20 68 65 61 64 20 6f 66 20 74 68 65 20 low.INDEX-NAME,.the.head.of.the.
4b9c0 6c 69 73 74 2e 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 74 72 65 65 69 66 79 20 28 6c 73 74 29 0a list...(defun.js2-treeify.(lst).
4b9e0 20 20 22 43 6f 6e 76 65 72 74 20 28 61 20 62 20 63 20 64 29 20 74 6f 20 28 61 20 28 28 62 20 28 .."Convert.(a.b.c.d).to.(a.((b.(
4ba00 28 63 20 64 29 29 29 29 29 2e 22 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 28 63 64 64 72 20 6c 73 (c.d)))))."...(if.(null.(cddr.ls
4ba20 74 29 29 20 20 3b 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 3c 3d 20 32 0a 20 20 20 20 20 20 6c 73 t))..;.list.length.<=.2.......ls
4ba40 74 0a 20 20 20 20 28 6c 69 73 74 20 28 63 61 72 20 6c 73 74 29 20 28 6c 69 73 74 20 28 6a 73 32 t.....(list.(car.lst).(list.(js2
4ba60 2d 74 72 65 65 69 66 79 20 28 63 64 72 20 6c 73 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 -treeify.(cdr.lst))))))..(defun.
4ba80 6a 73 32 2d 62 75 69 6c 64 2d 61 6c 69 73 74 2d 74 72 69 65 20 28 63 68 61 69 6e 73 20 74 72 69 js2-build-alist-trie.(chains.tri
4baa0 65 29 0a 20 20 22 4d 65 72 67 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6e 61 6d 65 20 63 68 61 e)..."Merge.declaration.name.cha
4bac0 69 6e 73 20 69 6e 74 6f 20 61 20 74 72 69 65 2d 6c 69 6b 65 20 61 6c 69 73 74 20 73 74 72 75 63 ins.into.a.trie-like.alist.struc
4bae0 74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 0a 43 48 41 49 4e 53 20 69 73 20 74 68 65 20 71 6e ture.for.imenu..CHAINS.is.the.qn
4bb00 61 6d 65 20 63 68 61 69 6e 20 6c 69 73 74 20 70 72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20 70 ame.chain.list.produced.during.p
4bb20 61 72 73 69 6e 67 2e 20 54 52 49 45 20 69 73 20 61 0a 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e arsing..TRIE.is.a.list.of.elemen
4bb40 74 73 20 62 75 69 6c 74 20 75 70 20 73 6f 20 66 61 72 2e 22 0a 20 20 28 6c 65 74 20 28 68 65 61 ts.built.up.so.far."...(let.(hea
4bb60 64 20 74 61 69 6c 20 70 6f 73 20 62 72 61 6e 63 68 20 6b 69 64 73 29 0a 20 20 20 20 28 64 6f 6c d.tail.pos.branch.kids).....(dol
4bb80 69 73 74 20 28 63 68 61 69 6e 20 63 68 61 69 6e 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 ist.(chain.chains).......(setq.h
4bba0 65 61 64 20 28 63 61 72 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 61 69 6c ead.(car.chain).............tail
4bbc0 20 28 63 64 72 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 20 28 69 66 .(cdr.chain).............pos.(if
4bbe0 20 28 6e 75 6d 62 65 72 70 20 28 63 61 72 20 74 61 69 6c 29 29 20 28 63 61 72 20 74 61 69 6c 29 .(numberp.(car.tail)).(car.tail)
4bc00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 61 6e 63 68 20 28 6a 73 32 2d 66 69 6e 64 2d 69 ).............branch.(js2-find-i
4bc20 66 20 28 6c 61 6d 62 64 61 20 28 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.(lambda.(n)...................
4bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 6e 29 ................(string=.(car.n)
4bc60 20 68 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .head)).........................
4bc80 20 20 20 20 20 20 20 20 74 72 69 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 20 28 ........trie).............kids.(
4bca0 63 6c 2d 73 65 63 6f 6e 64 20 62 72 61 6e 63 68 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 cl-second.branch)).......(cond..
4bcc0 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a 20 20 74 68 69 73 20 6b 65 79 20 69 73 6e 27 74 ......;;.case.1:..this.key.isn't
4bce0 20 69 6e 20 74 68 65 20 74 72 69 65 20 79 65 74 0a 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 62 .in.the.trie.yet........((null.b
4bd00 72 61 6e 63 68 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 74 72 69 65 0a 20 20 20 20 20 20 20 20 ranch).........(if.trie.........
4bd20 20 20 20 20 28 73 65 74 63 64 72 20 28 6c 61 73 74 20 74 72 69 65 29 20 28 6c 69 73 74 20 28 6a ....(setcdr.(last.trie).(list.(j
4bd40 73 32 2d 74 72 65 65 69 66 79 20 63 68 61 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 s2-treeify.chain)))...........(s
4bd60 65 74 71 20 74 72 69 65 20 28 6c 69 73 74 20 28 6a 73 32 2d 74 72 65 65 69 66 79 20 63 68 61 69 etq.trie.(list.(js2-treeify.chai
4bd80 6e 29 29 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 32 3a 20 20 6b 65 79 20 69 73 n)))))........;;.case.2:..key.is
4bda0 20 70 72 65 73 65 6e 74 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 6e 75 6d 62 65 72 20 65 6e .present.with.a.single.number.en
4bdc0 74 72 79 3a 20 20 72 65 70 6c 61 63 65 20 77 2f 20 6c 69 73 74 0a 20 20 20 20 20 20 20 3b 3b 20 try:..replace.w/.list........;;.
4bde0 20 28 22 61 31 22 20 31 30 29 20 20 2b 20 20 28 22 61 31 22 20 32 30 29 20 3d 3e 20 28 22 61 31 .("a1".10)..+..("a1".20).=>.("a1
4be00 22 20 28 28 22 3c 64 65 66 69 6e 69 74 69 6f 6e 3e 22 20 31 30 29 0a 20 20 20 20 20 20 20 3b 3b ".(("<definition>".10)........;;
4be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4be40 20 20 20 20 28 22 3c 64 65 66 69 6e 69 74 69 6f 6e 3e 22 20 32 30 29 29 29 0a 20 20 20 20 20 20 ....("<definition>".20))).......
4be60 20 28 28 6e 75 6d 62 65 72 70 20 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 .((numberp.kids).........(setcar
4be80 20 28 63 64 72 20 62 72 61 6e 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .(cdr.branch).................(l
4bea0 69 73 74 20 28 6c 69 73 74 20 22 3c 64 65 66 69 6e 69 74 69 6f 6e 2d 31 3e 22 20 6b 69 64 73 29 ist.(list."<definition-1>".kids)
4bec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 6f 73 0a 20 .......................(if.pos..
4bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 .........................(list."
4bf00 3c 64 65 66 69 6e 69 74 69 6f 6e 2d 32 3e 22 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 <definition-2>".pos)............
4bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 72 65 65 69 66 79 20 74 61 69 6c 29 29 .............(js2-treeify.tail))
4bf40 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 33 3a 20 20 6b 65 79 20 69 73 20 74 68 )))........;;.case.3:..key.is.th
4bf60 65 72 65 20 28 77 69 74 68 20 6b 69 64 73 29 2c 20 61 6e 64 20 77 65 27 72 65 20 61 20 6e 75 6d ere.(with.kids),.and.we're.a.num
4bf80 62 65 72 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 28 70 6f 73 0a 20 20 20 20 20 20 20 20 28 73 ber.entry........(pos.........(s
4bfa0 65 74 63 64 72 20 28 6c 61 73 74 20 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 etcdr.(last.kids)...............
4bfc0 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 ..(list..................(list.(
4bfe0 66 6f 72 6d 61 74 20 22 3c 64 65 66 69 6e 69 74 69 6f 6e 2d 25 64 3e 22 0a 20 20 20 20 20 20 20 format."<definition-%d>"........
4c000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 63 6c 2d ........................(1+.(cl-
4c020 6c 6f 6f 70 20 66 6f 72 20 6b 69 64 20 69 6e 20 6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 loop.for.kid.in.kids............
4c040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c060 20 63 6f 75 6e 74 20 28 65 71 20 3f 3c 20 28 61 72 65 66 20 28 63 61 72 20 6b 69 64 29 20 30 29 .count.(eq.?<.(aref.(car.kid).0)
4c080 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 29 ))))........................pos)
4c0a0 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 34 3a 20 20 6b 65 79 20 69 73 20 74 68 )))........;;.case.4:..key.is.th
4c0c0 65 72 65 20 77 69 74 68 20 6b 69 64 73 2c 20 6e 65 65 64 20 74 6f 20 6d 65 72 67 65 20 69 6e 20 ere.with.kids,.need.to.merge.in.
4c0e0 6f 75 72 20 63 68 61 69 6e 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 our.chain........(t.........(js2
4c100 2d 62 75 69 6c 64 2d 61 6c 69 73 74 2d 74 72 69 65 20 28 6c 69 73 74 20 74 61 69 6c 29 20 6b 69 -build-alist-trie.(list.tail).ki
4c120 64 73 29 29 29 29 0a 20 20 20 20 74 72 69 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 6c ds)))).....trie))..(defun.js2-fl
4c140 61 74 74 65 6e 2d 74 72 69 65 20 28 74 72 69 65 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 54 52 49 atten-trie.(trie)..."Convert.TRI
4c160 45 20 74 6f 20 69 6d 65 6e 75 2d 66 6f 72 6d 61 74 2e 0a 52 65 63 75 72 73 65 73 20 74 68 72 6f E.to.imenu-format..Recurses.thro
4c180 75 67 68 20 6e 6f 64 65 73 2c 20 61 6e 64 20 66 6f 72 20 65 61 63 68 20 6f 6e 65 20 77 68 6f 73 ugh.nodes,.and.for.each.one.whos
4c1a0 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 20 6c 69 73 74 2c 0a 61 70 70 65 e.second.element.is.a.list,.appe
4c1c0 6e 64 73 20 74 68 65 20 6c 69 73 74 27 73 20 66 6c 61 74 74 65 6e 65 64 20 65 6c 65 6d 65 6e 74 nds.the.list's.flattened.element
4c1e0 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 2e 20 20 41 6c 73 6f 0a s.to.the.current.element...Also.
4c200 63 68 61 6e 67 65 73 20 74 68 65 20 74 61 69 6c 73 20 69 6e 74 6f 20 63 6f 6e 73 65 73 2e 20 20 changes.the.tails.into.conses...
4c220 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 74 68 69 73 20 70 72 65 2d 66 6c 61 74 74 65 6e 65 64 For.instance,.this.pre-flattened
4c240 20 74 72 69 65 0a 0a 20 28 61 20 28 28 62 20 32 30 29 0a 20 20 20 20 20 28 63 20 28 28 64 20 33 .trie...(a.((b.20)......(c.((d.3
4c260 30 29 0a 20 20 20 20 20 20 20 20 20 28 65 20 34 30 29 29 29 29 29 0a 0a 62 65 63 6f 6d 65 73 0a 0)..........(e.40)))))..becomes.
4c280 0a 20 28 61 20 28 62 20 2e 20 32 30 29 0a 20 20 20 20 28 63 20 28 64 20 2e 20 33 30 29 0a 20 20 ..(a.(b...20).....(c.(d...30)...
4c2a0 20 20 20 20 20 28 65 20 2e 20 34 30 29 29 29 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 72 .....(e...40)))..Note.that.the.r
4c2c0 6f 6f 74 20 6f 66 20 74 68 65 20 74 72 69 65 20 68 61 73 20 6e 6f 20 6b 65 79 2c 20 6a 75 73 74 oot.of.the.trie.has.no.key,.just
4c2e0 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 69 6e 73 2e 0a 54 68 69 73 20 69 73 20 61 6c 73 6f 20 .a.list.of.chains..This.is.also.
4c300 74 72 75 65 20 66 6f 72 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 6e 79 20 6b 65 79 20 77 69 true.for.the.value.of.any.key.wi
4c320 74 68 20 6d 75 6c 74 69 70 6c 65 20 63 68 69 6c 64 72 65 6e 2c 0a 65 2e 67 2e 20 6b 65 79 20 60 th.multiple.children,.e.g..key.`
4c340 63 27 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 61 62 6f 76 65 2e 22 0a 20 20 28 63 6f 6e c'.in.the.example.above."...(con
4c360 64 0a 20 20 20 28 28 6c 69 73 74 70 20 28 63 61 72 20 74 72 69 65 29 29 0a 20 20 20 20 28 6d 61 d....((listp.(car.trie)).....(ma
4c380 70 63 61 72 20 23 27 6a 73 32 2d 66 6c 61 74 74 65 6e 2d 74 72 69 65 20 74 72 69 65 29 29 0a 20 pcar.#'js2-flatten-trie.trie))..
4c3a0 20 20 28 74 0a 20 20 20 20 28 69 66 20 28 6e 75 6d 62 65 72 70 20 28 63 6c 2d 73 65 63 6f 6e 64 ..(t.....(if.(numberp.(cl-second
4c3c0 20 74 72 69 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 74 72 69 65 29 .trie)).........(cons.(car.trie)
4c3e0 20 28 63 6c 2d 73 65 63 6f 6e 64 20 74 72 69 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 .(cl-second.trie)).......;;.else
4c400 20 70 6f 70 20 6c 69 73 74 20 61 6e 64 20 61 70 70 65 6e 64 20 69 74 73 20 6b 69 64 73 0a 20 20 .pop.list.and.append.its.kids...
4c420 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 63 61 72 20 74 ....(apply.#'append.(list.(car.t
4c440 72 69 65 29 29 20 28 6a 73 32 2d 66 6c 61 74 74 65 6e 2d 74 72 69 65 20 28 63 64 72 20 74 72 69 rie)).(js2-flatten-trie.(cdr.tri
4c460 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75 e)))))))..(defun.js2-build-imenu
4c480 2d 69 6e 64 65 78 20 28 29 0a 20 20 22 54 75 72 6e 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 -index.()..."Turn.`js2-imenu-rec
4c4a0 6f 72 64 65 72 27 20 69 6e 74 6f 20 61 6e 20 69 6d 65 6e 75 20 64 61 74 61 20 73 74 72 75 63 74 order'.into.an.imenu.data.struct
4c4c0 75 72 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 65 71 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f ure."...(when.(eq.js2-imenu-reco
4c4e0 72 64 65 72 20 27 65 6d 70 74 79 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 6d 65 6e 75 rder.'empty).....(setq.js2-imenu
4c500 2d 72 65 63 6f 72 64 65 72 20 6e 69 6c 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 61 69 6e 73 -recorder.nil))...(let*.((chains
4c520 20 28 6a 73 32 2d 62 72 6f 77 73 65 2d 70 6f 73 74 70 72 6f 63 65 73 73 2d 63 68 61 69 6e 73 29 .(js2-browse-postprocess-chains)
4c540 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 6a 73 32 2d 62 75 69 6c 64 2d 61 6c )..........(result.(js2-build-al
4c560 69 73 74 2d 74 72 69 65 20 63 68 61 69 6e 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 6a 73 32 2d ist-trie.chains.nil))).....(js2-
4c580 66 6c 61 74 74 65 6e 2d 74 72 69 65 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a flatten-trie.result)))..(defun.j
4c5a0 73 32 2d 74 65 73 74 2d 70 72 69 6e 74 2d 63 68 61 69 6e 73 20 28 63 68 61 69 6e 73 29 0a 20 20 s2-test-print-chains.(chains)...
4c5c0 22 50 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20 71 6e 61 6d 65 20 63 68 61 69 6e 73 2e 0a 45 "Print.a.list.of.qname.chains..E
4c5e0 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 43 48 41 49 4e 53 20 69 73 20 61 20 6c 69 73 74 20 ach.element.of.CHAINS.is.a.list.
4c600 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 4e 4f 44 45 20 5b 4e 4f 44 45 20 2a 5d 20 70 6f 73 29 3b of.the.form.(NODE.[NODE.*].pos);
4c620 0a 69 2e 65 2e 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6e 6f 64 65 73 2c 20 61 6e 64 20 61 6e 20 .i.e..one.or.more.nodes,.and.an.
4c640 69 6e 74 65 67 65 72 20 70 6f 73 69 74 69 6f 6e 20 61 73 20 74 68 65 20 6c 69 73 74 20 74 61 69 integer.position.as.the.list.tai
4c660 6c 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 63 68 61 69 6e 29 l."...(mapconcat.(lambda.(chain)
4c680 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 28 22 0a 20 20 20 20 ................(concat."(".....
4c6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c ...................(mapconcat.(l
4c6c0 61 6d 62 64 61 20 28 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ambda.(elem)....................
4c6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 .................(if.(js2-node-p
4c700 20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .elem)..........................
4c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 71 6e 61 ...............(or.(js2-node-qna
4c740 6d 65 2d 63 6f 6d 70 6f 6e 65 6e 74 20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 me-component.elem)..............
4c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ..............................."
4c780 6e 69 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nil")...........................
4c7a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 65 6c ............(number-to-string.el
4c7c0 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 em)))...........................
4c7e0 20 20 20 20 20 20 20 20 63 68 61 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........chain...................
4c800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ................".")............
4c820 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 ............")"))..............c
4c840 68 61 69 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 0a 3b 3b 3b 20 50 hains.............."\n"))..;;;.P
4c860 61 72 73 65 72 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 76 65 72 73 69 6f 6e 20 22 31 2e arser..(defconst.js2-version."1.
4c880 38 2e 35 22 0a 20 20 22 56 65 72 73 69 6f 6e 20 6f 66 20 4a 61 76 61 53 63 72 69 70 74 20 73 75 8.5"..."Version.of.JavaScript.su
4c8a0 70 70 6f 72 74 65 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 pported.")..(defun.js2-record-fa
4c8c0 63 65 20 28 66 61 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 6b 65 6e 29 0a 20 20 22 52 65 63 ce.(face.&optional.token)..."Rec
4c8e0 6f 72 64 20 61 20 73 74 79 6c 65 20 72 75 6e 20 6f 66 20 46 41 43 45 20 66 6f 72 20 54 4f 4b 45 ord.a.style.run.of.FACE.for.TOKE
4c900 4e 20 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 75 6e 6c 65 N.or.the.current.token."...(unle
4c920 73 73 20 74 6f 6b 65 6e 20 28 73 65 74 71 20 74 6f 6b 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e ss.token.(setq.token.(js2-curren
4c940 74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6a 73 32 2d t-token)))...(js2-set-face.(js2-
4c960 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 token-beg.token).(js2-token-end.
4c980 74 6f 6b 65 6e 29 20 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 0a 0a 28 64 65 66 73 75 62 73 74 token).face.'record))..(defsubst
4c9a0 20 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 28 6e 29 0a 20 20 22 43 6f 6d 70 75 74 65 73 20 74 68 .js2-node-end.(n)..."Computes.th
4c9c0 65 20 61 62 73 6f 6c 75 74 65 20 65 6e 64 20 6f 66 20 6e 6f 64 65 20 4e 2e 0a 55 73 65 20 77 69 e.absolute.end.of.node.N..Use.wi
4c9e0 74 68 20 63 61 75 74 69 6f 6e 21 20 20 41 73 73 75 6d 65 73 20 60 6a 73 32 2d 6e 6f 64 65 2d 70 th.caution!..Assumes.`js2-node-p
4ca00 6f 73 27 20 69 73 20 2d 61 62 73 6f 6c 75 74 65 2d 2c 20 77 68 69 63 68 0a 69 73 20 6f 6e 6c 79 os'.is.-absolute-,.which.is.only
4ca20 20 74 72 75 65 20 75 6e 74 69 6c 20 74 68 65 20 6e 6f 64 65 20 69 73 20 61 64 64 65 64 20 74 6f .true.until.the.node.is.added.to
4ca40 20 69 74 73 20 70 61 72 65 6e 74 3b 20 69 2e 65 2e 2c 20 77 68 69 6c 65 20 70 61 72 73 69 6e 67 .its.parent;.i.e.,.while.parsing
4ca60 2e 22 0a 20 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 29 0a 20 20 20 20 20 28 6a ."...(+.(js2-node-pos.n)......(j
4ca80 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 63 s2-node-len.n)))..(defun.js2-rec
4caa0 6f 72 64 2d 63 6f 6d 6d 65 6e 74 20 28 74 6f 6b 65 6e 29 0a 20 20 22 52 65 63 6f 72 64 20 61 20 ord-comment.(token)..."Record.a.
4cac0 63 6f 6d 6d 65 6e 74 20 69 6e 20 60 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 comment.in.`js2-scanned-comments
4cae0 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 '."...(let.((ct.(js2-token-comme
4cb00 6e 74 2d 74 79 70 65 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 nt-type.token)).........(beg.(js
4cb20 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2-token-beg.token)).........(end
4cb40 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 70 75 .(js2-token-end.token))).....(pu
4cb60 73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 3a 6c 65 6e 20 28 sh.(make-js2-comment-node.:len.(
4cb80 2d 20 65 6e 64 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -.end.beg)......................
4cba0 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 63 74 29 0a 20 20 20 20 20 20 20 20 ............:format.ct).........
4cbc0 20 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 77 68 65 ..js2-scanned-comments).....(whe
4cbe0 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 6a 73 32 2d n.js2-parse-ide-mode.......(js2-
4cc00 72 65 63 6f 72 64 2d 66 61 63 65 20 28 69 66 20 28 65 71 20 63 74 20 27 6a 73 64 6f 63 29 0a 20 record-face.(if.(eq.ct.'jsdoc)..
4cc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d ..........................'font-
4cc40 6c 6f 63 6b 2d 64 6f 63 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lock-doc-face...................
4cc60 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a .......'font-lock-comment-face).
4cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e 29 0a 20 20 .......................token)...
4cca0 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 63 74 20 27 28 68 74 6d 6c 20 70 72 65 70 72 6f ....(when.(memq.ct.'(html.prepro
4ccc0 63 65 73 73 6f 72 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 65 6c 6c 20 63 63 2d 65 6e 67 69 cessor)).........;;.Tell.cc-engi
4cce0 6e 65 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 ne.the.bounds.of.the.comment....
4cd00 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 ......(js2-record-text-property.
4cd20 62 65 67 20 28 31 2d 20 65 6e 64 29 20 27 63 2d 69 6e 2d 73 77 73 20 74 29 29 29 29 29 0a 0a 28 beg.(1-.end).'c-in-sws.t)))))..(
4cd40 64 65 66 75 6e 20 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 defun.js2-peek-token.(&optional.
4cd60 6d 6f 64 69 66 69 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 74 6f 6b modifier)..."Return.the.next.tok
4cd80 65 6e 20 74 79 70 65 20 77 69 74 68 6f 75 74 20 63 6f 6e 73 75 6d 69 6e 67 20 69 74 2e 0a 49 66 en.type.without.consuming.it..If
4cda0 20 60 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 27 20 69 73 20 70 6f 73 69 74 69 76 65 2c .`js2-ti-lookahead'.is.positive,
4cdc0 20 72 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 6e 65 78 74 20 74 6f 6b 65 6e 0a 66 .return.the.type.of.next.token.f
4cde0 72 6f 6d 20 60 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 27 2e 20 20 4f 74 68 65 72 77 69 73 65 2c rom.`js2-ti-tokens'...Otherwise,
4ce00 20 63 61 6c 6c 20 60 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 27 2e 22 0a 20 20 28 69 66 20 28 6e .call.`js2-get-token'."...(if.(n
4ce20 6f 74 20 28 7a 65 72 6f 70 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 29 29 0a 20 20 20 ot.(zerop.js2-ti-lookahead))....
4ce40 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 0a 20 20 20 20 20 20 20 28 61 72 65 66 20 ...(js2-token-type........(aref.
4ce60 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 28 6d 6f 64 20 28 31 2b 20 6a 73 32 2d 74 69 2d 74 6f js2-ti-tokens.(mod.(1+.js2-ti-to
4ce80 6b 65 6e 73 2d 63 75 72 73 6f 72 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 29 0a 20 kens-cursor).js2-ti-ntokens)))..
4cea0 20 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 2d 69 6e 74 65 ...(let.((tt.(js2-get-token-inte
4cec0 72 6e 61 6c 20 6d 6f 64 69 66 69 65 72 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 rnal.modifier))).......(js2-unge
4cee0 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 74 74 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 t-token).......tt)))..(defalias.
4cf00 27 6a 73 32 2d 6e 65 78 74 2d 74 6f 6b 65 6e 20 27 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 'js2-next-token.'js2-get-token).
4cf20 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 28 6d 61 74 63 68 20 26 .(defun.js2-match-token.(match.&
4cf40 6f 70 74 69 6f 6e 61 6c 20 64 6f 6e 74 2d 75 6e 67 65 74 29 0a 20 20 22 47 65 74 20 6e 65 78 74 optional.dont-unget)..."Get.next
4cf60 20 74 6f 6b 65 6e 20 61 6e 64 20 72 65 74 75 72 6e 20 74 20 69 66 20 69 74 20 6d 61 74 63 68 65 .token.and.return.t.if.it.matche
4cf80 73 20 4d 41 54 43 48 2c 20 61 20 62 79 74 65 63 6f 64 65 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c s.MATCH,.a.bytecode..Returns.nil
4cfa0 20 61 6e 64 20 63 6f 6e 73 75 6d 65 73 20 6e 6f 74 68 69 6e 67 20 69 66 20 4d 41 54 43 48 20 69 .and.consumes.nothing.if.MATCH.i
4cfc0 73 20 6e 6f 74 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 69 66 20 28 2f 3d s.not.the.next.token."...(if.(/=
4cfe0 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 20 6d 61 74 63 68 29 0a 20 20 20 20 20 20 28 69 .(js2-get-token).match).......(i
4d000 67 6e 6f 72 65 20 28 75 6e 6c 65 73 73 20 64 6f 6e 74 2d 75 6e 67 65 74 20 28 6a 73 32 2d 75 6e gnore.(unless.dont-unget.(js2-un
4d020 67 65 74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 get-token))).....t))..(defun.js2
4d040 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 28 6e 61 6d 65 29 0a 20 20 22 -match-contextual-kwd.(name)..."
4d060 43 6f 6e 73 75 6d 65 20 61 6e 64 20 72 65 74 75 72 6e 20 74 20 69 66 20 6e 65 78 74 20 74 6f 6b Consume.and.return.t.if.next.tok
4d080 65 6e 20 69 73 20 60 6a 73 32 2d 4e 41 4d 45 27 2c 20 61 6e 64 20 69 74 73 0a 73 74 72 69 6e 67 en.is.`js2-NAME',.and.its.string
4d0a0 20 69 73 20 4e 41 4d 45 2e 20 20 52 65 74 75 72 6e 73 20 6e 69 6c 20 61 6e 64 20 6b 65 65 70 73 .is.NAME...Returns.nil.and.keeps
4d0c0 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66 .current.token.otherwise."...(if
4d0e0 20 28 6a 73 32 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 2d 70 20 28 70 72 6f 67 6e 20 28 6a .(js2-contextual-kwd-p.(progn.(j
4d100 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-get-token)...................
4d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f .................(js2-current-to
4d140 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ken))...........................
4d160 20 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6a 73 32 2d 72 65 63 6f 72 64 ..name).......(progn.(js2-record
4d180 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 20 74 -face.'font-lock-keyword-face).t
4d1a0 29 0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 6e 69 6c 29 ).....(js2-unget-token).....nil)
4d1c0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 2d 70 20 28 )..(defun.js2-contextual-kwd-p.(
4d1e0 74 6f 6b 65 6e 20 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 54 4f 4b 45 4e token.name)..."Return.t.if.TOKEN
4d200 20 69 73 20 60 6a 73 32 2d 4e 41 4d 45 27 2c 20 61 6e 64 20 69 74 73 20 73 74 72 69 6e 67 20 69 .is.`js2-NAME',.and.its.string.i
4d220 73 20 4e 41 4d 45 2e 22 0a 20 20 28 61 6e 64 20 28 3d 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 s.NAME."...(and.(=.(js2-token-ty
4d240 70 65 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 pe.token).js2-NAME)........(stri
4d260 6e 67 3d 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 6e 61 6d ng=.(js2-token-string.token).nam
4d280 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75 6e e)))..(defun.js2-match-async-fun
4d2a0 63 74 69 6f 6e 20 28 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73 32 2d 63 6f 6e 74 65 ction.()...(when.(and.(js2-conte
4d2c0 78 74 75 61 6c 2d 6b 77 64 2d 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 20 xtual-kwd-p.(js2-current-token).
4d2e0 22 61 73 79 6e 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 70 65 "async")..............(=.(js2-pe
4d300 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 29 0a 20 20 20 20 28 6c 65 ek-token).js2-FUNCTION)).....(le
4d320 74 20 28 28 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e t.((async-pos.(js2-current-token
4d340 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 -beg))).......(js2-record-face.'
4d360 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 28 6a font-lock-keyword-face).......(j
4d380 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 61 73 79 6e 63 2d 70 6f 73 29 29 29 s2-get-token).......async-pos)))
4d3a0 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 61 72 72 6f 77 2d 66 ..(defun.js2-match-async-arrow-f
4d3c0 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 63 6f 6e 74 65 78 74 75 61 unction.()...(and.(js2-contextua
4d3e0 6c 2d 6b 77 64 2d 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 20 22 61 73 79 l-kwd-p.(js2-current-token)."asy
4d400 6e 63 22 29 0a 20 20 20 20 20 20 20 28 2f 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 nc")........(/=.(js2-peek-token)
4d420 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d .js2-FUNCTION)))..(defsubst.js2-
4d440 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 28 63 6c 2d 70 6c 75 73 70 20 6a inside-function.()...(cl-plusp.j
4d460 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 73 75 s2-nesting-of-function))..(defsu
4d480 62 73 74 20 6a 73 32 2d 69 6e 73 69 64 65 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69 6f 6e 20 28 29 bst.js2-inside-async-function.()
4d4a0 0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 ...(and.(js2-inside-function)...
4d4c0 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 61 73 79 6e 63 20 6a 73 .....(js2-function-node-async.js
4d4e0 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 2-current-script-or-fn)))..(defu
4d500 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 77 61 69 74 2d 6d 61 79 62 65 20 28 74 74 29 0a 20 20 22 n.js2-parse-await-maybe.(tt)..."
4d520 50 61 72 73 65 20 5c 22 61 77 61 69 74 5c 22 20 61 73 20 61 6e 20 41 77 61 69 74 45 78 70 72 65 Parse.\"await\".as.an.AwaitExpre
4d540 73 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 6f 6e 65 2e 22 0a 20 20 28 61 6e 64 20 28 3d 20 ssion,.if.it.is.one."...(and.(=.
4d560 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6e 74 65 78 74 tt.js2-NAME)........(js2-context
4d580 75 61 6c 2d 6b 77 64 2d 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 20 22 61 ual-kwd-p.(js2-current-token)."a
4d5a0 77 61 69 74 22 29 0a 20 20 20 20 20 20 20 3b 3b 20 50 65 72 20 74 68 65 20 70 72 6f 70 6f 73 61 wait")........;;.Per.the.proposa
4d5c0 6c 2c 20 41 77 61 69 74 45 78 70 72 65 73 73 69 6f 6e 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 22 l,.AwaitExpression.consists.of."
4d5e0 61 77 61 69 74 22 0a 20 20 20 20 20 20 20 3b 3b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 55 await"........;;.followed.by.a.U
4d600 6e 61 72 79 45 78 70 72 65 73 73 69 6f 6e 2e 20 20 53 6f 20 6c 6f 6f 6b 20 61 68 65 61 64 20 66 naryExpression...So.look.ahead.f
4d620 6f 72 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 73 2d 73 74 61 74 65 20 28 or.one.........(let.((ts-state.(
4d640 6d 61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 make-js2-ts-state)).............
4d660 20 28 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 6a 73 32 2d 72 65 63 6f 72 .(recorded-identifiers.js2-recor
4d680 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 ded-identifiers)..............(p
4d6a0 61 72 73 65 64 2d 65 72 72 6f 72 73 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 29 0a arsed-errors.js2-parsed-errors).
4d6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 20 28 6a 73 32 .............(current-token.(js2
4d6e0 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 -current-token))..............(b
4d700 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 eg.(js2-current-token-beg)).....
4d720 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e .........(end.(js2-current-token
4d740 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 20 20 20 20 -end))..............pn).........
4d760 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 .(js2-get-token)..........(setq.
4d780 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 62 65 67 20 6a 73 32 2d 41 57 41 49 54 pn.(js2-make-unary.beg.js2-AWAIT
4d7a0 20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 .'js2-parse-unary-expr))........
4d7c0 20 20 28 69 66 20 28 3d 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 28 6a 73 32 2d 75 6e 61 ..(if.(=.(js2-node-type.(js2-una
4d7e0 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 70 6e 29 29 20 6a 73 32 2d 45 52 52 4f 52 29 0a ry-node-operand.pn)).js2-ERROR).
4d800 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 70 61 72 73 65 20 66 61 69 6c 65 64 .............;;.The.parse.failed
4d820 2c 20 73 6f 20 70 72 65 74 65 6e 64 20 6c 69 6b 65 20 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e ,.so.pretend.like.nothing.happen
4d840 65 64 20 61 6e 64 20 72 65 73 74 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 ed.and.restore..............;;.t
4d860 68 65 20 70 72 65 76 69 6f 75 73 20 70 61 72 73 69 6e 67 20 73 74 61 74 65 2e 0a 20 20 20 20 20 he.previous.parsing.state.......
4d880 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ........(progn................(j
4d8a0 73 32 2d 74 73 2d 73 65 65 6b 20 74 73 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 s2-ts-seek.ts-state)............
4d8c0 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 ....(setq.js2-recorded-identifie
4d8e0 72 73 20 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20 rs.recorded-identifiers.........
4d900 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 70 .............js2-parsed-errors.p
4d920 61 72 73 65 64 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 arsed-errors)................;;.
4d940 41 6e 64 20 65 6e 73 75 72 65 20 74 68 65 20 63 61 6c 6c 65 72 20 6b 6e 6f 77 73 20 61 62 6f 75 And.ensure.the.caller.knows.abou
4d960 74 20 74 68 65 20 66 61 69 6c 75 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 t.the.failure.................ni
4d980 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 70 61 72 73 65 20 77 61 73 20 73 l)............;;.The.parse.was.s
4d9a0 75 63 63 65 73 73 66 75 6c 2c 20 73 6f 20 70 72 6f 63 65 73 73 20 61 6e 64 20 72 65 74 75 72 6e uccessful,.so.process.and.return
4d9c0 20 74 68 65 20 22 61 77 61 69 74 22 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 .the."await".............(js2-re
4d9e0 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 cord-face.'font-lock-keyword-fac
4da00 65 20 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c e.current-token)............(unl
4da20 65 73 73 20 28 6f 72 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69 ess.(or.(js2-inside-async-functi
4da40 6f 6e 29 20 28 65 71 75 61 6c 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 on).(equal.js2-nesting-of-functi
4da60 6f 6e 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d on.0))..............(js2-report-
4da80 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 61 77 61 69 74 22 20 6e 69 6c 0a 20 20 20 20 20 20 error."msg.bad.await".nil.......
4daa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 28 2d 20 .........................beg.(-.
4dac0 65 6e 64 20 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 6e 29 29 29 29 0a 0a 28 64 end.beg)))............pn))))..(d
4dae0 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 20 28 29 0a efun.js2-get-prop-name-token.().
4db00 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 ..(js2-get-token.(and.(>=.js2-la
4db20 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31 37 30 29 20 27 4b 45 59 57 4f 52 44 5f 49 53 5f nguage-version.170).'KEYWORD_IS_
4db40 4e 41 4d 45 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68 2d 70 72 6f 70 2d 6e NAME)))..(defun.js2-match-prop-n
4db60 61 6d 65 20 28 29 0a 20 20 22 43 6f 6e 73 75 6d 65 20 74 6f 6b 65 6e 20 61 6e 64 20 72 65 74 75 ame.()..."Consume.token.and.retu
4db80 72 6e 20 74 20 69 66 20 6e 65 78 74 20 74 6f 6b 65 6e 20 69 73 20 61 20 76 61 6c 69 64 20 70 72 rn.t.if.next.token.is.a.valid.pr
4dba0 6f 70 65 72 74 79 20 6e 61 6d 65 2e 0a 49 66 20 60 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 operty.name..If.`js2-language-ve
4dbc0 72 73 69 6f 6e 27 20 69 73 20 3e 3d 20 31 38 30 2c 20 61 20 6b 65 79 77 6f 72 64 20 6f 72 20 72 rsion'.is.>=.180,.a.keyword.or.r
4dbe0 65 73 65 72 76 65 64 20 77 6f 72 64 0a 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 76 61 6c 69 64 eserved.word.is.considered.valid
4dc00 20 6e 61 6d 65 20 61 73 20 77 65 6c 6c 2e 22 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 28 6a 73 32 .name.as.well."...(if.(memq.(js2
4dc20 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 20 60 28 2c 6a 73 32 2d 4e 41 4d -get-prop-name-token).`(,js2-NAM
4dc40 45 20 2c 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 74 0a 20 20 E.,js2-PRIVATE_NAME)).......t...
4dc60 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 ..(js2-unget-token).....nil))..(
4dc80 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 70 72 6f 70 2d 6e 61 6d 65 20 28 defun.js2-must-match-prop-name.(
4dca0 6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 20 6c 65 6e 29 0a 20 20 28 69 66 20 msg-id.&optional.pos.len)...(if.
4dcc0 28 6a 73 32 2d 6d 61 74 63 68 2d 70 72 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 74 0a 20 20 (js2-match-prop-name).......t...
4dce0 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d 73 67 2d 69 64 20 6e 69 6c 20 70 ..(js2-report-error.msg-id.nil.p
4dd00 6f 73 20 6c 65 6e 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 65 os.len).....nil))..(defun.js2-pe
4dd20 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6a 73 32 ek-token-or-eol.()..."Return.js2
4dd40 2d 45 4f 4c 20 69 66 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65 6e 20 69 6d 6d 65 64 69 61 74 65 -EOL.if.the.next.token.immediate
4dd60 6c 79 20 66 6f 6c 6c 6f 77 73 20 61 20 6e 65 77 6c 69 6e 65 2e 0a 45 6c 73 65 20 72 65 74 75 72 ly.follows.a.newline..Else.retur
4dd80 6e 73 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65 6e 2e 20 20 55 73 65 64 20 69 6e 20 73 69 74 75 ns.the.next.token...Used.in.situ
4dda0 61 74 69 6f 6e 73 20 77 68 65 72 65 20 77 65 20 64 6f 6e 27 74 0a 63 6f 6e 73 69 64 65 72 20 63 ations.where.we.don't.consider.c
4ddc0 65 72 74 61 69 6e 20 74 6f 6b 65 6e 20 74 79 70 65 73 20 76 61 6c 69 64 20 69 66 20 74 68 65 79 ertain.token.types.valid.if.they
4dde0 20 61 72 65 20 70 72 65 63 65 64 65 64 20 62 79 20 61 20 6e 65 77 6c 69 6e 65 2e 0a 4f 6e 65 20 .are.preceded.by.a.newline..One.
4de00 65 78 61 6d 70 6c 65 20 69 73 20 74 68 65 20 70 6f 73 74 66 69 78 20 2b 2b 20 6f 72 20 2d 2d 20 example.is.the.postfix.++.or.--.
4de20 6f 70 65 72 61 74 6f 72 2c 20 77 68 69 63 68 20 68 61 73 20 74 6f 20 62 65 20 6f 6e 20 74 68 65 operator,.which.has.to.be.on.the
4de40 0a 73 61 6d 65 20 6c 69 6e 65 20 61 73 20 69 74 73 20 6f 70 65 72 61 6e 64 2e 22 0a 20 20 28 6c .same.line.as.its.operand."...(l
4de60 65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 et.((tt.(js2-get-token))........
4de80 20 28 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 66 6f 6c 6c 6f 77 73 .(follows-eol.(js2-token-follows
4dea0 2d 65 6f 6c 2d 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 29 0a 20 20 -eol-p.(js2-current-token))))...
4dec0 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 28 69 66 20 66 6f 6c 6c ..(js2-unget-token).....(if.foll
4dee0 6f 77 73 2d 65 6f 6c 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4f 4c 0a 20 20 20 20 20 20 74 74 ows-eol.........js2-EOL.......tt
4df00 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 28 74 6f 6b 65 )))..(defun.js2-must-match.(toke
4df20 6e 20 6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 20 6c 65 6e 29 0a 20 20 22 4d n.msg-id.&optional.pos.len)..."M
4df40 61 74 63 68 20 6e 65 78 74 20 74 6f 6b 65 6e 20 74 6f 20 74 6f 6b 65 6e 20 63 6f 64 65 20 54 4f atch.next.token.to.token.code.TO
4df60 4b 45 4e 2c 20 6f 72 20 72 65 63 6f 72 64 20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 2e 0a 4d KEN,.or.record.a.syntax.error..M
4df80 53 47 2d 49 44 20 69 73 20 74 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 74 6f 20 72 65 SG-ID.is.the.error.message.to.re
4dfa0 70 6f 72 74 20 69 66 20 74 68 65 20 6d 61 74 63 68 20 66 61 69 6c 73 2e 0a 52 65 74 75 72 6e 73 port.if.the.match.fails..Returns
4dfc0 20 74 20 6f 6e 20 6d 61 74 63 68 2c 20 6e 69 6c 20 69 66 20 6e 6f 20 6d 61 74 63 68 2e 22 0a 20 .t.on.match,.nil.if.no.match."..
4dfe0 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 74 6f 6b 65 6e 20 74 29 0a 20 .(if.(js2-match-token.token.t)..
4e000 20 20 20 20 20 74 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d 73 67 .....t.....(js2-report-error.msg
4e020 2d 69 64 20 6e 69 6c 20 70 6f 73 20 6c 65 6e 29 0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d -id.nil.pos.len).....(js2-unget-
4e040 74 6f 6b 65 6e 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 token).....nil))..(defun.js2-mus
4e060 74 2d 6d 61 74 63 68 2d 6e 61 6d 65 20 28 6d 73 67 2d 69 64 29 0a 20 20 28 69 66 20 28 6a 73 32 t-match-name.(msg-id)...(if.(js2
4e080 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 20 74 29 0a 20 20 20 20 20 20 74 -match-token.js2-NAME.t).......t
4e0a0 0a 20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d .....(if.(eq.(js2-current-token-
4e0c0 74 79 70 65 29 20 6a 73 32 2d 52 45 53 45 52 56 45 44 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 type).js2-RESERVED).........(js2
4e0e0 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 72 65 73 65 72 76 65 64 2e 69 64 22 20 -report-error."msg.reserved.id".
4e100 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 (js2-current-token-string)).....
4e120 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d 73 67 2d 69 64 29 0a 20 20 20 20 ..(js2-report-error.msg-id).....
4e140 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a ..(js2-unget-token)).....nil))..
4e160 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69 (defun.js2-set-requires-activati
4e180 6f 6e 20 28 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 on.()...(if.(js2-function-node-p
4e1a0 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 29 0a 20 20 20 20 20 .js2-current-script-or-fn)......
4e1c0 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 6e 65 65 64 73 2d .(setf.(js2-function-node-needs-
4e1e0 61 63 74 69 76 61 74 69 6f 6e 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 activation.js2-current-script-or
4e200 2d 66 6e 29 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 68 65 63 6b 2d 61 63 74 69 -fn).t)))..(defun.js2-check-acti
4e220 76 61 74 69 6f 6e 2d 6e 61 6d 65 20 28 6e 61 6d 65 20 5f 74 6f 6b 65 6e 29 0a 20 20 28 77 68 65 vation-name.(name._token)...(whe
4e240 6e 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 3b 3b 20 73 n.(js2-inside-function).....;;.s
4e260 6b 69 70 20 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31 2e 32 20 63 68 65 63 6b 20 66 kip.language-version.1.2.check.f
4e280 72 6f 6d 20 52 68 69 6e 6f 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 73 74 72 69 6e 67 3d 20 22 rom.Rhino.....(if.(or.(string=."
4e2a0 61 72 67 75 6d 65 6e 74 73 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e arguments".name).............(an
4e2c0 64 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 61 63 74 69 76 61 74 69 6f 6e 2d 6e 61 6d 65 73 20 d.js2-compiler-activation-names.
4e2e0 20 3b 20 6f 6e 6c 79 20 75 73 65 64 20 69 6e 20 63 6f 64 65 67 65 6e 0a 20 20 20 20 20 20 20 20 .;.only.used.in.codegen.........
4e300 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 6e 61 6d 65 20 6a 73 32 2d 63 6f 6d 70 69 .........(gethash.name.js2-compi
4e320 6c 65 72 2d 61 63 74 69 76 61 74 69 6f 6e 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 ler-activation-names))).........
4e340 28 6a 73 32 2d 73 65 74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69 6f 6e 29 29 29 29 (js2-set-requires-activation))))
4e360 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 74 2d 69 73 2d 67 65 6e 65 72 61 74 6f 72 20 28 29 ..(defun.js2-set-is-generator.()
4e380 0a 20 20 28 6c 65 74 20 28 28 66 6e 2d 6e 6f 64 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 ...(let.((fn-node.js2-current-sc
4e3a0 72 69 70 74 2d 6f 72 2d 66 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73 32 ript-or-fn)).....(when.(and.(js2
4e3c0 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 -function-node-p.fn-node).......
4e3e0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 .........(not.(js2-function-node
4e400 2d 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 20 66 6e 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 -generator-type.fn-node)))......
4e420 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 .(setf.(js2-function-node-genera
4e440 74 6f 72 2d 74 79 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 tor-type.js2-current-script-or-f
4e460 6e 29 20 27 4c 45 47 41 43 59 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 74 2d n).'LEGACY))))..(defun.js2-must-
4e480 68 61 76 65 2d 78 6d 6c 20 28 29 0a 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 63 6f 6d 70 69 6c have-xml.()...(unless.js2-compil
4e4a0 65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 er-xml-available.....(js2-report
4e4c0 2d 65 72 72 6f 72 20 22 6d 73 67 2e 58 4d 4c 2e 6e 6f 74 2e 61 76 61 69 6c 61 62 6c 65 22 29 29 -error."msg.XML.not.available"))
4e4e0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 28 73 63 6f 70 65 29 )..(defun.js2-push-scope.(scope)
4e500 0a 20 20 22 50 75 73 68 20 53 43 4f 50 45 2c 20 61 20 60 6a 73 32 2d 73 63 6f 70 65 27 2c 20 6f ..."Push.SCOPE,.a.`js2-scope',.o
4e520 6e 74 6f 20 74 68 65 20 6c 65 78 69 63 61 6c 20 73 63 6f 70 65 20 63 68 61 69 6e 2e 22 0a 20 20 nto.the.lexical.scope.chain."...
4e540 28 63 6c 2d 61 73 73 65 72 74 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 20 73 63 6f 70 65 29 29 0a (cl-assert.(js2-scope-p.scope)).
4e560 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 75 6c 6c 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 ..(cl-assert.(null.(js2-scope-pa
4e580 72 65 6e 74 2d 73 63 6f 70 65 20 73 63 6f 70 65 29 29 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 rent-scope.scope)))...(cl-assert
4e5a0 20 28 6e 6f 74 20 28 65 71 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20 73 63 6f 70 .(not.(eq.js2-current-scope.scop
4e5c0 65 29 29 29 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 e)))...(setf.(js2-scope-parent-s
4e5e0 63 6f 70 65 20 73 63 6f 70 65 29 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 0a 20 20 cope.scope).js2-current-scope...
4e600 20 20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20 73 63 6f 70 65 29 29 0a ......js2-current-scope.scope)).
4e620 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 20 28 29 0a 20 20 28 73 .(defsubst.js2-pop-scope.()...(s
4e640 65 74 71 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 28 6a etq.js2-current-scope.........(j
4e660 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e s2-scope-parent-scope.js2-curren
4e680 74 2d 73 63 6f 70 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 74 65 72 2d 6c 6f 6f t-scope)))..(defun.js2-enter-loo
4e6a0 70 20 28 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20 28 70 75 73 68 20 6c 6f 6f 70 2d 6e 6f 64 65 20 p.(loop-node)...(push.loop-node.
4e6c0 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29 0a 20 20 28 70 75 73 68 20 6c 6f 6f 70 2d 6e 6f 64 65 20 js2-loop-set)...(push.loop-node.
4e6e0 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29 0a 20 20 28 6a 73 32 2d js2-loop-and-switch-set)...(js2-
4e700 70 75 73 68 2d 73 63 6f 70 65 20 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20 3b 3b 20 54 65 6c 6c 20 push-scope.loop-node)...;;.Tell.
4e720 74 68 65 20 63 75 72 72 65 6e 74 20 6c 61 62 65 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 28 69 the.current.labeled.statement.(i
4e740 66 20 61 6e 79 29 20 69 74 73 20 73 74 61 74 65 6d 65 6e 74 2c 0a 20 20 3b 3b 20 61 6e 64 20 73 f.any).its.statement,...;;.and.s
4e760 65 74 20 74 68 65 20 6a 75 6d 70 20 74 61 72 67 65 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 et.the.jump.target.of.the.first.
4e780 6c 61 62 65 6c 20 74 6f 20 74 68 65 20 6c 6f 6f 70 2e 0a 20 20 3b 3b 20 54 68 65 73 65 20 61 72 label.to.the.loop....;;.These.ar
4e7a0 65 20 75 73 65 64 20 69 6e 20 60 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 74 69 6e 75 65 27 20 74 e.used.in.`js2-parse-continue'.t
4e7c0 6f 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68 65 0a 20 20 3b 3b 20 63 6f 6e 74 69 6e 75 65 20 o.verify.that.the...;;.continue.
4e7e0 74 61 72 67 65 74 20 69 73 20 61 6e 20 61 63 74 75 61 6c 20 6c 61 62 65 6c 65 64 20 6c 6f 6f 70 target.is.an.actual.labeled.loop
4e800 2e 20 20 28 41 6e 64 20 66 6f 72 20 63 6f 64 65 67 65 6e 2e 29 0a 20 20 28 77 68 65 6e 20 6a 73 ...(And.for.codegen.)...(when.js
4e820 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6c 61 2-labeled-stmt.....(setf.(js2-la
4e840 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6a 73 32 2d 6c 61 62 65 6c 65 64 beled-stmt-node-stmt.js2-labeled
4e860 2d 73 74 6d 74 29 20 6c 6f 6f 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d -stmt).loop-node...........(js2-
4e880 6c 61 62 65 6c 2d 6e 6f 64 65 2d 6c 6f 6f 70 20 28 63 61 72 20 28 6a 73 32 2d 6c 61 62 65 6c 65 label-node-loop.(car.(js2-labele
4e8a0 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 d-stmt-node-labels..............
4e8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6c 61 62 65 ........................js2-labe
4e8e0 6c 65 64 2d 73 74 6d 74 29 29 29 20 6c 6f 6f 70 2d 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e led-stmt))).loop-node)))..(defun
4e900 20 6a 73 32 2d 65 78 69 74 2d 6c 6f 6f 70 20 28 29 0a 20 20 28 70 6f 70 20 6a 73 32 2d 6c 6f 6f .js2-exit-loop.()...(pop.js2-loo
4e920 70 2d 73 65 74 29 0a 20 20 28 70 6f 70 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63 p-set)...(pop.js2-loop-and-switc
4e940 68 2d 73 65 74 29 0a 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29 0a 0a 28 64 65 66 73 h-set)...(js2-pop-scope))..(defs
4e960 75 62 73 74 20 6a 73 32 2d 65 6e 74 65 72 2d 73 77 69 74 63 68 20 28 73 77 69 74 63 68 2d 6e 6f ubst.js2-enter-switch.(switch-no
4e980 64 65 29 0a 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 73 77 69 74 63 68 2d 6e 6f 64 de)...(js2-push-scope.switch-nod
4e9a0 65 29 0a 20 20 28 70 75 73 68 20 73 77 69 74 63 68 2d 6e 6f 64 65 20 6a 73 32 2d 6c 6f 6f 70 2d e)...(push.switch-node.js2-loop-
4e9c0 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d and-switch-set))..(defsubst.js2-
4e9e0 65 78 69 74 2d 73 77 69 74 63 68 20 28 29 0a 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 exit-switch.()...(js2-pop-scope)
4ea00 0a 20 20 28 70 6f 70 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29 ...(pop.js2-loop-and-switch-set)
4ea20 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 28 )..(defsubst.js2-get-directive.(
4ea40 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 4e 4f 44 45 27 73 20 76 61 6c 75 65 20 69 66 20 node)..."Return.NODE's.value.if.
4ea60 69 74 20 69 73 20 61 20 64 69 72 65 63 74 69 76 65 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 it.is.a.directive,.nil.otherwise
4ea80 2e 0a 0a 41 20 64 69 72 65 63 74 69 76 65 20 69 73 20 61 6e 20 6f 74 68 65 72 77 69 73 65 2d 6d ...A.directive.is.an.otherwise-m
4eaa0 65 61 6e 69 6e 67 6c 65 73 73 20 65 78 70 72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 0a eaningless.expression.statement.
4eac0 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 consisting.of.a.string.literal,.
4eae0 73 75 63 68 20 61 73 20 5c 22 75 73 65 20 73 74 72 69 63 74 5c 22 2e 22 0a 20 20 28 61 6e 64 20 such.as.\"use.strict\"."...(and.
4eb00 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 (js2-expr-stmt-node-p.node).....
4eb20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 28 73 65 74 71 20 6e 6f 64 65 ...(js2-string-node-p.(setq.node
4eb40 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 6f 64 65 29 29 .(js2-expr-stmt-node-expr.node))
4eb60 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 )........(js2-string-node-value.
4eb80 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 20 28 26 6f 70 74 69 node)))..(defun.js2-parse.(&opti
4eba0 6f 6e 61 6c 20 62 75 66 20 63 62 29 0a 20 20 22 54 65 6c 6c 20 74 68 65 20 6a 73 32 20 70 61 72 onal.buf.cb)..."Tell.the.js2.par
4ebc0 73 65 72 20 74 6f 20 70 61 72 73 65 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 4a 61 76 61 53 63 72 ser.to.parse.a.region.of.JavaScr
4ebe0 69 70 74 2e 0a 0a 42 55 46 20 69 73 20 61 20 62 75 66 66 65 72 20 6f 72 20 62 75 66 66 65 72 20 ipt...BUF.is.a.buffer.or.buffer.
4ec00 6e 61 6d 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 6f 64 65 20 74 6f 20 70 61 72 73 name.containing.the.code.to.pars
4ec20 65 2e 0a 43 61 6c 6c 20 60 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 27 20 66 69 72 73 74 e..Call.`narrow-to-region'.first
4ec40 20 74 6f 20 70 61 72 73 65 20 6f 6e 6c 79 20 70 61 72 74 20 6f 66 20 74 68 65 20 62 75 66 66 65 .to.parse.only.part.of.the.buffe
4ec60 72 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 41 53 54 20 72 6f 6f 74 20 6e 6f 64 65 20 69 r...The.returned.AST.root.node.i
4ec80 73 20 67 69 76 65 6e 20 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 s.given.some.additional.properti
4eca0 65 73 3a 0a 20 20 60 6e 6f 64 65 2d 63 6f 75 6e 74 27 20 2d 20 74 6f 74 61 6c 20 6e 75 6d 62 65 es:...`node-count'.-.total.numbe
4ecc0 72 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 74 68 65 20 41 53 54 0a 20 20 60 62 75 66 66 65 72 27 r.of.nodes.in.the.AST...`buffer'
4ece0 20 2d 20 42 55 46 2e 20 20 54 68 65 20 62 75 66 66 65 72 20 69 74 20 72 65 66 65 72 73 20 74 6f .-.BUF...The.buffer.it.refers.to
4ed00 20 6d 61 79 20 63 68 61 6e 67 65 20 6f 72 20 62 65 20 6b 69 6c 6c 65 64 2c 0a 20 20 20 20 20 20 .may.change.or.be.killed,.......
4ed20 20 20 20 20 20 20 20 73 6f 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 6e 65 63 65 73 .......so.the.value.is.not.neces
4ed40 73 61 72 69 6c 79 20 72 65 6c 69 61 62 6c 65 2e 0a 0a 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 63 61 sarily.reliable...An.optional.ca
4ed60 6c 6c 62 61 63 6b 20 43 42 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 20 74 6f 20 72 65 llback.CB.can.be.specified.to.re
4ed80 70 6f 72 74 20 70 61 72 73 69 6e 67 0a 70 72 6f 67 72 65 73 73 2e 20 20 49 66 20 28 66 75 6e 63 port.parsing.progress...If.(func
4eda0 74 69 6f 6e 70 20 43 42 29 20 72 65 74 75 72 6e 73 20 74 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 tionp.CB).returns.t,.it.will.be.
4edc0 63 61 6c 6c 65 64 20 77 69 74 68 0a 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 6e 75 6d called.with.the.current.line.num
4ede0 62 65 72 20 6f 6e 63 65 20 62 65 66 6f 72 65 20 70 61 72 73 69 6e 67 20 62 65 67 69 6e 73 2c 20 ber.once.before.parsing.begins,.
4ee00 74 68 65 6e 20 61 67 61 69 6e 0a 65 61 63 68 20 74 69 6d 65 20 74 68 65 20 6c 65 78 65 72 20 72 then.again.each.time.the.lexer.r
4ee20 65 61 63 68 65 73 20 61 20 6e 65 77 20 6c 69 6e 65 20 6e 75 6d 62 65 72 2e 0a 0a 43 42 20 63 61 eaches.a.new.line.number...CB.ca
4ee40 6e 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 73 79 n.also.be.a.list.of.the.form.(sy
4ee60 6d 62 6f 6c 20 63 62 20 2e 2e 2e 29 20 74 6f 20 73 70 65 63 69 66 79 0a 6d 75 6c 74 69 70 6c 65 mbol.cb....).to.specify.multiple
4ee80 20 63 61 6c 6c 62 61 63 6b 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 63 72 69 74 65 72 .callbacks.with.different.criter
4eea0 69 61 2e 20 20 45 61 63 68 20 73 79 6d 62 6f 6c 20 69 73 20 61 0a 63 72 69 74 65 72 69 6f 6e 20 ia...Each.symbol.is.a.criterion.
4eec0 6b 65 79 77 6f 72 64 2c 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6c 65 6d 65 keyword,.and.the.following.eleme
4eee0 6e 74 20 69 73 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 74 6f 0a 63 61 6c 6c 0a 0a 20 20 3a 6c nt.is.the.callback.to.call....:l
4ef00 69 6e 65 20 20 2d 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65 20 6c 69 6e 65 20 ine..-.called.whenever.the.line.
4ef20 6e 75 6d 62 65 72 20 63 68 61 6e 67 65 73 0a 20 20 3a 74 6f 6b 65 6e 20 2d 20 63 61 6c 6c 65 64 number.changes...:token.-.called
4ef40 20 66 6f 72 20 65 61 63 68 20 6e 65 77 20 74 6f 6b 65 6e 20 63 6f 6e 73 75 6d 65 64 0a 0a 54 68 .for.each.new.token.consumed..Th
4ef60 65 20 6c 69 73 74 20 6f 66 20 63 72 69 74 65 72 69 61 20 63 6f 75 6c 64 20 62 65 20 65 78 74 65 e.list.of.criteria.could.be.exte
4ef80 6e 64 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 65 6e 74 65 72 69 6e 67 20 6f 72 0a 6c 65 61 76 nded.to.include.entering.or.leav
4efa0 69 6e 67 20 61 20 73 74 61 74 65 6d 65 6e 74 2c 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 ing.a.statement,.an.expression,.
4efc0 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2e 22 0a 20 20 28 69 66 or.a.function.definition."...(if
4efe0 20 28 61 6e 64 20 63 62 20 28 6e 6f 74 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 62 29 29 29 0a 20 .(and.cb.(not.(functionp.cb)))..
4f000 20 20 20 20 20 28 65 72 72 6f 72 20 22 63 72 69 74 65 72 69 61 20 63 61 6c 6c 62 61 63 6b 73 20 .....(error."criteria.callbacks.
4f020 6e 6f 74 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 22 29 29 0a 20 20 28 6c 65 74 20 28 28 not.yet.implemented"))...(let.((
4f040 69 6e 68 69 62 69 74 2d 70 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 0a 20 20 inhibit-point-motion-hooks.t)...
4f060 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c ......(js2-compiler-xml-availabl
4f080 65 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31 36 30 29 29 e.(>=.js2-language-version.160))
4f0a0 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 69 73 20 61 20 72 65 63 75 72 73 69 76 65 2d .........;;.This.is.a.recursive-
4f0c0 64 65 73 63 65 6e 74 20 70 61 72 73 65 72 2c 20 73 6f 20 67 69 76 65 20 69 74 20 61 20 62 69 67 descent.parser,.so.give.it.a.big
4f0e0 20 73 74 61 63 6b 2e 0a 20 20 20 20 20 20 20 20 28 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 .stack..........(max-lisp-eval-d
4f100 65 70 74 68 20 28 6d 61 78 20 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 20 33 30 epth.(max.max-lisp-eval-depth.30
4f120 30 30 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 78 2d 73 70 65 63 70 64 6c 2d 73 69 7a 65 20 28 00)).........(max-specpdl-size.(
4f140 6d 61 78 20 6d 61 78 2d 73 70 65 63 70 64 6c 2d 73 69 7a 65 20 33 30 30 30 29 29 0a 20 20 20 20 max.max-specpdl-size.3000)).....
4f160 20 20 20 20 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 0a 20 20 20 20 20 ....(case-fold-search.nil)......
4f180 20 20 20 61 73 74 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ...ast).....(with-current-buffer
4f1a0 20 28 6f 72 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 .(or.buf.(current-buffer))......
4f1c0 20 28 73 65 74 71 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 20 6e 69 6c 0a .(setq.js2-scanned-comments.nil.
4f1e0 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 6e 69 ............js2-parsed-errors.ni
4f200 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 l.............js2-parsed-warning
4f220 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f s.nil.............js2-imenu-reco
4f240 72 64 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 rder.nil.............js2-imenu-f
4f260 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d unction-map.nil.............js2-
4f280 6c 61 62 65 6c 2d 73 65 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 69 74 2d 73 label-set.nil).......(js2-init-s
4f2a0 63 61 6e 6e 65 72 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 73 74 20 28 6a 73 32 2d 64 6f 2d canner).......(setq.ast.(js2-do-
4f2c0 70 61 72 73 65 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 74 73 2d 68 69 74 parse)).......(unless.js2-ts-hit
4f2e0 2d 65 6f 66 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 -eof.........(js2-report-error."
4f300 6d 73 67 2e 67 6f 74 2e 73 79 6e 74 61 78 2e 65 72 72 6f 72 73 22 20 28 6c 65 6e 67 74 68 20 6a msg.got.syntax.errors".(length.j
4f320 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 s2-parsed-errors))).......(setf.
4f340 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 61 73 74 29 20 6a 73 32 2d 70 61 (js2-ast-root-errors.ast).js2-pa
4f360 72 73 65 64 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 rsed-errors.............(js2-ast
4f380 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 61 73 74 29 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 -root-warnings.ast).js2-parsed-w
4f3a0 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 77 65 20 64 69 64 6e 27 74 20 66 arnings).......;;.if.we.didn't.f
4f3c0 69 6e 64 20 61 6e 79 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 70 75 74 20 61 20 64 75 6d 6d ind.any.declarations,.put.a.dumm
4f3e0 79 20 69 6e 20 74 68 69 73 20 6c 69 73 74 20 73 6f 20 77 65 0a 20 20 20 20 20 20 3b 3b 20 64 6f y.in.this.list.so.we.......;;.do
4f400 6e 27 74 20 65 6e 64 20 75 70 20 72 65 2d 70 61 72 73 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 n't.end.up.re-parsing.the.buffer
4f420 20 69 6e 20 60 6a 73 32 2d 6d 6f 64 65 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 .in.`js2-mode-create-imenu-index
4f440 27 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 '.......(unless.js2-imenu-record
4f460 65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 er.........(setq.js2-imenu-recor
4f480 64 65 72 20 27 65 6d 70 74 79 29 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a der.'empty)).......(run-hooks.'j
4f4a0 73 32 2d 70 61 72 73 65 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 61 73 s2-parse-finished-hook).......as
4f4c0 74 29 29 29 0a 0a 3b 3b 20 43 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 52 68 69 6e 6f 27 73 20 t)))..;;.Corresponds.to.Rhino's.
4f4e0 50 61 72 73 65 72 2e 70 61 72 73 65 28 29 20 6d 65 74 68 6f 64 2e 0a 28 64 65 66 75 6e 20 6a 73 Parser.parse().method..(defun.js
4f500 32 2d 64 6f 2d 70 61 72 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 2-do-parse.()..."Parse.current.b
4f520 75 66 66 65 72 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 70 6f 69 6e uffer.starting.from.current.poin
4f540 74 2e 0a 53 63 61 6e 6e 65 72 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 t..Scanner.should.be.initialized
4f560 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 ."...(let.((pos.js2-ts-cursor)..
4f580 20 20 20 20 20 20 20 28 65 6e 64 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 20 20 3b 20 69 6e .......(end.js2-ts-cursor)..;.in
4f5a0 20 63 61 73 65 20 66 69 6c 65 20 69 73 20 65 6d 70 74 79 0a 20 20 20 20 20 20 20 20 72 6f 6f 74 .case.file.is.empty.........root
4f5c0 20 6e 20 74 74 0a 20 20 20 20 20 20 20 20 28 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c .n.tt.........(in-directive-prol
4f5e0 6f 67 75 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 ogue.t).........(js2-in-use-stri
4f600 63 74 2d 64 69 72 65 63 74 69 76 65 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 ct-directive.js2-in-use-strict-d
4f620 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 irective).........directive)....
4f640 20 3b 3b 20 69 6e 69 74 69 61 6c 69 7a 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 70 61 72 73 .;;.initialize.buffer-local.pars
4f660 69 6e 67 20 76 61 72 73 0a 20 20 20 20 28 73 65 74 66 20 72 6f 6f 74 20 28 6d 61 6b 65 2d 6a 73 ing.vars.....(setf.root.(make-js
4f680 32 2d 61 73 74 2d 72 6f 6f 74 20 3a 62 75 66 66 65 72 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 2-ast-root.:buffer.(buffer-name)
4f6a0 20 3a 70 6f 73 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e 74 .:pos.pos)...........js2-current
4f6c0 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 -script-or-fn.root...........js2
4f6e0 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73 -current-scope.root...........js
4f700 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 20 30 0a 20 20 20 20 20 20 20 20 2-nesting-of-function.0.........
4f720 20 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 ..js2-labeled-stmt.nil..........
4f740 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 6e 69 6c 20 20 3b .js2-recorded-identifiers.nil..;
4f760 20 66 6f 72 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 .for.js2-highlight...........js2
4f780 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 20 6a 73 32 2d 6d 6f 64 -in-use-strict-directive.js2-mod
4f7a0 65 2d 61 73 73 75 6d 65 2d 73 74 72 69 63 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 e-assume-strict).....(while.(/=.
4f7c0 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 45 4f (setq.tt.(js2-get-token)).js2-EO
4f7e0 46 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 F).......(if.(=.tt.js2-FUNCTION)
4f800 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ...........(progn.............(s
4f820 65 74 71 20 6e 20 28 69 66 20 6a 73 32 2d 63 61 6c 6c 65 64 2d 62 79 2d 63 6f 6d 70 69 6c 65 2d etq.n.(if.js2-called-by-compile-
4f840 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 function........................
4f860 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 .(js2-parse-function-expr)......
4f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 .................(js2-parse-func
4f8a0 74 69 6f 6e 2d 73 74 6d 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 74 20 61 20 66 tion-stmt)))).........;;.not.a.f
4f8c0 75 6e 63 74 69 6f 6e 20 2d 20 70 61 72 73 65 20 61 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 unction.-.parse.a.statement.....
4f8e0 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 ....(js2-unget-token).........(s
4f900 65 74 71 20 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 0a 20 20 20 etq.n.(js2-parse-statement))....
4f920 20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65 .....(when.in-directive-prologue
4f940 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 65 63 74 69 76 65 20 28 6a 73 32 2d ...........(setq.directive.(js2-
4f960 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e get-directive.n))...........(con
4f980 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 64 69 72 65 63 74 69 76 65 29 0a 20 d............((null.directive)..
4f9a0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 ...........(setq.in-directive-pr
4f9c0 6f 6c 6f 67 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 ologue.nil))............((string
4f9e0 3d 20 64 69 72 65 63 74 69 76 65 20 22 75 73 65 20 73 74 72 69 63 74 22 29 0a 20 20 20 20 20 20 =.directive."use.strict").......
4fa00 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 ......(setq.js2-in-use-strict-di
4fa20 72 65 63 74 69 76 65 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 61 64 64 20 66 75 6e 63 rective.t))))).......;;.add.func
4fa40 74 69 6f 6e 20 6f 72 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 73 63 72 69 70 74 0a 20 20 20 20 tion.or.statement.to.script.....
4fa60 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 6e 29 29 0a 20 20 ..(setq.end.(js2-node-end.n))...
4fa80 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 20 72 6f 6f 74 20 6e 29 ....(js2-block-node-push.root.n)
4faa0 29 0a 20 20 20 20 3b 3b 20 61 64 64 20 63 6f 6d 6d 65 6e 74 73 20 74 6f 20 72 6f 6f 74 20 69 6e ).....;;.add.comments.to.root.in
4fac0 20 6c 65 78 69 63 61 6c 20 6f 72 64 65 72 0a 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 73 63 61 .lexical.order.....(when.js2-sca
4fae0 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 3b 3b 20 69 66 20 77 65 20 66 69 6e nned-comments.......;;.if.we.fin
4fb00 64 20 61 20 63 6f 6d 6d 65 6e 74 20 62 65 79 6f 6e 64 20 65 6e 64 20 6f 66 20 6e 6f 72 6d 61 6c d.a.comment.beyond.end.of.normal
4fb20 20 6b 69 64 73 2c 20 75 73 65 20 69 74 73 20 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 .kids,.use.its.end.......(setq.e
4fb40 6e 64 20 28 6d 61 78 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 28 63 6c 2d 66 69 nd.(max.end.(js2-node-end.(cl-fi
4fb60 72 73 74 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 rst.js2-scanned-comments))))....
4fb80 20 20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d ...(dolist.(comment.js2-scanned-
4fba0 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6d 6d 65 6e 74 20 comments).........(push.comment.
4fbc0 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20 72 6f 6f 74 29 29 0a 20 20 (js2-ast-root-comments.root))...
4fbe0 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f ......(js2-node-add-children.roo
4fc00 74 20 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 t.comment))).....(setf.(js2-node
4fc20 2d 6c 65 6e 20 72 6f 6f 74 29 20 28 2d 20 65 6e 64 20 70 6f 73 29 29 0a 20 20 20 20 28 73 65 74 -len.root).(-.end.pos)).....(set
4fc40 71 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 72 6f 6f 74 29 20 20 3b 20 4d 61 6b 65 20 73 75 72 q.js2-mode-ast.root)..;.Make.sur
4fc60 65 20 74 68 69 73 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 63 61 6c 6c 62 61 63 6b e.this.is.available.for.callback
4fc80 73 2e 0a 20 20 20 20 3b 3b 20 47 69 76 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 20 63 68 61 6e s......;;.Give.extensions.a.chan
4fca0 63 65 20 74 6f 20 6d 75 63 6b 20 77 69 74 68 20 74 68 69 6e 67 73 20 62 65 66 6f 72 65 20 68 69 ce.to.muck.with.things.before.hi
4fcc0 67 68 6c 69 67 68 74 69 6e 67 20 73 74 61 72 74 73 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 6a 73 ghlighting.starts......(let.((js
4fce0 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 20 6a 73 32 2d 61 64 64 69 74 69 6f 2-additional-externs.js2-additio
4fd00 6e 61 6c 2d 65 78 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 66 69 6c 74 65 72 2d nal-externs)).......(js2-filter-
4fd20 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 parsed-warnings).......(save-exc
4fd40 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 2d 70 ursion.........(run-hooks.'js2-p
4fd60 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32 ost-parse-callbacks)).......(js2
4fd80 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64 65 63 6c 61 72 65 64 2d 76 61 72 73 29 29 0a 20 20 20 -highlight-undeclared-vars))....
4fda0 20 72 6f 6f 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 69 6c 74 65 72 2d 70 61 72 73 65 .root))..(defun.js2-filter-parse
4fdc0 64 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 60 6a 73 32 2d 70 61 72 d-warnings.()..."Remove.`js2-par
4fde0 73 65 64 2d 77 61 72 6e 69 6e 67 73 27 20 65 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 6d 61 74 63 sed-warnings'.elements.that.matc
4fe00 68 20 60 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69 6e 67 73 27 2e 22 0a 20 20 28 77 68 h.`js2-ignored-warnings'."...(wh
4fe20 65 6e 20 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 28 73 65 74 en.js2-ignored-warnings.....(set
4fe40 71 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 q.js2-parsed-warnings...........
4fe60 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 (cl-remove-if............(lambda
4fe80 20 28 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d .(warning)..............(let.((m
4fea0 73 67 20 28 63 61 61 72 20 77 61 72 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 sg.(caar.warning))).............
4fec0 20 20 20 28 6d 65 6d 62 65 72 20 6d 73 67 20 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69 ...(member.msg.js2-ignored-warni
4fee0 6e 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72 ngs)))............js2-parsed-war
4ff00 6e 69 6e 67 73 29 29 29 0a 20 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 29 0a nings)))...js2-parsed-warnings).
4ff20 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 63 6c 6f 73 75 .(defun.js2-parse-function-closu
4ff40 72 65 2d 62 6f 64 79 20 28 66 6e 2d 6e 6f 64 65 29 0a 20 20 22 50 61 72 73 65 20 61 20 4a 61 76 re-body.(fn-node)..."Parse.a.Jav
4ff60 61 53 63 72 69 70 74 20 31 2e 38 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 75 72 65 20 62 6f 64 aScript.1.8.function.closure.bod
4ff80 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 y."...(let.((js2-nesting-of-func
4ffa0 74 69 6f 6e 20 28 31 2b 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e tion.(1+.js2-nesting-of-function
4ffc0 29 29 29 0a 20 20 20 20 28 69 66 20 6a 73 32 2d 74 73 2d 68 69 74 2d 65 6f 66 0a 20 20 20 20 20 ))).....(if.js2-ts-hit-eof......
4ffe0 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 ...(js2-report-error."msg.no.bra
50000 63 65 2e 62 6f 64 79 22 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ce.body".nil....................
50020 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 .......(js2-node-pos.fn-node)...
50040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 6a 73 32 2d 74 ........................(-.js2-t
50060 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 29 s-cursor.(js2-node-pos.fn-node))
50080 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 66 ).......(js2-node-add-children.f
500a0 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-node..........................
500c0 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 ....(setf.(js2-function-node-bod
500e0 79 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.fn-node)......................
50100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 20 74 29 ..............(js2-parse-expr.t)
50120 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e )))))..(defun.js2-parse-function
50140 2d 62 6f 64 79 20 28 66 6e 2d 6e 6f 64 65 29 0a 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 -body.(fn-node)...(js2-must-matc
50160 68 20 6a 73 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 62 6f 64 79 22 0a 20 20 20 h.js2-LC."msg.no.brace.body"....
50180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 66 6e 2d ...............(js2-node-pos.fn-
501a0 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 6a 73 32 2d 74 node)...................(-.js2-t
501c0 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 29 s-cursor.(js2-node-pos.fn-node))
501e0 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 )...(let.((pos.(js2-current-toke
50200 6e 2d 62 65 67 29 29 20 20 20 20 20 20 20 20 20 3b 20 4c 43 20 70 6f 73 69 74 69 6f 6e 0a 20 20 n-beg)).........;.LC.position...
50220 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 29 ......(pn.(make-js2-block-node))
50240 20 20 3b 20 73 74 61 72 74 73 20 61 74 20 4c 43 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 ..;.starts.at.LC.position.......
50260 20 20 74 74 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 6e 6f 74 2d 69 6e 2d ..tt.........end.........not-in-
50280 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 0a directive-prologue.........node.
502a0 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 ........directive).....(cl-incf.
502c0 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 75 6e js2-nesting-of-function).....(un
502e0 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 wind-protect.........(while.(not
50300 20 28 6f 72 20 28 3d 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e .(or.(=.(setq.tt.(js2-peek-token
50320 29 29 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )).js2-ERROR)...................
50340 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(=.tt.js2-EOF)............
50360 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 52 43 29 29 29 0a 20 20 20 .............(=.tt.js2-RC)))....
50380 20 20 20 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 0a 20 20 20 20 .......(js2-block-node-push.....
503a0 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 74 74 20 .......pn............(if.(/=.tt.
503c0 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 js2-FUNCTION)................(if
503e0 20 6e 6f 74 2d 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65 0a 20 20 20 20 20 .not-in-directive-prologue......
50400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 ..............(js2-parse-stateme
50420 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 nt)..................(setq.node.
50440 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 (js2-parse-statement)...........
50460 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 20 28 6a 73 32 2d 67 65 74 2d .............directive.(js2-get-
50480 64 69 72 65 63 74 69 76 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 directive.node))................
504a0 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c ..(cond...................((null
504c0 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .directive)....................(
504e0 73 65 74 71 20 6e 6f 74 2d 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65 20 74 setq.not-in-directive-prologue.t
50500 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64 ))...................((string=.d
50520 69 72 65 63 74 69 76 65 20 22 75 73 65 20 73 74 72 69 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 irective."use.strict")..........
50540 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 61 63 6b 20 75 70 20 61 6e 64 20 72 65 70 61 72 73 65 ..........;;.Back.up.and.reparse
50560 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 62 65 63 61 75 73 65 20 6e 65 77 20 72 75 6c 65 73 .the.function,.because.new.rules
50580 20 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 .apply....................;;.to.
505a0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 the.function.name.and.parameters
505c0 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 .....................(when.(not.
505e0 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 js2-in-use-strict-directive)....
50600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 6e 2d 75 ..................(setq.js2-in-u
50620 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 se-strict-directive.t)..........
50640 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 70 61 72 73 65 20 74 29 29 29 ............(throw.'reparse.t)))
50660 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 )..................node)........
50680 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 ......(js2-get-token)...........
506a0 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 29 29 29 29 0a ...(js2-parse-function-stmt)))).
506c0 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 ......(cl-decf.js2-nesting-of-fu
506e0 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 nction)).....(setq.end.(js2-curr
50700 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 20 20 3b 20 61 73 73 75 6d 65 20 6e 6f 20 63 75 72 ent-token-end))..;.assume.no.cur
50720 6c 79 20 61 6e 64 20 6c 65 61 76 65 20 61 74 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 0a 20 20 ly.and.leave.at.current.token...
50740 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73 ..(if.(js2-must-match.js2-RC."ms
50760 67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74 65 72 2e 62 6f 64 79 22 20 70 6f 73 29 0a 20 20 20 20 g.no.brace.after.body".pos).....
50780 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e ....(setq.end.(js2-current-token
507a0 2d 65 6e 64 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 -end))).....(setf.(js2-node-pos.
507c0 70 6e 29 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 pn).pos...........(js2-node-len.
507e0 70 6e 29 20 28 2d 20 65 6e 64 20 70 6f 73 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d pn).(-.end.pos)).....(setf.(js2-
50800 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 2d 6e 6f 64 65 29 20 70 6e 29 0a function-node-body.fn-node).pn).
50820 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 66 6e 2d 6e 6f ....(js2-node-add-children.fn-no
50840 64 65 20 70 6e 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 65 66 69 de.pn).....pn))..(defun.js2-defi
50860 6e 65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f 6c 73 20 28 6e 6f 64 65 20 64 65 63 6c 2d 74 ne-destruct-symbols.(node.decl-t
50880 79 70 65 20 66 61 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e ype.face.&optional.ignore-not-in
508a0 2d 62 6c 6f 63 6b 29 0a 20 20 22 44 65 63 6c 61 72 65 20 61 6e 64 20 66 6f 6e 74 69 66 79 20 64 -block)..."Declare.and.fontify.d
508c0 65 73 74 72 75 63 74 75 72 69 6e 67 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 73 69 64 65 20 4e estructuring.parameters.inside.N
508e0 4f 44 45 2e 0a 4e 4f 44 45 20 69 73 20 65 69 74 68 65 72 20 60 6a 73 32 2d 61 72 72 61 79 2d 6e ODE..NODE.is.either.`js2-array-n
50900 6f 64 65 27 2c 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27 2c 20 6f 72 20 60 6a 73 32 ode',.`js2-object-node',.or.`js2
50920 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 0a 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 60 -name-node'...Return.a.list.of.`
50940 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 6e 6f 64 65 73 20 72 65 70 72 65 73 65 6e 74 69 6e js2-name-node'.nodes.representin
50960 67 20 74 68 65 20 73 79 6d 62 6f 6c 73 0a 64 65 63 6c 61 72 65 64 3b 20 70 72 6f 62 61 62 6c 79 g.the.symbols.declared;.probably
50980 20 74 6f 20 63 68 65 63 6b 20 74 68 65 6d 20 66 6f 72 20 65 72 72 6f 72 73 2e 22 0a 20 20 28 6c .to.check.them.for.errors."...(l
509a0 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 73 20 28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 et.((name-nodes.(js2--collect-ta
509c0 72 67 65 74 2d 73 79 6d 62 6f 6c 73 20 6e 6f 64 65 20 74 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 rget-symbols.node.t))).....(doli
509e0 73 74 20 28 6e 6f 64 65 20 6e 61 6d 65 2d 6e 6f 64 65 73 29 0a 20 20 20 20 20 20 28 6c 65 74 20 st.(node.name-nodes).......(let.
50a00 28 6c 65 66 74 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 (leftpos).........(js2-define-sy
50a20 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 mbol.decl-type.(js2-name-node-na
50a40 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me.node)........................
50a60 20 20 20 20 6e 6f 64 65 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e 2d 62 6c 6f 63 6b 29 0a 20 20 ....node.ignore-not-in-block)...
50a80 20 20 20 20 20 20 28 77 68 65 6e 20 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ......(when.face...........(js2-
50aa0 73 65 74 2d 66 61 63 65 20 28 73 65 74 71 20 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 set-face.(setq.leftpos.(js2-node
50ac0 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -abs-pos.node)).................
50ae0 20 20 20 20 20 20 20 20 28 2b 20 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e ........(+.leftpos.(js2-node-len
50b00 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .node)).........................
50b20 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29 0a 20 20 20 20 6e 61 6d 65 2d 6e 6f 64 65 73 29 face.'record)))).....name-nodes)
50b40 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 69 6c 6c 65 67 61 6c 2d 73 74 72 69 63 74 2d 69 64 )..(defvar.js2-illegal-strict-id
50b60 65 6e 74 69 66 69 65 72 73 0a 20 20 27 28 22 65 76 61 6c 22 20 22 61 72 67 75 6d 65 6e 74 73 22 entifiers...'("eval"."arguments"
50b80 29 0a 20 20 22 49 64 65 6e 74 69 66 69 65 72 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 73 20 )..."Identifiers.not.allowed.as.
50ba0 76 61 72 69 61 62 6c 65 73 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2e 22 29 0a 0a 28 64 65 variables.in.strict.mode.")..(de
50bc0 66 75 6e 20 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 fun.js2-check-strict-identifier.
50be0 28 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 22 43 68 65 63 6b 20 74 68 61 74 20 4e 41 4d 45 2d 4e (name-node)..."Check.that.NAME-N
50c00 4f 44 45 20 6d 61 6b 65 73 20 61 20 6c 65 67 61 6c 20 73 74 72 69 63 74 20 6d 6f 64 65 20 69 64 ODE.makes.a.legal.strict.mode.id
50c20 65 6e 74 69 66 69 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 entifier."...(when.js2-in-use-st
50c40 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 61 6d 2d rict-directive.....(let.((param-
50c60 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f name.(js2-name-node-name.name-no
50c80 64 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 70 61 72 61 6d 2d de))).......(when.(member.param-
50ca0 6e 61 6d 65 20 6a 73 32 2d 69 6c 6c 65 67 61 6c 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 name.js2-illegal-strict-identifi
50cc0 65 72 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 ers).........(js2-report-error."
50ce0 6d 73 67 2e 62 61 64 2e 69 64 2e 73 74 72 69 63 74 22 20 70 61 72 61 6d 2d 6e 61 6d 65 0a 20 20 msg.bad.id.strict".param-name...
50d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 ........................(js2-nod
50d20 65 2d 61 62 73 2d 70 6f 73 20 6e 61 6d 65 2d 6e 6f 64 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c e-abs-pos.name-node).(js2-node-l
50d40 65 6e 20 6e 61 6d 65 2d 6e 6f 64 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 en.name-node))))))..(defun.js2-c
50d60 68 65 63 6b 2d 73 74 72 69 63 74 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 73 20 28 70 72 65 heck-strict-function-params.(pre
50d80 63 65 64 69 6e 67 2d 70 61 72 61 6d 73 20 70 61 72 61 6d 73 29 0a 20 20 22 47 69 76 65 6e 20 50 ceding-params.params)..."Given.P
50da0 52 45 43 45 44 49 4e 47 2d 50 41 52 41 4d 53 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 27 73 20 RECEDING-PARAMS.in.a.function's.
50dc0 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 2c 20 63 68 65 63 6b 0a 66 6f 72 20 73 74 72 69 63 74 parameter.list,.check.for.strict
50de0 20 6d 6f 64 65 20 65 72 72 6f 72 73 20 63 61 75 73 65 64 20 62 79 20 50 41 52 41 4d 53 2e 22 0a .mode.errors.caused.by.PARAMS.".
50e00 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 ..(when.js2-in-use-strict-direct
50e20 69 76 65 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 61 72 61 6d 20 70 61 72 61 6d 73 29 0a 20 ive.....(dolist.(param.params)..
50e40 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 61 6d 2d 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 .....(let.((param-name.(js2-name
50e60 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72 61 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 -node-name.param))).........(js2
50e80 2d 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 70 61 72 61 6d 29 0a -check-strict-identifier.param).
50ea0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 ........(when.(cl-some.(lambda.(
50ec0 70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 param)..........................
50ee0 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72 (string=.(js2-name-node-name.par
50f00 61 6d 29 20 70 61 72 61 6d 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 am).param-name))................
50f20 20 20 20 20 20 20 20 20 70 72 65 63 65 64 69 6e 67 2d 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 ........preceding-params).......
50f40 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 75 70 2e 70 ....(js2-report-error."msg.dup.p
50f60 61 72 61 6d 2e 73 74 72 69 63 74 22 20 70 61 72 61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 aram.strict".param-name.........
50f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 ....................(js2-node-ab
50fa0 73 2d 70 6f 73 20 70 61 72 61 6d 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 61 72 61 6d s-pos.param).(js2-node-len.param
50fc0 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 )))))))..(defun.js2-parse-functi
50fe0 6f 6e 2d 70 61 72 61 6d 73 20 28 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 66 6e 2d 6e 6f 64 65 on-params.(function-type.fn-node
51000 20 70 6f 73 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66 .pos)..."Parse.the.parameters.of
51020 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 46 55 4e 43 54 49 4f 4e 2d 54 59 50 45 0a 72 65 70 .a.function.of.FUNCTION-TYPE.rep
51040 72 65 73 65 6e 74 65 64 20 62 79 20 46 4e 2d 4e 4f 44 45 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 resented.by.FN-NODE.at.POS."...(
51060 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 52 50 29 0a 20 20 20 20 if.(js2-match-token.js2-RP).....
51080 20 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 70 20 66 6e ..(setf.(js2-function-node-rp.fn
510a0 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 -node).(-.(js2-current-token-beg
510c0 29 20 70 6f 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 2d 66 72 65 65 2d 61 72 ).pos)).....(let.((paren-free-ar
510e0 72 6f 77 20 28 61 6e 64 20 28 65 71 20 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e 43 row.(and.(eq.function-type.'FUNC
51100 54 49 4f 4e 5f 41 52 52 4f 57 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TION_ARROW).....................
51120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f .............(eq.(js2-current-to
51140 6b 65 6e 2d 74 79 70 65 29 20 6a 73 32 2d 4e 41 4d 45 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ken-type).js2-NAME)))...........
51160 70 61 72 61 6d 73 20 70 61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 2d 6e 61 6d params.param...........param-nam
51180 65 2d 6e 6f 64 65 73 20 6e 65 77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 0a 20 20 20 e-nodes.new-param-name-nodes....
511a0 20 20 20 20 20 20 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 29 0a 20 20 20 20 20 20 28 77 68 65 .......rest-param-at).......(whe
511c0 6e 20 70 61 72 65 6e 2d 66 72 65 65 2d 61 72 72 6f 77 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d n.paren-free-arrow.........(js2-
511e0 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 unget-token)).......(cl-loop.for
51200 20 74 74 20 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 .tt.=.(js2-peek-token)..........
51220 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 ......do................(cond...
51240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 70 ..............;;.destructuring.p
51260 61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20 aram.................((and.(not.
51280 70 61 72 65 6e 2d 66 72 65 65 2d 61 72 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 paren-free-arrow)...............
512a0 20 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 20 28 3d 20 74 74 20 ........(or.(=.tt.js2-LB).(=.tt.
512c0 6a 73 32 2d 4c 43 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d js2-LC)))..................(js2-
512e0 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 get-token)..................(set
51300 71 20 70 61 72 61 6d 20 28 6a 73 32 2d 70 61 72 73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d q.param.(js2-parse-destruct-prim
51320 61 72 79 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ary-expr).......................
51340 20 6e 65 77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 20 28 6a 73 32 2d 64 65 66 69 6e .new-param-name-nodes.(js2-defin
51360 65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e-destruct-symbols..............
51380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
513a0 70 61 72 61 6d 20 6a 73 32 2d 4c 50 20 27 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d param.js2-LP.'js2-function-param
513c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 73 ))..................(js2-check-s
513e0 74 72 69 63 74 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 73 20 70 61 72 61 6d 2d 6e 61 6d 65 trict-function-params.param-name
51400 2d 6e 6f 64 65 73 20 6e 65 77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 29 0a 20 20 20 -nodes.new-param-name-nodes)....
51420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e ..............(setq.param-name-n
51440 6f 64 65 73 20 28 61 70 70 65 6e 64 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 20 6e 65 odes.(append.param-name-nodes.ne
51460 77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 w-param-name-nodes)))...........
51480 20 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 ......;;.variable.name..........
514a0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e .......(t..................(when
514c0 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 .(and.(>=.js2-language-version.2
514e0 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00).............................
51500 28 6e 6f 74 20 70 61 72 65 6e 2d 66 72 65 65 2d 61 72 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20 (not.paren-free-arrow)..........
51520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f ...................(js2-match-to
51540 6b 65 6e 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ken.js2-TRIPLEDOT)..............
51560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 ...............(not.rest-param-a
51580 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 72 65 70 t))....................;;.to.rep
515a0 6f 72 74 20 65 72 72 6f 72 73 20 69 66 20 74 68 65 72 65 20 61 72 65 20 6d 6f 72 65 20 70 61 72 ort.errors.if.there.are.more.par
515c0 61 6d 65 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 ameters....................(setq
515e0 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 20 28 6c 65 6e 67 74 68 20 70 61 72 61 6d 73 29 29 29 .rest-param-at.(length.params)))
51600 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 ..................(js2-must-matc
51620 68 2d 6e 61 6d 65 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 h-name."msg.no.parm")...........
51640 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 6a 73 32 2d 66 75 6e .......(js2-record-face.'js2-fun
51660 63 74 69 6f 6e 2d 70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ction-param)..................(s
51680 65 74 71 20 70 61 72 61 6d 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29 etq.param.(js2-create-name-node)
516a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 )..................(js2-define-s
516c0 79 6d 62 6f 6c 20 6a 73 32 2d 4c 50 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d ymbol.js2-LP.(js2-current-token-
516e0 73 74 72 69 6e 67 29 20 70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 string).param)..................
51700 28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d (js2-check-strict-function-param
51720 73 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 20 28 6c 69 73 74 20 70 61 72 61 6d 29 29 s.param-name-nodes.(list.param))
51740 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 2d 6e 61 ..................(setq.param-na
51760 6d 65 2d 6e 6f 64 65 73 20 28 61 70 70 65 6e 64 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 me-nodes.(append.param-name-node
51780 73 20 28 6c 69 73 74 20 70 61 72 61 6d 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.(list.param)))))..............
517a0 20 20 3b 3b 20 64 65 66 61 75 6c 74 20 70 61 72 61 6d 65 74 65 72 20 76 61 6c 75 65 0a 20 20 20 ..;;.default.parameter.value....
517c0 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 72 65 73 74 ............(when.(and.(not.rest
517e0 2d 70 61 72 61 6d 2d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -param-at)......................
51800 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 .....(>=.js2-language-version.20
51820 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 0)...........................(js
51840 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 41 53 53 49 47 4e 29 29 0a 20 20 20 20 20 2-match-token.js2-ASSIGN))......
51860 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 6f 74 20 70 61 72 65 ............(cl-assert.(not.pare
51880 6e 2d 66 72 65 65 2d 61 72 72 6f 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-free-arrow))..................
518a0 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 61 72 61 6d 29 (let*.((pos.(js2-node-pos.param)
518c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 74 20 28 6a ).........................(tt.(j
518e0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 s2-current-token-type)).........
51900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 70 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d ................(op-pos.(-.(js2-
51920 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 current-token-beg).pos))........
51940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 66 74 20 70 61 72 61 6d 29 0a 20 20 .................(left.param)...
51960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 6a 73 ......................(right.(js
51980 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 2-parse-assign-expr))...........
519a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d ..............(len.(-.(js2-node-
519c0 65 6e 64 20 72 69 67 68 74 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 end.right).pos)))...............
519e0 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 20 28 6d 61 6b 65 2d 6a 73 32 2d 61 73 73 69 67 .....(setq.param.(make-js2-assig
51a00 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-node..........................
51a20 20 20 20 20 20 20 20 3a 74 79 70 65 20 74 74 20 3a 70 6f 73 20 70 6f 73 20 3a 6c 65 6e 20 6c 65 .......:type.tt.:pos.pos.:len.le
51a40 6e 20 3a 6f 70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.:op-pos.op-pos................
51a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 6c 65 66 74 20 3a 72 69 67 .................:left.left.:rig
51a80 68 74 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ht.right))....................(j
51aa0 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 61 72 61 6d 20 6c 65 66 74 20 s2-node-add-children.param.left.
51ac0 72 69 67 68 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 61 right)))................(push.pa
51ae0 72 61 6d 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e ram.params)................(when
51b00 20 28 61 6e 64 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 20 28 3e 20 28 6c 65 6e 67 74 68 20 70 .(and.rest-param-at.(>.(length.p
51b20 61 72 61 6d 73 29 20 28 31 2b 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 29 29 29 0a 20 20 20 20 arams).(1+.rest-param-at))).....
51b40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 .............(js2-report-error."
51b60 6d 73 67 2e 70 61 72 61 6d 2e 61 66 74 65 72 2e 72 65 73 74 22 20 6e 69 6c 0a 20 20 20 20 20 20 msg.param.after.rest".nil.......
51b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 .............................(js
51ba0 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 61 72 61 6d 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 2-node-pos.param).(js2-node-len.
51bc0 70 61 72 61 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 0a 20 20 param)))................while...
51be0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b .............(and.(js2-match-tok
51c00 65 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en.js2-COMMA)...................
51c20 20 20 28 6f 72 20 28 3c 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 ..(or.(<.js2-language-version.20
51c40 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 0).........................(not.
51c60 28 3d 20 6a 73 32 2d 52 50 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 29 29 29 29 0a (=.js2-RP.(js2-peek-token)))))).
51c80 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 70 61 72 65 6e 2d 66 72 65 65 ......(when.(and.(not.paren-free
51ca0 2d 61 72 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 -arrow)..................(js2-mu
51cc0 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 st-match.js2-RP."msg.no.paren.af
51ce0 74 65 72 2e 70 61 72 6d 73 22 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d ter.parms")).........(setf.(js2-
51d00 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 70 20 66 6e 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73 function-node-rp.fn-node).(-.(js
51d20 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 0a 20 20 20 20 2-current-token-beg).pos))).....
51d40 20 20 28 77 68 65 6e 20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 0a 20 20 20 20 20 20 20 20 28 73 ..(when.rest-param-at.........(s
51d60 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 65 73 74 2d 70 20 66 6e etf.(js2-function-node-rest-p.fn
51d80 2d 6e 6f 64 65 29 20 74 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 20 70 61 72 61 -node).t)).......(dolist.(p.para
51da0 6d 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 ms).........(js2-node-add-childr
51dc0 65 6e 20 66 6e 2d 6e 6f 64 65 20 70 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 20 28 6a en.fn-node.p).........(push.p.(j
51de0 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 66 6e 2d 6e 6f 64 65 29 s2-function-node-params.fn-node)
51e00 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 68 65 63 6b 2d 69 6e 63 6f 6e 73 69 73 )))))..(defun.js2-check-inconsis
51e20 74 65 6e 74 2d 72 65 74 75 72 6e 2d 77 61 72 6e 69 6e 67 20 28 66 6e 2d 6e 6f 64 65 20 6e 61 6d tent-return-warning.(fn-node.nam
51e40 65 29 0a 20 20 22 50 6f 73 73 69 62 6c 79 20 73 68 6f 77 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 e)..."Possibly.show.inconsistent
51e60 2d 72 65 74 75 72 6e 20 77 61 72 6e 69 6e 67 2e 0a 4c 61 73 74 20 74 6f 6b 65 6e 20 73 63 61 6e -return.warning..Last.token.scan
51e80 6e 65 64 20 69 73 20 74 68 65 20 63 6c 6f 73 65 2d 63 75 72 6c 79 20 66 6f 72 20 74 68 65 20 66 ned.is.the.close-curly.for.the.f
51ea0 75 6e 63 74 69 6f 6e 20 62 6f 64 79 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d unction.body."...(when.(and.js2-
51ec0 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 mode-show-strict-warnings.......
51ee0 20 20 20 20 20 20 20 6a 73 32 2d 73 74 72 69 63 74 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72 .......js2-strict-inconsistent-r
51f00 65 74 75 72 6e 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 eturn-warning..............(not.
51f20 28 6a 73 32 2d 68 61 73 2d 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 75 73 61 67 65 (js2-has-consistent-return-usage
51f40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f ....................(js2-functio
51f60 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 48 n-node-body.fn-node)))).....;;.H
51f80 61 76 65 20 69 74 20 65 78 74 65 6e 64 20 66 72 6f 6d 20 63 6c 6f 73 65 2d 63 75 72 6c 79 20 74 ave.it.extend.from.close-curly.t
51fa0 6f 20 62 6f 6c 20 6f 72 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 62 6c 6f 63 6b 2e 0a 20 20 20 o.bol.or.beginning.of.block.....
51fc0 20 28 6c 65 74 20 28 28 70 6f 73 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 .(let.((pos.(save-excursion.....
51fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 63 75 72 .............(goto-char.(js2-cur
52000 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rent-token-end))................
52020 20 20 28 6d 61 78 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 66 75 ..(max.(js2-node-abs-pos.(js2-fu
52040 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 nction-node-body.fn-node))......
52060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 .................(point-at-bol))
52080 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 ))...........(end.(js2-current-t
520a0 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 63 6c 2d 70 6c 75 73 70 20 oken-end))).......(if.(cl-plusp.
520c0 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6c 65 6e 67 74 68 20 6e 61 6d 65 29 29 0a 20 20 20 (js2-name-node-length.name))....
520e0 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22 .......(js2-add-strict-warning."
52100 6d 73 67 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61 6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 msg.no.return.value"............
52120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 .......................(js2-name
52140 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20 -node-name.name).pos.end).......
52160 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 61 ..(js2-add-strict-warning."msg.a
52180 6e 6f 6e 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61 6c 75 65 22 20 6e 69 6c 20 70 6f 73 20 65 6e 64 non.no.return.value".nil.pos.end
521a0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e )))))..(defun.js2-parse-function
521c0 2d 73 74 6d 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 20 28 6c -stmt.(&optional.async-pos)...(l
521e0 65 74 20 28 28 70 6f 73 20 28 6f 72 20 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 et.((pos.(or.async-pos.(js2-curr
52200 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 72 2d 70 ent-token-beg))).........(star-p
52220 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 29 29 0a 20 20 20 .(js2-match-token.js2-MUL)))....
52240 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e 75 6e 6e 61 6d .(js2-must-match-name."msg.unnam
52260 65 64 2e 66 75 6e 63 74 69 6f 6e 2e 73 74 6d 74 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 61 ed.function.stmt").....(let.((na
52280 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a 20 20 20 me.(js2-create-name-node.t))....
522a0 20 20 20 20 20 20 20 70 6e 20 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a 20 20 20 20 20 20 28 63 6f .......pn.member-expr).......(co
522c0 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d nd........((js2-match-token.js2-
522e0 4c 50 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20 LP).........(js2-parse-function.
52300 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 20 70 6f 73 20 73 74 61 72 2d 70 20 61 'FUNCTION_STATEMENT.pos.star-p.a
52320 73 79 6e 63 2d 70 6f 73 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 61 6c 6c 6f sync-pos.name))........(js2-allo
52340 77 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 61 73 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 0a 20 w-member-expr-as-function-name..
52360 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 65 6d 62 65 72 2d 65 78 70 72 20 28 6a 73 32 2d 70 61 .......(setq.member-expr.(js2-pa
52380 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 74 61 69 6c 20 6e 69 6c 20 6e 61 6d 65 29 29 0a rse-member-expr-tail.nil.name)).
523a0 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d 6d 65 6d ........(js2-parse-highlight-mem
523c0 62 65 72 2d 65 78 70 72 2d 66 6e 2d 6e 61 6d 65 20 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a 20 20 ber-expr-fn-name.member-expr)...
523e0 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 ......(js2-must-match.js2-LP."ms
52400 67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61 72 6d 73 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 g.no.paren.parms").........(setf
52420 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f .pn.(js2-parse-function.'FUNCTIO
52440 4e 5f 53 54 41 54 45 4d 45 4e 54 20 70 6f 73 20 73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70 6f 73 N_STATEMENT.pos.star-p.async-pos
52460 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f )...............(js2-function-no
52480 64 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 20 70 6e 29 20 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a de-member-expr.pn).member-expr).
524a0 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a ........pn)........(t.........(j
524c0 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61 s2-report-error."msg.no.paren.pa
524e0 72 6d 73 22 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f rms").........(make-js2-error-no
52500 64 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 de))))))..(defun.js2-parse-funct
52520 69 6f 6e 2d 65 78 70 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 ion-expr.(&optional.async-pos)..
52540 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6f 72 20 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 32 2d 63 .(let.((pos.(or.async-pos.(js2-c
52560 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 urrent-token-beg))).........(sta
52580 72 2d 70 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 29 0a 20 r-p.(js2-match-token.js2-MUL))..
525a0 20 20 20 20 20 20 20 6e 61 6d 65 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 .......name).....(when.(js2-matc
525c0 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 h-token.js2-NAME).......(setq.na
525e0 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 29 0a 20 20 me.(js2-create-name-node.t)))...
52600 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 67 2e 6e 6f ..(js2-must-match.js2-LP."msg.no
52620 2e 70 61 72 65 6e 2e 70 61 72 6d 73 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 .paren.parms").....(js2-parse-fu
52640 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f 4e 5f 45 58 50 52 45 53 53 49 4f 4e 20 70 6f 73 20 nction.'FUNCTION_EXPRESSION.pos.
52660 73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70 6f 73 20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e star-p.async-pos.name)))..(defun
52680 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 69 6e 74 65 72 6e 61 6c 20 28 66 75 .js2-parse-function-internal.(fu
526a0 6e 63 74 69 6f 6e 2d 74 79 70 65 20 70 6f 73 20 73 74 61 72 2d 70 20 26 6f 70 74 69 6f 6e 61 6c nction-type.pos.star-p.&optional
526c0 20 61 73 79 6e 63 2d 70 20 6e 61 6d 65 29 0a 20 20 28 6c 65 74 20 28 66 6e 2d 6e 6f 64 65 20 6c .async-p.name)...(let.(fn-node.l
526e0 70 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e p).....(if.(=.(js2-current-token
52700 2d 74 79 70 65 29 20 6a 73 32 2d 4c 50 29 20 3b 20 65 76 65 6e 74 75 61 6c 6c 79 20 6d 61 74 63 -type).js2-LP).;.eventually.matc
52720 68 65 64 20 4c 50 3f 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28 6a 73 32 2d 63 75 hed.LP?.........(setq.lp.(js2-cu
52740 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 66 6e 2d rrent-token-beg))).....(setf.fn-
52760 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 3a 70 6f node.(make-js2-function-node.:po
52780 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.pos...........................
527a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 ................:name.name......
527c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
527e0 20 20 20 20 20 3a 66 6f 72 6d 20 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 0a 20 20 20 20 20 20 20 .....:form.function-type........
52800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52820 20 20 20 3a 6c 70 20 28 69 66 20 6c 70 20 28 2d 20 6c 70 20 70 6f 73 29 29 0a 20 20 20 20 20 20 ...:lp.(if.lp.(-.lp.pos)).......
52840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52860 20 20 20 20 3a 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 20 28 61 6e 64 20 73 74 61 72 2d 70 20 ....:generator-type.(and.star-p.
52880 27 53 54 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'STAR)..........................
528a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 73 79 6e 63 20 61 73 79 6e 63 2d 70 29 .................:async.async-p)
528c0 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d ).....(when.name.......(js2-set-
528e0 66 61 63 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 61 6d 65 29 20 28 6a 73 32 2d 6e 6f face.(js2-node-pos.name).(js2-no
52900 64 65 2d 65 6e 64 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-end.name)....................
52920 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 20 27 .'font-lock-function-name-face.'
52940 72 65 63 6f 72 64 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 66 75 6e record).......(when.(and.(eq.fun
52960 63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29 0a ction-type.'FUNCTION_STATEMENT).
52980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 70 6c 75 73 70 20 28 6a 73 32 2d .................(cl-plusp.(js2-
529a0 6e 61 6d 65 2d 6e 6f 64 65 2d 6c 65 6e 67 74 68 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 name-node-length.name)))........
529c0 20 3b 3b 20 46 75 6e 63 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 64 65 66 69 6e 65 20 61 .;;.Function.statements.define.a
529e0 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 20 73 63 6f 70 65 0a 20 .symbol.in.the.enclosing.scope..
52a00 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d 46 55 .......(js2-define-symbol.js2-FU
52a20 4e 43 54 49 4f 4e 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 NCTION.(js2-name-node-name.name)
52a40 20 66 6e 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 2d 75 73 .fn-node)).......(when.js2-in-us
52a60 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d e-strict-directive.........(js2-
52a80 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 29 29 29 0a check-strict-identifier.name))).
52aa0 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e ....(if.(or.(js2-inside-function
52ac0 29 20 28 63 6c 2d 70 6c 75 73 70 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 77 69 74 68 29 ).(cl-plusp.js2-nesting-of-with)
52ae0 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 31 2e 20 4e 65 73 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 ).........;;.1..Nested.functions
52b00 20 61 72 65 20 6e 6f 74 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 65 20 64 79 6e 61 6d 69 63 .are.not.affected.by.the.dynamic
52b20 20 73 63 6f 70 65 20 66 6c 61 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 61 73 20 64 79 6e .scope.flag.........;;....as.dyn
52b40 61 6d 69 63 20 73 63 6f 70 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 70 61 72 65 6e 74 20 6f amic.scope.is.already.a.parent.o
52b60 66 20 74 68 65 69 72 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20 32 2e 20 46 75 6e f.their.scope..........;;.2..Fun
52b80 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 75 6e 64 65 72 20 74 68 65 20 77 69 74 68 20 73 74 ctions.defined.under.the.with.st
52ba0 61 74 65 6d 65 6e 74 20 61 6c 73 6f 20 69 6d 6d 75 6e 65 20 74 6f 0a 20 20 20 20 20 20 20 20 3b atement.also.immune.to.........;
52bc0 3b 20 20 20 20 74 68 69 73 20 73 65 74 75 70 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 64 ;....this.setup,.in.which.case.d
52be0 79 6e 61 6d 69 63 20 73 63 6f 70 65 20 69 73 20 69 67 6e 6f 72 65 64 20 69 6e 20 66 61 76 6f 72 ynamic.scope.is.ignored.in.favor
52c00 0a 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 6f 66 20 74 68 65 20 77 69 74 68 20 6f 62 6a 65 63 .........;;....of.the.with.objec
52c20 74 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e t..........(setf.(js2-function-n
52c40 6f 64 65 2d 69 67 6e 6f 72 65 2d 64 79 6e 61 6d 69 63 20 66 6e 2d 6e 6f 64 65 29 20 74 29 29 0a ode-ignore-dynamic.fn-node).t)).
52c60 20 20 20 20 3b 3b 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62 69 6e 64 20 61 6c 6c 20 74 68 65 20 ....;;.dynamically.bind.all.the.
52c80 70 65 72 2d 66 75 6e 63 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 28 6c 65 74 20 per-function.variables.....(let.
52ca0 28 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 66 6e 2d 6e 6f ((js2-current-script-or-fn.fn-no
52cc0 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 de)...........(js2-current-scope
52ce0 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 65 73 74 69 6e 67 .fn-node)...........(js2-nesting
52d00 2d 6f 66 2d 77 69 74 68 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 66 -of-with.0)...........(js2-end-f
52d20 6c 61 67 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 0a lags.0)...........js2-label-set.
52d40 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 0a 20 20 20 20 20 20 20 20 20 ..........js2-loop-set..........
52d60 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29 0a 20 20 20 20 20 20 .js2-loop-and-switch-set).......
52d80 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d 73 20 66 75 6e 63 74 (js2-parse-function-params.funct
52da0 69 6f 6e 2d 74 79 70 65 20 66 6e 2d 6e 6f 64 65 20 70 6f 73 29 0a 20 20 20 20 20 20 28 77 68 65 ion-type.fn-node.pos).......(whe
52dc0 6e 20 28 65 71 20 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e 43 54 49 4f 4e 5f 41 52 n.(eq.function-type.'FUNCTION_AR
52de0 52 4f 57 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 ROW).........(js2-must-match.js2
52e00 2d 41 52 52 4f 57 20 22 6d 73 67 2e 62 61 64 2e 61 72 72 6f 77 2e 61 72 67 73 22 29 29 0a 20 20 -ARROW."msg.bad.arrow.args"))...
52e20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 ....(if.(and.(>=.js2-language-ve
52e40 72 73 69 6f 6e 20 31 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 28 6a rsion.180)................(/=.(j
52e60 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20 20 20 20 20 20 s2-peek-token).js2-LC)).........
52e80 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 63 6c 6f 73 75 72 65 2d 62 6f ..(js2-parse-function-closure-bo
52ea0 64 79 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 dy.fn-node).........(js2-parse-f
52ec0 75 6e 63 74 69 6f 6e 2d 62 6f 64 79 20 66 6e 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 6a 73 unction-body.fn-node)).......(js
52ee0 32 2d 63 68 65 63 6b 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 77 61 72 6e 2-check-inconsistent-return-warn
52f00 69 6e 67 20 66 6e 2d 6e 6f 64 65 20 6e 61 6d 65 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e ing.fn-node.name)........(when.n
52f20 61 6d 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 ame.........(js2-node-add-childr
52f40 65 6e 20 66 6e 2d 6e 6f 64 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 46 75 6e 63 en.fn-node.name).........;;.Func
52f60 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 64 65 66 69 6e 65 20 61 20 6e 61 6d 65 20 6f tion.expressions.define.a.name.o
52f80 6e 6c 79 20 69 6e 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 3b nly.in.the.body.of.the.........;
52fa0 3b 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 6e 6f 74 20 68 69 64 64 ;.function,.and.only.if.not.hidd
52fc0 65 6e 20 62 79 20 61 20 70 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 en.by.a.parameter.name.........(
52fe0 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e when.(and.(eq.function-type.'FUN
53000 43 54 49 4f 4e 5f 45 58 50 52 45 53 53 49 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 CTION_EXPRESSION)...............
53020 20 20 20 20 20 28 6e 75 6c 6c 20 28 6a 73 32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c .....(null.(js2-scope-get-symbol
53040 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-current-scope..............
53060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
53080 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 29 0a 20 ..(js2-name-node-name.name))))..
530a0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d .........(js2-define-symbol.js2-
530c0 46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 FUNCTION........................
530e0 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a ......(js2-name-node-name.name).
53100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6e 2d .............................fn-
53120 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 66 75 6e 63 74 69 6f node)).........(when.(eq.functio
53140 6e 2d 74 79 70 65 20 27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29 0a 20 20 20 20 n-type.'FUNCTION_STATEMENT).....
53160 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e ......(js2-record-imenu-function
53180 73 20 66 6e 2d 6e 6f 64 65 29 29 29 29 0a 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f s.fn-node))))......(setf.(js2-no
531a0 64 65 2d 6c 65 6e 20 66 6e 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d de-len.fn-node).(-.(js2-current-
531c0 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 0a 20 20 20 20 3b 3b 20 52 68 69 6e 6f 20 64 6f token-end).pos)).....;;.Rhino.do
531e0 65 73 6e 27 74 20 64 6f 20 74 68 69 73 2c 20 62 75 74 20 77 65 20 6e 65 65 64 20 69 74 20 66 6f esn't.do.this,.but.we.need.it.fo
53200 72 20 66 69 6e 64 69 6e 67 20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 73 2e 0a 20 20 20 20 3b r.finding.undeclared.vars......;
53220 3b 20 57 65 20 77 61 69 74 20 75 6e 74 69 6c 20 61 66 74 65 72 20 70 61 72 73 69 6e 67 20 74 68 ;.We.wait.until.after.parsing.th
53240 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 20 69 74 73 20 70 61 72 65 6e 74 20 73 63 6f e.function.to.set.its.parent.sco
53260 70 65 2c 0a 20 20 20 20 3b 3b 20 73 69 6e 63 65 20 60 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d pe,.....;;.since.`js2-define-sym
53280 62 6f 6c 27 20 6e 65 65 64 73 20 74 68 65 20 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 63 68 bol'.needs.the.defining-scope.ch
532a0 65 63 6b 20 74 6f 20 73 74 6f 70 0a 20 20 20 20 3b 3b 20 61 74 20 74 68 65 20 66 75 6e 63 74 69 eck.to.stop.....;;.at.the.functi
532c0 6f 6e 20 62 6f 75 6e 64 61 72 79 20 77 68 65 6e 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 72 65 on.boundary.when.checking.for.re
532e0 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 63 6f declarations......(setf.(js2-sco
53300 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 66 6e 2d 6e 6f 64 65 29 20 6a 73 32 2d 63 75 72 pe-parent-scope.fn-node).js2-cur
53320 72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20 66 6e 2d 6e 6f 64 65 29 29 0a 0a 28 64 65 66 75 rent-scope).....fn-node))..(defu
53340 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20 28 66 75 6e 63 74 69 6f 6e 2d 74 n.js2-parse-function.(function-t
53360 79 70 65 20 70 6f 73 20 73 74 61 72 2d 70 20 26 6f 70 74 69 6f 6e 61 6c 20 61 73 79 6e 63 2d 70 ype.pos.star-p.&optional.async-p
53380 20 6e 61 6d 65 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 72 2e 20 20 46 55 4e 43 .name)..."Function.parser...FUNC
533a0 54 49 4f 4e 2d 54 59 50 45 20 69 73 20 61 20 73 79 6d 62 6f 6c 2c 20 50 4f 53 20 69 73 20 74 68 TION-TYPE.is.a.symbol,.POS.is.th
533c0 65 0a 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 28 e.beginning.of.the.first.token.(
533e0 66 75 6e 63 74 69 6f 6e 20 6b 65 79 77 6f 72 64 2c 20 75 6e 6c 65 73 73 20 69 74 27 73 20 61 6e function.keyword,.unless.it's.an
53400 0a 61 72 72 6f 77 20 66 75 6e 63 74 69 6f 6e 29 2c 20 4e 41 4d 45 20 69 73 20 6a 73 32 2d 6e 61 .arrow.function),.NAME.is.js2-na
53420 6d 65 2d 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a 20 me-node."...(let.((continue.t)..
53440 20 20 20 20 20 20 20 74 73 2d 73 74 61 74 65 0a 20 20 20 20 20 20 20 20 66 6e 2d 6e 6f 64 65 0a .......ts-state.........fn-node.
53460 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 73 65 72 76 65 20 73 74 72 69 63 74 20 73 74 61 74 65 ........;;.Preserve.strict.state
53480 20 6f 75 74 73 69 64 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 .outside.this.function..........
534a0 28 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 20 6a 73 32 (js2-in-use-strict-directive.js2
534c0 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 29 29 0a 20 20 20 20 3b -in-use-strict-directive)).....;
534e0 3b 20 50 61 72 73 65 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 20 69 66 20 61 20 6e 65 77 20 ;.Parse.multiple.times.if.a.new.
53500 73 74 72 69 63 74 20 6d 6f 64 65 20 64 69 72 65 63 74 69 76 65 20 69 73 20 64 69 73 63 6f 76 65 strict.mode.directive.is.discove
53520 72 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 2c red.in.the.....;;.function.body,
53540 20 61 73 20 6e 65 77 20 72 75 6c 65 73 20 77 69 6c 6c 20 62 65 20 72 65 74 72 6f 61 63 74 69 76 .as.new.rules.will.be.retroactiv
53560 65 6c 79 20 61 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 6c 65 67 61 6c 69 74 79 0a 20 20 20 20 ely.applied.to.the.legality.....
53580 3b 3b 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 73 20 61 6e 64 20 70 61 72 61 6d 65 74 ;;.of.function.names.and.paramet
535a0 65 72 73 2e 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 ers......(while.continue.......(
535c0 73 65 74 71 20 74 73 2d 73 74 61 74 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65 setq.ts-state.(make-js2-ts-state
535e0 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 28 63 61 74 63 68 20 27 )).......(setq.continue.(catch.'
53600 72 65 70 61 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 reparse........................(
53620 73 65 74 71 20 66 6e 2d 6e 6f 64 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e setq.fn-node.(js2-parse-function
53640 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -internal.......................
53660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 70 6f ................function-type.po
53680 73 20 73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 s.star-p.async-p.name)).........
536a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 63 6f 6e 74 69 6e 75 65 ...............;;.Don't.continue
536c0 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 .........................nil))..
536e0 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 .....(when.continue.........(js2
53700 2d 74 73 2d 73 65 65 6b 20 74 73 2d 73 74 61 74 65 29 29 29 0a 20 20 20 20 66 6e 2d 6e 6f 64 65 -ts-seek.ts-state))).....fn-node
53720 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 73 20 ))..(defun.js2-parse-statements.
53740 28 26 6f 70 74 69 6f 6e 61 6c 20 70 61 72 65 6e 74 29 0a 20 20 22 50 61 72 73 65 20 61 20 73 74 (&optional.parent)..."Parse.a.st
53760 61 74 65 6d 65 6e 74 20 6c 69 73 74 2e 20 20 4c 61 73 74 20 74 6f 6b 65 6e 20 63 6f 6e 73 75 6d atement.list...Last.token.consum
53780 65 64 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 4c 43 2e 0a 0a 50 41 52 45 4e 54 20 63 61 6e 20 62 ed.must.be.js2-LC...PARENT.can.b
537a0 65 20 61 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 27 2c 20 69 6e 20 77 68 69 63 68 20 63 e.a.`js2-block-node',.in.which.c
537c0 61 73 65 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 0a 61 70 70 65 6e 64 65 64 20 ase.the.statements.are.appended.
537e0 74 6f 20 50 41 52 45 4e 54 2e 20 20 4f 74 68 65 72 77 69 73 65 20 61 20 6e 65 77 20 60 6a 73 32 to.PARENT...Otherwise.a.new.`js2
53800 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 27 20 69 73 20 63 72 65 61 74 65 64 0a 61 6e 64 20 72 65 74 75 -block-node'.is.created.and.retu
53820 72 6e 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6d 61 rned...This.function.does.not.ma
53840 74 63 68 20 74 68 65 20 63 6c 6f 73 69 6e 67 20 6a 73 32 2d 52 43 3a 20 74 68 65 20 63 61 6c 6c tch.the.closing.js2-RC:.the.call
53860 65 72 0a 6d 61 74 63 68 65 73 20 74 68 65 20 52 43 20 73 6f 20 69 74 20 63 61 6e 20 70 72 6f 76 er.matches.the.RC.so.it.can.prov
53880 69 64 65 20 61 20 73 75 69 74 61 62 6c 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20 ide.a.suitable.error.message.if.
538a0 6e 6f 74 0a 6d 61 74 63 68 65 64 2e 20 20 54 68 69 73 20 6d 65 61 6e 73 20 69 74 27 73 20 75 70 not.matched...This.means.it's.up
538c0 20 74 6f 20 74 68 65 20 63 61 6c 6c 65 72 20 74 6f 20 73 65 74 20 74 68 65 20 6c 65 6e 67 74 68 .to.the.caller.to.set.the.length
538e0 20 6f 66 0a 74 68 65 20 6e 6f 64 65 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 63 6c 6f 73 .of.the.node.to.include.the.clos
53900 69 6e 67 20 52 43 2e 20 20 54 68 65 20 6e 6f 64 65 20 73 74 61 72 74 20 70 6f 73 20 69 73 20 73 ing.RC...The.node.start.pos.is.s
53920 65 74 20 74 6f 0a 74 68 65 20 61 62 73 6f 6c 75 74 65 20 62 75 66 66 65 72 20 73 74 61 72 74 20 et.to.the.absolute.buffer.start.
53940 70 6f 73 69 74 69 6f 6e 2c 20 61 6e 64 20 74 68 65 20 63 61 6c 6c 65 72 20 73 68 6f 75 6c 64 20 position,.and.the.caller.should.
53960 66 69 78 20 69 74 0a 75 70 20 74 6f 20 62 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 fix.it.up.to.be.relative.to.the.
53980 70 61 72 65 6e 74 20 6e 6f 64 65 2e 20 20 41 6c 6c 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 74 68 parent.node...All.children.of.th
539a0 69 73 20 62 6c 6f 63 6b 0a 6e 6f 64 65 20 61 72 65 20 67 69 76 65 6e 20 72 65 6c 61 74 69 76 65 is.block.node.are.given.relative
539c0 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 61 6e 64 20 63 6f 72 72 65 63 74 20 6c 65 6e .start.positions.and.correct.len
539e0 67 74 68 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6f 72 20 70 61 72 65 6e 74 20 28 6d gths."...(let.((pn.(or.parent.(m
53a00 61 6b 65 2d 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 74 74 ake-js2-block-node))).........tt
53a20 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 3e 20 28 73 65 74 71 20 74 74 20 28 6a ).....(while.(and.(>.(setq.tt.(j
53a40 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 45 4f 46 29 0a 20 20 20 20 20 20 20 s2-peek-token)).js2-EOF)........
53a60 20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 74 20 6a 73 32 2d 52 43 29 29 0a 20 20 20 20 20 20 28 .........(/=.tt.js2-RC)).......(
53a80 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 js2-block-node-push.pn.(js2-pars
53aa0 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 e-statement))).....pn))..(defun.
53ac0 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 20 28 29 0a 20 20 28 6c 65 74 20 28 70 js2-parse-statement.()...(let.(p
53ae0 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 3b 3b 20 63 6f 61 72 73 65 2d 67 72 61 69 6e 65 64 n.beg.end).....;;.coarse-grained
53b00 20 75 73 65 72 2d 69 6e 74 65 72 72 75 70 74 20 63 68 65 63 6b 20 2d 20 6e 65 65 64 73 20 77 6f .user-interrupt.check.-.needs.wo
53b20 72 6b 0a 20 20 20 20 28 61 6e 64 20 6a 73 32 2d 70 61 72 73 65 2d 69 6e 74 65 72 72 75 70 74 61 rk.....(and.js2-parse-interrupta
53b40 62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 25 20 28 63 6c 2d 69 6e 63 ble-p..........(zerop.(%.(cl-inc
53b60 66 20 6a 73 32 2d 70 61 72 73 65 2d 73 74 6d 74 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 f.js2-parse-stmt-count).........
53b80 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 73 74 61 74 65 6d 65 6e 74 73 2d 70 65 72 2d 70 61 ...........js2-statements-per-pa
53ba0 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 70 75 74 2d 70 65 6e 64 69 6e 67 2d 70 29 use))..........(input-pending-p)
53bc0 0a 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 74 29 ..........(throw.'interrupted.t)
53be0 29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 73 74 61 74 65 6d 65 6e 74 2d 68 65 ).....(setq.pn.(js2-statement-he
53c00 6c 70 65 72 29 29 0a 20 20 20 20 3b 3b 20 6e 6f 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 77 61 lper)).....;;.no-side-effects.wa
53c20 72 6e 69 6e 67 20 63 68 65 63 6b 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 6e 6f 64 rning.check.....(unless.(js2-nod
53c40 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 70 6e 29 0a 20 20 20 20 20 20 28 73 65 e-has-side-effects.pn).......(se
53c60 74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 70 6e 29 29 0a 20 20 20 20 20 20 tq.end.(js2-node-end.pn)).......
53c80 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 (save-excursion.........(goto-ch
53ca0 61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6d 61 78 20 28 ar.end).........(setq.beg.(max.(
53cc0 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 js2-node-pos.pn).(point-at-bol))
53ce0 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 )).......(js2-add-strict-warning
53d00 20 22 6d 73 67 2e 6e 6f 2e 73 69 64 65 2e 65 66 66 65 63 74 73 22 20 6e 69 6c 20 62 65 67 20 65 ."msg.no.side.effects".nil.beg.e
53d20 6e 64 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 3b 3b 20 54 68 65 73 65 20 63 6f 72 72 65 73 70 6f nd)).....pn))..;;.These.correspo
53d40 6e 64 20 74 6f 20 74 68 65 20 73 77 69 74 63 68 20 63 61 73 65 73 20 69 6e 20 50 61 72 73 65 72 nd.to.the.switch.cases.in.Parser
53d60 2e 73 74 61 74 65 6d 65 6e 74 48 65 6c 70 65 72 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 .statementHelper.(defconst.js2-p
53d80 61 72 73 65 72 73 0a 20 20 28 6c 65 74 20 28 28 70 61 72 73 65 72 73 20 28 6d 61 6b 65 2d 76 65 arsers...(let.((parsers.(make-ve
53da0 63 74 6f 72 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ctor.js2-num-tokens.............
53dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d ....................#'js2-parse-
53de0 65 78 70 72 2d 73 74 6d 74 29 29 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a expr-stmt))).....(aset.parsers.j
53e00 73 32 2d 42 52 45 41 4b 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 62 72 65 61 6b 29 0a s2-BREAK.....#'js2-parse-break).
53e20 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 43 4c 41 53 53 20 20 20 20 20 ....(aset.parsers.js2-CLASS.....
53e40 23 27 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73 74 6d 74 29 0a 20 20 20 20 28 61 73 65 #'js2-parse-class-stmt).....(ase
53e60 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 43 4f 4e 53 54 20 20 20 20 20 23 27 6a 73 32 2d 70 61 t.parsers.js2-CONST.....#'js2-pa
53e80 72 73 65 2d 63 6f 6e 73 74 2d 76 61 72 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 rse-const-var).....(aset.parsers
53ea0 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 74 69 .js2-CONTINUE..#'js2-parse-conti
53ec0 6e 75 65 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 44 45 42 55 47 nue).....(aset.parsers.js2-DEBUG
53ee0 47 45 52 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 64 65 62 75 67 67 65 72 29 0a 20 20 20 20 28 GER..#'js2-parse-debugger).....(
53f00 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 44 45 46 41 55 4c 54 20 20 20 23 27 6a 73 32 aset.parsers.js2-DEFAULT...#'js2
53f20 2d 70 61 72 73 65 2d 64 65 66 61 75 6c 74 2d 78 6d 6c 2d 6e 61 6d 65 73 70 61 63 65 29 0a 20 20 -parse-default-xml-namespace)...
53f40 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 44 4f 20 20 20 20 20 20 20 20 23 27 ..(aset.parsers.js2-DO........#'
53f60 6a 73 32 2d 70 61 72 73 65 2d 64 6f 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 js2-parse-do).....(aset.parsers.
53f80 6a 73 32 2d 45 58 50 4f 52 54 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 js2-EXPORT....#'js2-parse-export
53fa0 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 46 4f 52 20 20 20 20 20 ).....(aset.parsers.js2-FOR.....
53fc0 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 66 6f 72 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 ..#'js2-parse-for).....(aset.par
53fe0 73 65 72 73 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 66 sers.js2-FUNCTION..#'js2-parse-f
54000 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 unction-stmt).....(aset.parsers.
54020 6a 73 32 2d 49 46 20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 69 66 29 0a 20 20 js2-IF........#'js2-parse-if)...
54040 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 49 4d 50 4f 52 54 20 20 20 20 23 27 ..(aset.parsers.js2-IMPORT....#'
54060 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6f 72 2d js2-parse-import-declaration-or-
54080 65 78 70 72 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 4c 43 20 20 expr).....(aset.parsers.js2-LC..
540a0 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 62 6c 6f 63 6b 29 0a 20 20 20 20 28 61 73 ......#'js2-parse-block).....(as
540c0 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 4c 45 54 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70 et.parsers.js2-LET.......#'js2-p
540e0 61 72 73 65 2d 6c 65 74 2d 73 74 6d 74 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 arse-let-stmt).....(aset.parsers
54100 20 6a 73 32 2d 4e 41 4d 45 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 2d .js2-NAME......#'js2-parse-name-
54120 6f 72 2d 6c 61 62 65 6c 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d or-label).....(aset.parsers.js2-
54140 52 45 54 55 52 4e 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 2d 79 69 65 6c 64 29 RETURN....#'js2-parse-ret-yield)
54160 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 53 45 4d 49 20 20 20 20 20 .....(aset.parsers.js2-SEMI.....
54180 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 73 65 6d 69 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 .#'js2-parse-semi).....(aset.par
541a0 73 65 72 73 20 6a 73 32 2d 53 57 49 54 43 48 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 73 sers.js2-SWITCH....#'js2-parse-s
541c0 77 69 74 63 68 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 54 48 52 witch).....(aset.parsers.js2-THR
541e0 4f 57 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 74 68 72 6f 77 29 0a 20 20 20 20 28 61 OW.....#'js2-parse-throw).....(a
54200 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 54 52 59 20 20 20 20 20 20 20 23 27 6a 73 32 2d set.parsers.js2-TRY.......#'js2-
54220 70 61 72 73 65 2d 74 72 79 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 parse-try).....(aset.parsers.js2
54240 2d 56 41 52 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 73 74 2d 76 61 72 -VAR.......#'js2-parse-const-var
54260 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 57 48 49 4c 45 20 20 20 ).....(aset.parsers.js2-WHILE...
54280 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 77 68 69 6c 65 29 0a 20 20 20 20 28 61 73 65 74 20 70 ..#'js2-parse-while).....(aset.p
542a0 61 72 73 65 72 73 20 6a 73 32 2d 57 49 54 48 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 arsers.js2-WITH......#'js2-parse
542c0 2d 77 69 74 68 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 59 49 45 -with).....(aset.parsers.js2-YIE
542e0 4c 44 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 2d 79 69 65 6c 64 29 0a 20 20 LD.....#'js2-parse-ret-yield)...
54300 20 20 70 61 72 73 65 72 73 29 0a 20 20 22 41 20 76 65 63 74 6f 72 20 6d 61 70 70 69 6e 67 20 74 ..parsers)..."A.vector.mapping.t
54320 6f 6b 65 6e 20 74 79 70 65 73 20 74 6f 20 70 61 72 73 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 oken.types.to.parser.functions."
54340 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d 6d 69 73 73 69 6e 67 )..(defun.js2-parse-warn-missing
54360 2d 73 65 6d 69 20 28 62 65 67 20 65 6e 64 29 0a 20 20 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d -semi.(beg.end)...(and.js2-mode-
54380 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 6a 73 32 2d show-strict-warnings........js2-
543a0 73 74 72 69 63 74 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 strict-missing-semi-warning.....
543c0 20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 ...(js2-add-strict-warning......
543e0 20 20 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 73 65 6d 69 22 20 6e 69 6c 0a 20 20 20 20 20 20 ..."msg.missing.semi".nil.......
54400 20 20 3b 3b 20 62 61 63 6b 20 75 70 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 73 74 61 ..;;.back.up.to.beginning.of.sta
54420 74 65 6d 65 6e 74 20 6f 72 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 6d 61 78 20 62 65 67 20 tement.or.line.........(max.beg.
54440 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (save-excursion.................
54460 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(goto-char.end)..............
54480 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 65 ......(point-at-bol))).........e
544a0 6e 64 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6e 6f 2d 73 65 6d 69 2d 69 6e 73 nd)))..(defconst.js2-no-semi-ins
544c0 65 72 74 69 6f 6e 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 49 46 0a 20 20 20 20 20 20 20 20 6a 73 ertion...(list.js2-IF.........js
544e0 32 2d 53 57 49 54 43 48 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 57 48 49 4c 45 0a 20 20 20 20 20 2-SWITCH.........js2-WHILE......
54500 20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 46 4f 52 0a 20 20 20 20 20 20 ...js2-DO.........js2-FOR.......
54520 20 20 6a 73 32 2d 54 52 59 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 57 49 54 48 0a 20 20 20 20 20 ..js2-TRY.........js2-WITH......
54540 20 20 20 6a 73 32 2d 4c 43 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 45 52 52 4f 52 0a 20 20 20 20 ...js2-LC.........js2-ERROR.....
54560 20 20 20 20 6a 73 32 2d 53 45 4d 49 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 43 4c 41 53 53 0a 20 ....js2-SEMI.........js2-CLASS..
54580 20 20 20 20 20 20 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 6a 73 32 2d .......js2-FUNCTION.........js2-
545a0 45 58 50 4f 52 54 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 74 6f 6b 65 6e 73 20 74 68 61 74 20 64 EXPORT)..."List.of.tokens.that.d
545c0 6f 6e 27 74 20 64 6f 20 61 75 74 6f 6d 61 74 69 63 20 73 65 6d 69 63 6f 6c 6f 6e 20 69 6e 73 65 on't.do.automatic.semicolon.inse
545e0 72 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 61 75 74 6f 69 6e 73 65 rtion.")..(defconst.js2-autoinse
54600 72 74 2d 73 65 6d 69 2d 61 6e 64 2d 77 61 72 6e 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 45 52 52 rt-semi-and-warn...(list.js2-ERR
54620 4f 52 20 6a 73 32 2d 45 4f 46 20 6a 73 32 2d 52 43 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d OR.js2-EOF.js2-RC))..(defun.js2-
54640 73 74 61 74 65 6d 65 6e 74 2d 68 65 6c 70 65 72 20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 74 statement-helper.()...(let*.((tt
54660 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 72 73 .(js2-get-token))..........(firs
54680 74 2d 74 74 20 74 74 29 0a 20 20 20 20 20 20 20 20 20 28 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 t-tt.tt)..........(async-pos.(js
546a0 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 2-match-async-function))........
546c0 20 20 28 70 61 72 73 65 72 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 ..(parser.(if.(=.tt.js2-ERROR)..
546e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d ....................#'js2-parse-
54700 73 65 6d 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 73 79 6e semi....................(if.asyn
54720 63 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 c-pos........................(ap
54740 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 ply-partially.#'js2-parse-functi
54760 6f 6e 2d 73 74 6d 74 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 on-stmt.async-pos)..............
54780 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6a 73 32 2d 70 61 72 73 65 72 73 20 74 74 29 29 29 29 ........(aref.js2-parsers.tt))))
547a0 0a 20 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 73 74 61 74 ..........pn).....;;.If.the.stat
547c0 65 6d 65 6e 74 20 69 73 20 73 65 74 2c 20 74 68 65 6e 20 69 74 27 73 20 62 65 65 6e 20 74 6f 6c ement.is.set,.then.it's.been.tol
547e0 64 20 69 74 73 20 6c 61 62 65 6c 20 62 79 20 6e 6f 77 2e 0a 20 20 20 20 28 61 6e 64 20 6a 73 32 d.its.label.by.now......(and.js2
54800 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 61 62 65 -labeled-stmt..........(js2-labe
54820 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 led-stmt-node-stmt.js2-labeled-s
54840 74 6d 74 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d tmt)..........(setq.js2-labeled-
54860 73 74 6d 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 66 75 6e 63 61 6c 6c stmt.nil)).....(setq.pn.(funcall
54880 20 70 61 72 73 65 72 29 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 64 6f 20 61 75 74 6f 20 73 .parser)).....;;.Don't.do.auto.s
548a0 65 6d 69 20 69 6e 73 65 72 74 69 6f 6e 20 66 6f 72 20 63 65 72 74 61 69 6e 20 73 74 61 74 65 6d emi.insertion.for.certain.statem
548c0 65 6e 74 20 74 79 70 65 73 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 6d 65 6d 71 ent.types......(unless.(or.(memq
548e0 20 66 69 72 73 74 2d 74 74 20 6a 73 32 2d 6e 6f 2d 73 65 6d 69 2d 69 6e 73 65 72 74 69 6f 6e 29 .first-tt.js2-no-semi-insertion)
54900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 .................(js2-labeled-st
54920 6d 74 2d 6e 6f 64 65 2d 70 20 70 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 mt-node-p.pn).................as
54940 79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d ync-pos).......(js2-auto-insert-
54960 73 65 6d 69 63 6f 6c 6f 6e 20 70 6e 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 semicolon.pn)).....pn))..(defun.
54980 6a 73 32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d 73 65 6d 69 63 6f 6c 6f 6e 20 28 70 6e 29 0a 20 js2-auto-insert-semicolon.(pn)..
549a0 20 28 6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 .(let*.((tt.(js2-get-token))....
549c0 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 29 0a 20 ......(pos.(js2-node-pos.pn)))..
549e0 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 45 4d .....(cond........((=.tt.js2-SEM
54a00 49 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 65 78 74 65 6e 64 20 74 68 65 20 6e 6f 64 65 20 62 6f I).........;;.extend.the.node.bo
54a20 75 6e 64 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a 20 unds.to.include.the.semicolon...
54a40 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 .......(setf.(js2-node-len.pn).(
54a60 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 29 -.(js2-current-token-end).pos)))
54a80 0a 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 74 74 20 6a 73 32 2d 61 75 74 6f 69 6e 73 65 72 74 ........((memq.tt.js2-autoinsert
54aa0 2d 73 65 6d 69 2d 61 6e 64 2d 77 61 72 6e 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 -semi-and-warn).........(js2-ung
54ac0 65 74 2d 74 6f 6b 65 6e 29 20 3b 20 4e 6f 74 20 27 3b 27 2c 20 64 6f 20 6e 6f 74 20 63 6f 6e 73 et-token).;.Not.';',.do.not.cons
54ae0 75 6d 65 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 75 74 6f 69 6e 73 65 72 74 20 3b 0a 20 20 20 ume..........;;.Autoinsert.;....
54b00 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d 6d 69 73 73 69 6e 67 2d 73 65 6d .....(js2-parse-warn-missing-sem
54b20 69 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 70 6e 29 29 29 0a 20 20 20 20 20 20 i.pos.(js2-node-end.pn))).......
54b40 20 28 74 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d .(t.........(if.(not.(js2-token-
54b60 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e follows-eol-p.(js2-current-token
54b80 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 70 6f 72 74 20 65 72 72 6f 72 20 ))).............;;.Report.error.
54ba0 69 66 20 6e 6f 20 45 4f 4c 20 6f 72 20 61 75 74 6f 69 6e 73 65 72 74 20 27 3b 27 20 6f 74 68 65 if.no.EOL.or.autoinsert.';'.othe
54bc0 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 rwise.............(js2-report-er
54be0 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 73 74 6d 74 22 29 0a 20 20 20 20 20 20 20 20 ror."msg.no.semi.stmt").........
54c00 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 20 70 ..(js2-parse-warn-missing-semi.p
54c20 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 os.(js2-node-end.pn))).........(
54c40 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 20 3b 20 4e 6f 74 20 27 3b 27 2c 20 64 6f 20 6e js2-unget-token).;.Not.';',.do.n
54c60 6f 74 20 63 6f 6e 73 75 6d 65 2e 0a 20 20 20 20 20 20 20 20 29 29 29 29 0a 0a 28 64 65 66 75 6e ot.consume..........))))..(defun
54c80 20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 28 29 0a 20 20 22 50 61 72 73 65 .js2-parse-condition.()..."Parse
54ca0 20 61 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 62 6f 6f 6c 65 61 6e 20 65 78 70 72 65 73 73 .a.parenthesized.boolean.express
54cc0 69 6f 6e 2c 20 65 2e 67 2e 20 69 6e 20 61 6e 20 69 66 2d 20 6f 72 20 77 68 69 6c 65 2d 73 74 6d ion,.e.g..in.an.if-.or.while-stm
54ce0 74 2e 0a 54 68 65 20 70 61 72 65 6e 73 20 61 72 65 20 64 69 73 63 61 72 64 65 64 20 61 6e 64 20 t..The.parens.are.discarded.and.
54d00 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 20 69 73 20 72 65 74 75 72 6e 65 64 2e the.expression.node.is.returned.
54d20 0a 54 68 65 20 60 70 6f 73 27 20 66 69 65 6c 64 20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 20 76 .The.`pos'.field.of.the.return.v
54d40 61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74 alue.is.set.to.an.absolute.posit
54d60 69 6f 6e 0a 74 68 61 74 20 6d 75 73 74 20 62 65 20 66 69 78 65 64 20 75 70 20 62 79 20 74 68 65 ion.that.must.be.fixed.up.by.the
54d80 20 63 61 6c 6c 65 72 2e 0a 52 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 20 6c 69 73 74 20 .caller..Return.value.is.a.list.
54da0 28 45 58 50 52 20 4c 50 20 52 50 29 2c 20 77 69 74 68 20 61 62 73 6f 6c 75 74 65 20 70 61 72 65 (EXPR.LP.RP),.with.absolute.pare
54dc0 6e 20 70 6f 73 69 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 70 6e 20 6c 70 20 72 70 29 0a n.positions."...(let.(pn.lp.rp).
54de0 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 ....(if.(js2-must-match.js2-LP."
54e00 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 msg.no.paren.cond").........(set
54e20 71 20 6c 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 q.lp.(js2-current-token-beg)))..
54e40 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 ...(setq.pn.(js2-parse-expr))...
54e60 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 ..(if.(js2-must-match.js2-RP."ms
54e80 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20 g.no.paren.after.cond").........
54ea0 28 73 65 74 71 20 72 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 (setq.rp.(js2-current-token-beg)
54ec0 29 29 0a 20 20 20 20 3b 3b 20 52 65 70 6f 72 74 20 73 74 72 69 63 74 20 77 61 72 6e 69 6e 67 20 )).....;;.Report.strict.warning.
54ee0 6f 6e 20 63 6f 64 65 20 6c 69 6b 65 20 22 69 66 20 28 61 20 3d 20 37 29 20 2e 2e 2e 22 0a 20 20 on.code.like."if.(a.=.7)...."...
54f00 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 73 74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69 67 ..(if.(and.js2-strict-cond-assig
54f20 6e 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 n-warning..............(js2-assi
54f40 67 6e 2d 6e 6f 64 65 2d 70 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d gn-node-p.pn)).........(js2-add-
54f60 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 65 71 75 61 6c 2e 61 73 2e 61 73 73 strict-warning."msg.equal.as.ass
54f80 69 67 6e 22 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ign".nil........................
54fa0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 0a 20 20 20 20 20 .........(js2-node-pos.pn)......
54fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6a ...........................(+.(j
54fe0 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-node-pos.pn).................
55000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e ...................(js2-node-len
55020 20 70 6e 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 70 6e 20 6c 70 20 72 70 29 29 29 0a 0a 28 .pn)))).....(list.pn.lp.rp)))..(
55040 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 66 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 defun.js2-parse-if.()..."Parser.
55060 66 6f 72 20 69 66 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 for.if-statement...Last.matched.
55080 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 49 46 2e 22 0a 20 20 28 6c 65 74 20 28 28 token.must.be.js2-IF."...(let.((
550a0 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 pos.(js2-current-token-beg))....
550c0 20 20 20 20 20 63 6f 6e 64 20 69 66 2d 74 72 75 65 20 69 66 2d 66 61 6c 73 65 20 65 6c 73 65 2d .....cond.if-true.if-false.else-
550e0 70 6f 73 20 65 6e 64 20 70 6e 29 0a 20 20 20 20 28 73 65 74 71 20 63 6f 6e 64 20 28 6a 73 32 2d pos.end.pn).....(setq.cond.(js2-
55100 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 69 66 2d 74 72 parse-condition)...........if-tr
55120 75 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 ue.(js2-parse-statement)........
55140 20 20 20 69 66 2d 66 61 6c 73 65 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e ...if-false.(if.(js2-match-token
55160 20 6a 73 32 2d 45 4c 53 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-ELSE)......................
55180 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(progn........................
551a0 20 20 28 73 65 74 71 20 65 6c 73 65 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 ..(setq.else-pos.(-.(js2-current
551c0 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -token-beg).pos))...............
551e0 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 ...........(js2-parse-statement)
55200 29 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 28 ))...........end.(js2-node-end.(
55220 6f 72 20 69 66 2d 66 61 6c 73 65 20 69 66 2d 74 72 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 or.if-false.if-true))...........
55240 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 69 66 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 pn.(make-js2-if-node.:pos.pos...
55260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 .............................:le
55280 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.(-.end.pos)...................
552a0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 64 69 74 69 6f 6e 20 28 63 61 72 20 63 6f 6e .............:condition.(car.con
552c0 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d)..............................
552e0 20 20 3a 74 68 65 6e 2d 70 61 72 74 20 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 ..:then-part.if-true............
55300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6c 73 65 2d 70 61 72 74 20 69 ....................:else-part.i
55320 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f-false.........................
55340 20 20 20 20 20 20 20 3a 65 6c 73 65 2d 70 6f 73 20 65 6c 73 65 2d 70 6f 73 0a 20 20 20 20 20 20 .......:else-pos.else-pos.......
55360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 70 20 28 6a 73 .........................:lp.(js
55380 32 2d 72 65 6c 70 6f 73 20 28 63 6c 2d 73 65 63 6f 6e 64 20 63 6f 6e 64 29 20 70 6f 73 29 0a 20 2-relpos.(cl-second.cond).pos)..
553a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 ..............................:r
553c0 70 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63 6c 2d 74 68 69 72 64 20 63 6f 6e 64 29 20 70 6f p.(js2-relpos.(cl-third.cond).po
553e0 73 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 s))).....(js2-node-add-children.
55400 70 6e 20 28 63 61 72 20 63 6f 6e 64 29 20 69 66 2d 74 72 75 65 20 69 66 2d 66 61 6c 73 65 29 0a pn.(car.cond).if-true.if-false).
55420 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 ....pn))..(defun.js2-parse-impor
55440 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6f 72 2d 65 78 70 72 20 28 29 0a 20 20 28 69 66 20 28 t-declaration-or-expr.()...(if.(
55460 6d 65 6d 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 60 28 2c 6a 73 32 2d 4c 50 20 memq.(js2-peek-token).`(,js2-LP.
55480 2c 6a 73 32 2d 44 4f 54 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 ,js2-DOT)).......(js2-parse-expr
554a0 2d 73 74 6d 74 29 0a 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 29 29 29 0a -stmt).....(js2-parse-import))).
554c0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 20 28 29 0a 20 20 22 50 .(defun.js2-parse-import.()..."P
554e0 61 72 73 65 20 69 6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 65 20 63 75 72 72 65 arse.import.statement..The.curre
55500 6e 74 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 49 4d 50 4f 52 54 2e 22 0a 20 20 nt.token.must.be.js2-IMPORT."...
55520 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6a 73 32 2d 63 75 72 72 (unless.(js2-ast-root-p.js2-curr
55540 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 ent-scope).....(js2-report-error
55560 20 22 6d 73 67 2e 6d 6f 64 2e 69 6d 70 6f 72 74 2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76 ."msg.mod.import.decl.at.top.lev
55580 65 6c 22 29 29 0a 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d el"))...(let.((beg.(js2-current-
555a0 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6a 73 32 2d 6d 61 74 token-beg))).....(cond.((js2-mat
555c0 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 53 54 52 49 4e 47 29 0a 20 20 20 20 20 20 20 20 20 20 20 ch-token.js2-STRING)............
555e0 28 6d 61 6b 65 2d 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 (make-js2-import-node...........
55600 20 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 ..:pos.beg.............:len.(-.(
55620 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 js2-current-token-end).beg).....
55640 20 20 20 20 20 20 20 20 3a 6d 6f 64 75 6c 65 2d 69 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d ........:module-id.(js2-current-
55660 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 token-string)))...........(t....
55680 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a ........(let*.((import-clause.(j
556a0 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 20 s2-parse-import-clause))........
556c0 20 20 20 20 20 20 20 20 20 20 20 28 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 61 6e 64 20 69 6d 70 ...........(from-clause.(and.imp
556e0 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73 ort-clause.(js2-parse-from-claus
55700 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 75 6c 65 2d 69 e)))...................(module-i
55720 64 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d 66 72 6f 6d 2d 63 6c d.(when.from-clause.(js2-from-cl
55740 61 75 73 65 2d 6e 6f 64 65 2d 6d 6f 64 75 6c 65 2d 69 64 20 66 72 6f 6d 2d 63 6c 61 75 73 65 29 ause-node-module-id.from-clause)
55760 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 6d 61 6b 65 ))...................(node.(make
55780 2d 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -js2-import-node................
557a0 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........:pos.beg..............
557c0 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 ............:len.(-.(js2-current
557e0 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -token-end).beg)................
55800 20 20 20 20 20 20 20 20 20 20 3a 69 6d 70 6f 72 74 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a ..........:import.import-clause.
55820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 72 6f 6d 20 66 .........................:from.f
55840 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rom-clause......................
55860 20 20 20 20 3a 6d 6f 64 75 6c 65 2d 69 64 20 6d 6f 64 75 6c 65 2d 69 64 29 29 29 0a 20 20 20 20 ....:module-id.module-id))).....
55880 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a 20 20 20 .........(when.import-clause....
558a0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 ............(js2-node-add-childr
558c0 65 6e 20 6e 6f 64 65 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 en.node.import-clause)).........
558e0 20 20 20 20 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 .....(when.from-clause..........
55900 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 ......(js2-node-add-children.nod
55920 65 20 66 72 6f 6d 2d 63 6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 e.from-clause))..............nod
55940 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 2d e)))))..(defun.js2-parse-import-
55960 63 6c 61 75 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 62 69 6e 64 69 6e 67 73 20 clause.()..."Parse.the.bindings.
55980 69 6e 20 61 6e 20 69 6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 54 68 69 73 20 63 61 6e in.an.import.statement..This.can
559a0 20 74 61 6b 65 20 6d 61 6e 79 20 66 6f 72 6d 73 3a 0a 0a 49 6d 70 6f 72 74 65 64 44 65 66 61 75 .take.many.forms:..ImportedDefau
559c0 6c 74 42 69 6e 64 69 6e 67 20 2d 3e 20 60 66 6f 6f 27 0a 4e 61 6d 65 53 70 61 63 65 49 6d 70 6f ltBinding.->.`foo'.NameSpaceImpo
559e0 72 74 20 2d 3e 20 60 2a 20 61 73 20 6c 69 62 27 0a 4e 61 6d 65 64 49 6d 70 6f 72 74 73 20 2d 3e rt.->.`*.as.lib'.NamedImports.->
55a00 20 60 7b 66 6f 6f 20 61 73 20 62 61 72 2c 20 62 61 6e 67 7d 27 0a 49 6d 70 6f 72 74 65 64 44 65 .`{foo.as.bar,.bang}'.ImportedDe
55a20 66 61 75 6c 74 42 69 6e 64 69 6e 67 20 2c 20 4e 61 6d 65 53 70 61 63 65 49 6d 70 6f 72 74 20 2d faultBinding.,.NameSpaceImport.-
55a40 3e 20 60 66 6f 6f 2c 20 2a 20 61 73 20 6c 69 62 27 0a 49 6d 70 6f 72 74 65 64 44 65 66 61 75 6c >.`foo,.*.as.lib'.ImportedDefaul
55a60 74 42 69 6e 64 69 6e 67 20 2c 20 4e 61 6d 65 64 49 6d 70 6f 72 74 73 20 2d 3e 20 60 66 6f 6f 2c tBinding.,.NamedImports.->.`foo,
55a80 20 7b 62 61 72 2c 20 62 61 7a 20 61 73 20 62 69 66 7d 27 0a 0a 54 72 79 20 74 6f 20 6d 61 74 63 .{bar,.baz.as.bif}'..Try.to.matc
55aa0 68 20 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 73 20 61 6e 64 20 6e 61 6d 65 64 20 69 6d h.namespace.imports.and.named.im
55ac0 70 6f 72 74 73 20 66 69 72 73 74 20 62 65 63 61 75 73 65 20 6e 6f 74 68 69 6e 67 20 63 61 6e 0a ports.first.because.nothing.can.
55ae0 63 6f 6d 65 20 61 66 74 65 72 20 74 68 65 6d 2e 20 49 66 20 69 74 20 69 73 20 61 6e 20 69 6d 70 come.after.them..If.it.is.an.imp
55b00 6f 72 74 65 64 20 64 65 66 61 75 6c 74 20 62 69 6e 64 69 6e 67 2c 20 74 68 65 6e 20 69 74 20 63 orted.default.binding,.then.it.c
55b20 6f 75 6c 64 20 68 61 76 65 20 6e 61 6d 65 64 0a 69 6d 70 6f 72 74 73 20 6f 72 20 61 20 6e 61 6d ould.have.named.imports.or.a.nam
55b40 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 74 68 61 74 20 66 6f 6c 6c 6f 77 73 20 69 74 2e 0a 22 espace.import.that.follows.it.."
55b60 0a 20 20 28 6c 65 74 2a 20 28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 ...(let*.((beg.(js2-current-toke
55b80 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 61 75 73 65 20 28 6d 61 6b 65 2d 6a n-beg))..........(clause.(make-j
55ba0 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 s2-import-clause-node...........
55bc0 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 ........:pos.beg))..........(chi
55be0 6c 64 72 65 6e 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 ldren.(list))).....(cond......((
55c00 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 28 js2-match-token.js2-MUL).......(
55c20 6c 65 74 20 28 28 6e 73 2d 69 6d 70 6f 72 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 73 let.((ns-import.(js2-parse-names
55c40 70 61 63 65 2d 69 6d 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6e 73 2d pace-import))).........(when.ns-
55c60 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 import...........(let.((name-nod
55c80 65 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6e 61 6d e.(js2-namespace-import-node-nam
55ca0 65 20 6e 73 2d 69 6d 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d e.ns-import))).............(js2-
55cc0 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c define-symbol..............js2-L
55ce0 45 54 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 ET.(js2-name-node-name.name-node
55d00 29 20 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 ).name-node.t))...........(setf.
55d20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 (js2-import-clause-node-namespac
55d40 65 2d 69 6d 70 6f 72 74 20 63 6c 61 75 73 65 29 20 6e 73 2d 69 6d 70 6f 72 74 29 0a 20 20 20 20 e-import.clause).ns-import).....
55d60 20 20 20 20 20 20 28 70 75 73 68 20 6e 73 2d 69 6d 70 6f 72 74 20 63 68 69 6c 64 72 65 6e 29 29 ......(push.ns-import.children))
55d80 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43 ))......((js2-match-token.js2-LC
55da0 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6d 70 6f 72 74 73 20 28 6a 73 32 2d 70 61 72 73 ).......(let.((imports.(js2-pars
55dc0 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 73 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 e-export-bindings.t))).........(
55de0 73 65 74 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d setf.(js2-import-clause-node-nam
55e00 65 64 2d 69 6d 70 6f 72 74 73 20 63 6c 61 75 73 65 29 20 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 ed-imports.clause).imports).....
55e20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 6d 70 6f 72 74 20 69 6d 70 6f 72 74 73 29 0a 20 20 20 ....(dolist.(import.imports)....
55e40 20 20 20 20 20 20 20 28 70 75 73 68 20 69 6d 70 6f 72 74 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 .......(push.import.children)...
55e60 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6a 73 32 2d 65 78 ........(let.((name-node.(js2-ex
55e80 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 69 6d 70 port-binding-node-local-name.imp
55ea0 6f 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 2d 6e 6f ort))).............(when.name-no
55ec0 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d de...............(js2-define-sym
55ee0 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d bol................js2-LET.(js2-
55f00 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 20 6e 61 6d 65 2d 6e name-node-name.name-node).name-n
55f20 6f 64 65 20 74 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 ode.t))))))......((=.(js2-peek-t
55f40 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 69 6e oken).js2-NAME).......(let.((bin
55f60 64 69 6e 67 20 28 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e ding.(js2-maybe-parse-export-bin
55f80 64 69 6e 67 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 2d 6e 61 ding.t))).........(let.((node-na
55fa0 6d 65 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 me.(js2-export-binding-node-loca
55fc0 6c 2d 6e 61 6d 65 20 62 69 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 l-name.binding)))...........(js2
55fe0 2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 6e 61 6d 65 -define-symbol.js2-LET.(js2-name
56000 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 2d 6e 61 6d 65 29 20 6e 6f 64 65 2d 6e 61 6d 65 20 -node-name.node-name).node-name.
56020 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c t)).........(setf.(js2-import-cl
56040 61 75 73 65 2d 6e 6f 64 65 2d 64 65 66 61 75 6c 74 2d 62 69 6e 64 69 6e 67 20 63 6c 61 75 73 65 ause-node-default-binding.clause
56060 29 20 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 62 69 6e 64 69 6e 67 ).binding).........(push.binding
56080 20 63 68 69 6c 64 72 65 6e 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 .children)).......(when.(js2-mat
560a0 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e ch-token.js2-COMMA).........(con
560c0 64 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 d..........((js2-match-token.js2
560e0 2d 4d 55 4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 73 2d 69 6d 70 6f 72 74 -MUL)...........(let.((ns-import
56100 20 28 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 29 29 29 0a .(js2-parse-namespace-import))).
56120 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6a 73 ............(let.((name-node.(js
56140 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 73 2d 2-namespace-import-node-name.ns-
56160 69 6d 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 import)))...............(js2-def
56180 69 6e 65 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 ine-symbol................js2-LE
561a0 54 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 T.(js2-name-node-name.name-node)
561c0 20 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 .name-node.t)).............(setf
561e0 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 .(js2-import-clause-node-namespa
56200 63 65 2d 69 6d 70 6f 72 74 20 63 6c 61 75 73 65 29 20 6e 73 2d 69 6d 70 6f 72 74 29 0a 20 20 20 ce-import.clause).ns-import)....
56220 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 73 2d 69 6d 70 6f 72 74 20 63 68 69 6c 64 72 65 .........(push.ns-import.childre
56240 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 n)))..........((js2-match-token.
56260 6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6d 70 6f 72 74 73 js2-LC)...........(let.((imports
56280 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 73 20 74 29 29 29 .(js2-parse-export-bindings.t)))
562a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 .............(setf.(js2-import-c
562c0 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 63 6c 61 75 73 65 29 lause-node-named-imports.clause)
562e0 20 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 .imports).............(dolist.(i
56300 6d 70 6f 72 74 20 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 mport.imports)...............(pu
56320 73 68 20 69 6d 70 6f 72 74 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 sh.import.children).............
56340 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 ..(let.((name-node.(js2-export-b
56360 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 69 6d 70 6f 72 74 29 29 29 inding-node-local-name.import)))
56380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 2d 6e 6f 64 65 .................(when.name-node
563a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 ...................(js2-define-s
563c0 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 ymbol....................js2-LET
563e0 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 20 .(js2-name-node-name.name-node).
56400 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 6a name-node.t))))))..........(t.(j
56420 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 29 29 29 s2-report-error."msg.syntax"))))
56440 29 0a 20 20 20 20 20 28 74 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 )......(t.(js2-report-error."msg
56460 2e 6d 6f 64 2e 64 65 63 6c 61 72 61 74 69 6f 6e 2e 61 66 74 65 72 2e 69 6d 70 6f 72 74 22 29 29 .mod.declaration.after.import"))
56480 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 63 6c 61 75 73 65 ).....(setf.(js2-node-len.clause
564a0 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 ).(-.(js2-current-token-end).beg
564c0 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 )).....(apply.#'js2-node-add-chi
564e0 6c 64 72 65 6e 20 63 6c 61 75 73 65 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 63 6c 61 75 73 ldren.clause.children).....claus
56500 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 73 70 61 63 65 2d e))..(defun.js2-parse-namespace-
56520 69 6d 70 6f 72 74 20 28 29 0a 20 20 22 50 61 72 73 65 20 61 20 6e 61 6d 65 73 70 61 63 65 20 69 import.()..."Parse.a.namespace.i
56540 6d 70 6f 72 74 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 63 68 20 61 73 20 60 2a 20 61 73 20 62 mport.expression.such.as.`*.as.b
56560 61 72 27 2e 0a 54 68 65 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a ar'..The.current.token.must.be.j
56580 73 32 2d 4d 55 4c 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 s2-MUL."...(let.((beg.(js2-curre
565a0 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 nt-token-beg))).....(cond.......
565c0 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 22 61 73 22 29 ((js2-match-contextual-kwd."as")
565e0 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 70 72 ........(when.(js2-must-match-pr
56600 6f 70 2d 6e 61 6d 65 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 20 28 op-name."msg.syntax")..........(
56620 6c 65 74 20 28 28 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 let.((node.(make-js2-namespace-i
56640 6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mport-node......................
56660 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:pos.beg.......................
56680 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 :len.(-.(js2-current-token-end).
566a0 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 beg).......................:name
566c0 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 .(make-js2-name-node............
566e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 ..................:pos.(js2-curr
56700 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent-token-beg)..................
56720 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 ............:len.(-.(js2-current
56740 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -token-end).....................
56760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f .................(js2-current-to
56780 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ken-beg)).......................
567a0 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d .......:name.(js2-current-token-
567c0 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 string)))))............(js2-node
567e0 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 -add-children.node.(js2-namespac
56800 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 e-import-node-name.node)).......
56820 20 20 20 20 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 28 6a 73 .....node))).......(t........(js
56840 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 2-unget-token)........(js2-repor
56860 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 6e 69 6c t-error."msg.syntax")........nil
56880 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 ))))...(defun.js2-parse-from-cla
568a0 75 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 66 72 6f 6d 20 63 6c 61 75 73 65 20 use.()..."Parse.the.from.clause.
568c0 69 6e 20 61 6e 20 69 6d 70 6f 72 74 20 6f 72 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 in.an.import.or.export.statement
568e0 2e 0a 45 2e 67 2e 2c 20 5c 22 66 72 6f 6d 20 5c 5c 3d 27 73 72 63 2f 6c 69 62 5c 5c 3d 27 5c 22 ..E.g.,.\"from.\\='src/lib\\='\"
56900 2e 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b ."...(if.(js2-match-contextual-k
56920 77 64 20 22 66 72 6f 6d 22 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32 wd."from").......(let.((beg.(js2
56940 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 -current-token-beg))).........(c
56960 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a ond..........((js2-match-token.j
56980 73 32 2d 53 54 52 49 4e 47 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 66 s2-STRING)...........(make-js2-f
569a0 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 rom-clause-node............:pos.
569c0 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 beg............:len.(-.(js2-curr
569e0 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a ent-token-end).beg)............:
56a00 6d 6f 64 75 6c 65 2d 69 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 module-id.(js2-current-token-str
56a20 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 74 61 64 61 74 61 2d 70 20 6e 69 6c 29 ing)............:metadata-p.nil)
56a40 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 )..........((js2-match-token.js2
56a60 2d 54 48 49 53 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 75 73 74 -THIS)...........(when.(js2-must
56a80 2d 6d 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e 6d 6f 64 2e 73 70 65 63 2e 61 66 74 65 72 2e -match-name."msg.mod.spec.after.
56aa0 66 72 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 22 6d from").............(if.(equal."m
56ac0 6f 64 75 6c 65 22 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 odule".(js2-current-token-string
56ae0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 66 72 6f )).................(make-js2-fro
56b00 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a m-clause-node..................:
56b20 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d pos.beg..................:len.(-
56b40 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 .(js2-current-token-end).beg)...
56b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 75 6c 65 2d 69 64 20 22 74 68 69 73 22 ...............:module-id."this"
56b80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 74 61 64 61 74 61 2d 70 20 74 29 ..................:metadata-p.t)
56ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 ...............(js2-unget-token)
56bc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 ...............(js2-unget-token)
56be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 ...............(js2-report-error
56c00 20 22 6d 73 67 2e 6d 6f 64 2e 73 70 65 63 2e 61 66 74 65 72 2e 66 72 6f 6d 22 29 0a 20 20 20 20 ."msg.mod.spec.after.from").....
56c20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 6a 73 ..........nil)))..........(t.(js
56c40 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 6f 64 2e 73 70 65 63 2e 61 66 74 2-report-error."msg.mod.spec.aft
56c60 65 72 2e 66 72 6f 6d 22 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 er.from").nil))).....(js2-report
56c80 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 6f 64 2e 66 72 6f 6d 2e 61 66 74 65 72 2e 69 6d 70 6f 72 -error."msg.mod.from.after.impor
56ca0 74 2e 73 70 65 63 2e 73 65 74 22 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a t.spec.set").....nil))..(defun.j
56cc0 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 73 20 28 26 6f 70 74 69 6f s2-parse-export-bindings.(&optio
56ce0 6e 61 6c 20 69 6d 70 6f 72 74 2d 70 29 0a 20 20 22 50 61 72 73 65 20 61 20 6c 69 73 74 20 6f 66 nal.import-p)..."Parse.a.list.of
56d00 20 65 78 70 6f 72 74 20 62 69 6e 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 20 73 75 63 68 .export.binding.expressions.such
56d20 20 61 73 20 7b 7d 2c 20 7b 66 6f 6f 2c 20 62 61 72 7d 2c 20 61 6e 64 0a 7b 66 6f 6f 20 61 73 20 .as.{},.{foo,.bar},.and.{foo.as.
56d40 62 61 72 2c 20 62 61 7a 20 61 73 20 62 61 6e 67 7d 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 74 bar,.baz.as.bang}..The.current.t
56d60 6f 6b 65 6e 20 6d 75 73 74 20 62 65 0a 6a 73 32 2d 4c 43 2e 20 52 65 74 75 72 6e 20 61 20 6c 69 oken.must.be.js2-LC..Return.a.li
56d80 73 70 20 6c 69 73 74 20 6f 66 20 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f sp.list.of.js2-export-binding-no
56da0 64 65 22 0a 20 20 28 6c 65 74 20 28 28 62 69 6e 64 69 6e 67 73 20 28 6c 69 73 74 29 29 29 0a 20 de"...(let.((bindings.(list)))..
56dc0 20 20 20 28 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 69 6e 64 69 6e 67 ...(while.........(let.((binding
56de0 20 28 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 .(js2-maybe-parse-export-binding
56e00 20 69 6d 70 6f 72 74 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 62 69 6e .import-p)))...........(when.bin
56e20 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 62 69 6e 64 69 6e 67 20 62 ding.............(push.binding.b
56e40 69 6e 64 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 indings))...........(js2-match-t
56e60 6f 6b 65 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 oken.js2-COMMA))).....(when.(js2
56e80 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 28 69 66 20 69 6d 70 6f 72 74 2d 70 0a -must-match.js2-RC.(if.import-p.
56ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
56ec0 20 20 20 20 20 22 6d 73 67 2e 6d 6f 64 2e 72 63 2e 61 66 74 65 72 2e 69 6d 70 6f 72 74 2e 73 70 ....."msg.mod.rc.after.import.sp
56ee0 65 63 2e 6c 69 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ec.list"........................
56f00 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 73 67 2e 6d 6f 64 2e 72 63 2e 61 66 74 65 72 2e 65 78 ............"msg.mod.rc.after.ex
56f20 70 6f 72 74 2e 73 70 65 63 2e 6c 69 73 74 22 29 29 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65 port.spec.list")).......(reverse
56f40 20 62 69 6e 64 69 6e 67 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 79 62 65 2d .bindings))))..(defun.js2-maybe-
56f60 70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 20 28 26 6f 70 74 69 6f 6e 61 6c 20 parse-export-binding.(&optional.
56f80 69 6d 70 6f 72 74 2d 70 29 0a 20 20 22 41 74 74 65 6d 70 74 20 74 6f 20 70 61 72 73 65 20 61 20 import-p)..."Attempt.to.parse.a.
56fa0 62 69 6e 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 75 6e 64 20 69 6e 73 69 64 65 20 binding.expression.found.inside.
56fc0 61 6e 20 69 6d 70 6f 72 74 2f 65 78 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 54 68 69 73 an.import/export.statement..This
56fe0 20 63 61 6e 20 74 61 6b 65 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 65 69 74 68 65 72 20 61 73 20 .can.take.the.form.of.either.as.
57000 73 69 6e 67 6c 65 20 6a 73 32 2d 4e 41 4d 45 20 74 6f 6b 65 6e 20 61 73 20 69 6e 20 60 66 6f 6f single.js2-NAME.token.as.in.`foo
57020 27 20 6f 72 20 61 73 20 69 6e 20 61 0a 72 65 62 69 6e 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f '.or.as.in.a.rebinding.expressio
57040 6e 20 60 62 61 72 20 61 73 20 66 6f 6f 27 2e 20 49 66 20 69 74 20 6d 61 74 63 68 65 73 2c 20 69 n.`bar.as.foo'..If.it.matches,.i
57060 74 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 0a 6a 73 32 t.will.return.an.instance.of.js2
57080 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 61 6e 64 20 63 6f 6e 73 75 6d 65 -export-binding-node.and.consume
570a0 20 61 6c 6c 20 74 68 65 20 74 6f 6b 65 6e 73 2e 20 49 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 .all.the.tokens..If.it.does.not.
570c0 6d 61 74 63 68 2c 20 69 74 0a 63 6f 6e 73 75 6d 65 73 20 6e 6f 20 74 6f 6b 65 6e 73 2e 22 0a 20 match,.it.consumes.no.tokens."..
570e0 20 28 6c 65 74 20 28 28 65 78 74 65 72 6e 2d 6e 61 6d 65 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d .(let.((extern-name.(when.(js2-m
57100 61 74 63 68 2d 70 72 6f 70 2d 6e 61 6d 65 29 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b atch-prop-name).(js2-current-tok
57120 65 6e 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 32 2d 63 en-string))).........(beg.(js2-c
57140 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 65 78 74 65 urrent-token-beg)).........(exte
57160 72 6e 2d 6e 61 6d 65 2d 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c rn-name-len.(js2-current-token-l
57180 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 69 73 2d 72 65 73 65 72 76 65 64 2d 6e 61 6d 65 20 28 en)).........(is-reserved-name.(
571a0 6f 72 20 28 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 20 6a or.(=.(js2-current-token-type).j
571c0 73 32 2d 52 45 53 45 52 56 45 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-RESERVED)....................
571e0 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6a 73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 20 ...........(aref.js2-kwd-tokens.
57200 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20 (js2-current-token-type)))))....
57220 20 28 69 66 20 65 78 74 65 72 6e 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 .(if.extern-name.........(if.(js
57240 32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 22 61 73 22 29 0a 20 20 20 2-match-contextual-kwd."as")....
57260 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 .........(let.((name............
57280 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(or.....................
572a0 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 44 45 46 41 55 4c (and.(js2-match-token.js2-DEFAUL
572c0 54 29 20 22 64 65 66 61 75 6c 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T)."default")...................
572e0 20 20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 ..(and.(js2-match-token.js2-NAME
57300 29 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 29 29 29 ).(js2-current-token-string)))))
57320 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 ...............(if.name.........
57340 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d ..........(let.((node.(make-js2-
57360 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 export-binding-node.............
57380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 ...................:pos.beg.....
573a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 ...........................:len.
573c0 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a (-.(js2-current-token-end).beg).
573e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
57400 6c 6f 63 61 6c 2d 6e 61 6d 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 local-name.(make-js2-name-node..
57420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
57440 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 ...........:name.name...........
57460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
57480 20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 ..:pos.(js2-current-token-beg)..
574a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
574c0 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ...........:len.(js2-current-tok
574e0 65 6e 2d 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en-len))........................
57500 20 20 20 20 20 20 20 20 3a 65 78 74 65 72 6e 2d 6e 61 6d 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e ........:extern-name.(make-js2-n
57520 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame-node........................
57540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 65 78 74 65 ......................:name.exte
57560 72 6e 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rn-name.........................
57580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67 0a 20 20 .....................:pos.beg...
575a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
575c0 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 65 78 74 65 72 6e 2d 6e 61 6d 65 2d 6c 65 6e 29 ...........:len.extern-name-len)
575e0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 ))).....................(js2-nod
57600 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-add-children..................
57620 20 20 20 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ....node......................(j
57640 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d s2-export-binding-node-local-nam
57660 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 e.node)......................(js
57680 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d 2-export-binding-node-extern-nam
576a0 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 e.node)).....................(if
576c0 20 69 6d 70 6f 72 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .import-p.......................
576e0 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ..(js2-set-face.(js2-current-tok
57700 65 6e 2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a en-beg).(js2-current-token-end).
57720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
57740 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 ......'font-lock-variable-name-f
57760 61 63 65 20 27 72 65 63 6f 72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ace.'record))...................
57780 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 ..node).................(js2-ung
577a0 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a et-token).................nil)).
577c0 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6d 61 6b ..........(let*.((name-node.(mak
577e0 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-js2-name-node.................
57800 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d .............:name.(js2-current-
57820 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 token-string)...................
57840 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ...........:pos.(js2-current-tok
57860 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en-beg).........................
57880 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e .....:len.(js2-current-token-len
578a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 6d 61 6b 65 )))..................(node.(make
578c0 2d 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 -js2-export-binding-node........
578e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 .................:pos.(js2-curre
57900 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-token-beg)...................
57920 20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 ......:len.(js2-current-token-le
57940 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 6f 63 61 n).........................:loca
57960 6c 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-name.name-node................
57980 20 20 20 20 20 20 20 20 20 3a 65 78 74 65 72 6e 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 .........:extern-name.name-node)
579a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 73 2d 72 65 73 65 72 76 65 64 )).............(when.is-reserved
579c0 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d -name...............(js2-report-
579e0 65 72 72 6f 72 20 22 6d 73 67 2e 6d 6f 64 2e 61 73 2e 61 66 74 65 72 2e 72 65 73 65 72 76 65 64 error."msg.mod.as.after.reserved
57a00 2e 77 6f 72 64 22 20 65 78 74 65 72 6e 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .word".extern-name))............
57a20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 20 6e 61 6d .(js2-node-add-children.node.nam
57a40 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6d 70 6f 72 74 2d 70 e-node).............(if.import-p
57a60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 .................(js2-set-face.(
57a80 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72 72 js2-current-token-beg).(js2-curr
57aa0 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent-token-end)..................
57ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 .............'font-lock-variable
57ae0 2d 6e 61 6d 65 2d 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -name-face.'record))............
57b00 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 .node)).......nil)))..(defun.js2
57b20 2d 70 61 72 73 65 2d 73 77 69 74 63 68 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 73 -parse-switch.()..."Parser.for.s
57b40 77 69 74 63 68 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 witch-statement...Last.matched.t
57b60 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 53 57 49 54 43 48 2e 22 0a 20 20 28 6c 65 74 oken.must.be.js2-SWITCH."...(let
57b80 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a .((pos.(js2-current-token-beg)).
57ba0 20 20 20 20 20 20 20 20 74 74 20 70 6e 20 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 68 61 73 2d 64 ........tt.pn.discriminant.has-d
57bc0 65 66 61 75 6c 74 20 63 61 73 65 2d 65 78 70 72 20 63 61 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20 efault.case-expr.case-node......
57be0 20 20 20 63 61 73 65 2d 70 6f 73 20 63 61 73 65 73 20 73 74 6d 74 20 6c 70 29 0a 20 20 20 20 28 ...case-pos.cases.stmt.lp).....(
57c00 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 67 2e 6e if.(js2-must-match.js2-LP."msg.n
57c20 6f 2e 70 61 72 65 6e 2e 73 77 69 74 63 68 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c o.paren.switch").........(setq.l
57c40 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 p.(js2-current-token-beg))).....
57c60 28 73 65 74 71 20 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 (setq.discriminant.(js2-parse-ex
57c80 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 77 69 74 63 pr)...........pn.(make-js2-switc
57ca0 68 2d 6e 6f 64 65 20 3a 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 64 69 73 63 72 69 6d 69 6e 61 6e h-node.:discriminant.discriminan
57cc0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
57ce0 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....:pos.pos...................
57d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 70 20 28 6a 73 32 2d 72 65 6c 70 6f 73 .................:lp.(js2-relpos
57d20 20 6c 70 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 .lp.pos))).....(js2-node-add-chi
57d40 6c 64 72 65 6e 20 70 6e 20 64 69 73 63 72 69 6d 69 6e 61 6e 74 29 0a 20 20 20 20 28 6a 73 32 2d ldren.pn.discriminant).....(js2-
57d60 65 6e 74 65 72 2d 73 77 69 74 63 68 20 70 6e 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f enter-switch.pn).....(unwind-pro
57d80 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 tect.........(progn...........(i
57da0 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f f.(js2-must-match.js2-RP."msg.no
57dc0 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 73 77 69 74 63 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 .paren.after.switch")...........
57de0 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 72 70 20 70 6e ....(setf.(js2-switch-node-rp.pn
57e00 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 ).(-.(js2-current-token-beg).pos
57e20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 )))...........(js2-must-match.js
57e40 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 73 77 69 74 63 68 22 29 0a 20 20 20 20 2-LC."msg.no.brace.switch").....
57e60 20 20 20 20 20 20 28 63 61 74 63 68 20 27 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......(catch.'break.............
57e80 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 (while.t...............(setq.tt.
57ea0 28 6a 73 32 2d 6e 65 78 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (js2-next-token)................
57ec0 20 20 20 20 20 63 61 73 65 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e .....case-pos.(js2-current-token
57ee0 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 -beg))...............(cond......
57f00 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 52 43 29 0a 20 20 20 20 20 20 20 ..........((=.tt.js2-RC)........
57f20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 .........(setf.(js2-node-len.pn)
57f40 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 .(-.(js2-current-token-end).pos)
57f60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 ).................(throw.'break.
57f80 6e 69 6c 29 29 20 20 3b 20 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d nil))..;.done................((=
57fa0 20 74 74 20 6a 73 32 2d 43 41 53 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 .tt.js2-CASE).................(s
57fc0 65 74 71 20 63 61 73 65 2d 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a etq.case-expr.(js2-parse-expr)).
57fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 ................(js2-must-match.
58000 6a 73 32 2d 43 4f 4c 4f 4e 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e 63 61 73 65 22 29 29 0a js2-COLON."msg.no.colon.case")).
58020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 44 45 46 41 55 4c ...............((=.tt.js2-DEFAUL
58040 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 68 61 73 2d 64 65 66 61 75 T).................(if.has-defau
58060 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f lt.....................(js2-repo
58080 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 6f 75 62 6c 65 2e 73 77 69 74 63 68 2e 64 65 66 61 rt-error."msg.double.switch.defa
580a0 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 61 73 ult")).................(setq.has
580c0 2d 64 65 66 61 75 6c 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -default.t......................
580e0 20 63 61 73 65 2d 65 78 70 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .case-expr.nil).................
58100 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 43 4f 4c 4f 4e 20 22 6d 73 67 2e 6e (js2-must-match.js2-COLON."msg.n
58120 6f 2e 63 6f 6c 6f 6e 2e 63 61 73 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 o.colon.case"))................(
58140 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 t.................(js2-report-er
58160 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 73 77 69 74 63 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 ror."msg.bad.switch")...........
58180 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 ......(throw.'break.nil)))......
581a0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 61 73 65 2d 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a .........(setq.case-node.(make-j
581c0 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 3a 70 6f 73 20 63 61 73 65 2d 70 6f 73 0a 20 20 20 20 20 s2-case-node.:pos.case-pos......
581e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
58200 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e .............:len.(-.(js2-curren
58220 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 63 61 73 65 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 t-token-end).case-pos)..........
58240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
58260 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 63 61 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 .........:expr.case-expr))......
58280 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 .........(js2-node-add-children.
582a0 63 61 73 65 2d 6e 6f 64 65 20 63 61 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 case-node.case-expr)............
582c0 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 2f 3d 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 ...(while.(and.(/=.(setq.tt.(js2
582e0 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 52 43 29 0a 20 20 20 20 20 20 20 20 20 20 -peek-token)).js2-RC)...........
58300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 74 20 6a 73 32 2d 43 41 53 45 29 ................(/=.tt.js2-CASE)
58320 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 ...........................(/=.t
58340 74 20 6a 73 32 2d 44 45 46 41 55 4c 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.js2-DEFAULT)..................
58360 20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 74 20 6a 73 32 2d 45 4f 46 29 29 0a 20 20 20 20 20 20 .........(/=.tt.js2-EOF)).......
58380 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 73 74 6d 74 20 28 6a 73 32 2d 70 61 72 73 65 2d ..........(setf.stmt.(js2-parse-
583a0 73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 statement)......................
583c0 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 63 61 73 65 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73 .(js2-node-len.case-node).(-.(js
583e0 32 2d 6e 6f 64 65 2d 65 6e 64 20 73 74 6d 74 29 20 63 61 73 65 2d 70 6f 73 29 29 0a 20 20 20 20 2-node-end.stmt).case-pos)).....
58400 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 ............(js2-block-node-push
58420 20 63 61 73 65 2d 6e 6f 64 65 20 73 74 6d 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .case-node.stmt))...............
58440 28 70 75 73 68 20 63 61 73 65 2d 6e 6f 64 65 20 63 61 73 65 73 29 29 29 0a 20 20 20 20 20 20 20 (push.case-node.cases)))........
58460 20 20 20 3b 3b 20 61 64 64 20 63 61 73 65 73 20 6c 61 73 74 2c 20 61 73 20 70 75 73 68 69 6e 67 ...;;.add.cases.last,.as.pushing
58480 20 72 65 76 65 72 73 65 73 20 74 68 65 20 6f 72 64 65 72 20 74 6f 20 62 65 20 63 6f 72 72 65 63 .reverses.the.order.to.be.correc
584a0 74 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 63 61 73 65 73 29 0a t...........(dolist.(kid.cases).
584c0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 ............(js2-node-add-childr
584e0 65 6e 20 70 6e 20 6b 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6b 69 64 en.pn.kid).............(push.kid
58500 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 63 61 73 65 73 20 70 6e 29 29 29 0a 20 20 .(js2-switch-node-cases.pn)))...
58520 20 20 20 20 20 20 20 20 70 6e 29 20 20 3b 20 72 65 74 75 72 6e 20 76 61 6c 75 65 0a 20 20 20 20 ........pn)..;.return.value.....
58540 20 20 28 6a 73 32 2d 65 78 69 74 2d 73 77 69 74 63 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a ..(js2-exit-switch))))..(defun.j
58560 73 32 2d 70 61 72 73 65 2d 77 68 69 6c 65 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 s2-parse-while.()..."Parser.for.
58580 77 68 69 6c 65 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 while-statement...Last.matched.t
585a0 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 57 48 49 4c 45 2e 22 0a 20 20 28 6c 65 74 20 oken.must.be.js2-WHILE."...(let.
585c0 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 ((pos.(js2-current-token-beg))..
585e0 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 29 .......(pn.(make-js2-while-node)
58600 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 62 6f 64 79 29 0a 20 20 20 20 28 6a 73 32 2d 65 6e ).........cond.body).....(js2-en
58620 74 65 72 2d 6c 6f 6f 70 20 70 6e 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 ter-loop.pn).....(unwind-protect
58640 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 .........(progn...........(setf.
58660 63 6f 6e 64 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 20 20 20 cond.(js2-parse-condition)......
58680 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69 ...........(js2-while-node-condi
586a0 74 69 6f 6e 20 70 6e 29 20 28 63 61 72 20 63 6f 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 tion.pn).(car.cond).............
586c0 20 20 20 20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 0a 20 ....body.(js2-parse-statement)..
586e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 62 ...............(js2-while-node-b
58700 6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 ody.pn).body.................(js
58720 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 2-node-len.pn).(-.(js2-node-end.
58740 62 6f 64 79 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d body).pos).................(js2-
58760 77 68 69 6c 65 2d 6e 6f 64 65 2d 6c 70 20 70 6e 29 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63 while-node-lp.pn).(js2-relpos.(c
58780 6c 2d 73 65 63 6f 6e 64 20 63 6f 6e 64 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 l-second.cond).pos).............
587a0 20 20 20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d ....(js2-while-node-rp.pn).(js2-
587c0 72 65 6c 70 6f 73 20 28 63 6c 2d 74 68 69 72 64 20 63 6f 6e 64 29 20 70 6f 73 29 29 0a 20 20 20 relpos.(cl-third.cond).pos))....
587e0 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e .......(js2-node-add-children.pn
58800 20 62 6f 64 79 20 28 63 61 72 20 63 6f 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78 .body.(car.cond))).......(js2-ex
58820 69 74 2d 6c 6f 6f 70 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 it-loop)).....pn))..(defun.js2-p
58840 61 72 73 65 2d 64 6f 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 64 6f 2d 73 74 61 74 arse-do.()..."Parser.for.do-stat
58860 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 ement...Last.matched.token.must.
58880 62 65 20 6a 73 32 2d 44 4f 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 be.js2-DO."...(let.((pos.(js2-cu
588a0 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d rrent-token-beg)).........(pn.(m
588c0 61 6b 65 2d 6a 73 32 2d 64 6f 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 62 ake-js2-do-node)).........cond.b
588e0 6f 64 79 20 65 6e 64 29 0a 20 20 20 20 28 6a 73 32 2d 65 6e 74 65 72 2d 6c 6f 6f 70 20 70 6e 29 ody.end).....(js2-enter-loop.pn)
58900 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 .....(unwind-protect.........(pr
58920 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 6a 73 32 2d 70 61 ogn...........(setq.body.(js2-pa
58940 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d rse-statement))...........(js2-m
58960 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 57 48 49 4c 45 20 22 6d 73 67 2e 6e 6f 2e 77 68 69 6c ust-match.js2-WHILE."msg.no.whil
58980 65 2e 64 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 64 6f 2d 6e e.do")...........(setf.(js2-do-n
589a0 6f 64 65 2d 77 68 69 6c 65 2d 70 6f 73 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e ode-while-pos.pn).(-.(js2-curren
589c0 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-token-beg).pos)...............
589e0 20 20 63 6f 6e 64 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 20 ..cond.(js2-parse-condition)....
58a00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 .............(js2-do-node-condit
58a20 69 6f 6e 20 70 6e 29 20 28 63 61 72 20 63 6f 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.pn).(car.cond)..............
58a40 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 62 6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 ...(js2-do-node-body.pn).body...
58a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a ..............end.js2-ts-cursor.
58a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 6c 70 20 ................(js2-do-node-lp.
58aa0 70 6e 29 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63 6c 2d 73 65 63 6f 6e 64 20 63 6f 6e 64 29 pn).(js2-relpos.(cl-second.cond)
58ac0 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f .pos).................(js2-do-no
58ae0 64 65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63 6c 2d 74 68 69 72 64 20 de-rp.pn).(js2-relpos.(cl-third.
58b00 63 6f 6e 64 29 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d cond).pos))...........(js2-node-
58b20 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 28 63 61 72 20 63 6f 6e 64 29 20 62 6f 64 79 29 add-children.pn.(car.cond).body)
58b40 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78 69 74 2d 6c 6f 6f 70 29 29 0a 20 20 20 20 3b 3b 20 ).......(js2-exit-loop)).....;;.
58b60 41 6c 77 61 79 73 20 61 75 74 6f 2d 69 6e 73 65 72 74 20 73 65 6d 69 63 6f 6c 6f 6e 20 74 6f 20 Always.auto-insert.semicolon.to.
58b80 66 6f 6c 6c 6f 77 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 3a 0a 20 20 20 20 3b 3b 20 49 74 20 69 follow.SpiderMonkey:.....;;.It.i
58ba0 73 20 72 65 71 75 69 72 65 64 20 62 79 20 45 43 4d 41 53 63 72 69 70 74 20 62 75 74 20 69 73 20 s.required.by.ECMAScript.but.is.
58bc0 69 67 6e 6f 72 65 64 20 62 79 20 74 68 65 20 72 65 73 74 20 6f 66 0a 20 20 20 20 3b 3b 20 77 6f ignored.by.the.rest.of.....;;.wo
58be0 72 6c 64 3b 20 73 65 65 20 62 75 67 20 32 33 38 39 34 35 0a 20 20 20 20 28 69 66 20 28 6a 73 32 rld;.see.bug.238945.....(if.(js2
58c00 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 53 45 4d 49 29 0a 20 20 20 20 20 20 20 20 28 -match-token.js2-SEMI).........(
58c20 73 65 74 71 20 65 6e 64 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 29 0a 20 20 20 20 28 73 65 setq.end.js2-ts-cursor)).....(se
58c40 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 65 6e 64 20 70 6f 73 29 tf.(js2-node-len.pn).(-.end.pos)
58c60 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 ).....pn))..(defun.js2-parse-exp
58c80 6f 72 74 20 28 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d ort.()..."Parse.an.export.statem
58ca0 65 6e 74 2e 0a 54 68 65 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 ent..The.Last.matched.token.must
58cc0 20 62 65 20 6a 73 32 2d 45 58 50 4f 52 54 2e 20 43 75 72 72 65 6e 74 6c 79 2c 20 74 68 65 20 60 .be.js2-EXPORT..Currently,.the.`
58ce0 64 65 66 61 75 6c 74 27 20 61 6e 64 20 60 65 78 70 72 27 0a 65 78 70 72 65 73 73 69 6f 6e 73 20 default'.and.`expr'.expressions.
58d00 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 65 69 74 68 65 72 20 68 6f 69 73 74 61 62 6c 65 20 should.only.be.either.hoistable.
58d20 65 78 70 72 65 73 73 69 6f 6e 73 20 28 66 75 6e 63 74 69 6f 6e 20 6f 72 20 67 65 6e 65 72 61 74 expressions.(function.or.generat
58d40 6f 72 29 0a 6f 72 20 61 73 73 69 67 6e 6d 65 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 62 or).or.assignment.expressions,.b
58d60 75 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 63 68 65 63 6b 69 6e 67 20 74 6f 20 65 6e 66 6f 72 ut.there.is.no.checking.to.enfor
58d80 63 65 20 74 68 61 74 20 61 6e 64 20 73 6f 20 69 74 0a 77 69 6c 6c 20 70 61 72 73 65 20 77 69 74 ce.that.and.so.it.will.parse.wit
58da0 68 6f 75 74 20 65 72 72 6f 72 20 61 20 73 6d 61 6c 6c 20 73 75 62 73 65 74 20 6f 66 0a 69 6e 76 hout.error.a.small.subset.of.inv
58dc0 61 6c 69 64 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 73 2e 22 0a 20 20 28 75 6e 6c 65 alid.export.statements."...(unle
58de0 73 73 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 ss.(js2-ast-root-p.js2-current-s
58e00 63 6f 70 65 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 cope).....(js2-report-error."msg
58e20 2e 6d 6f 64 2e 65 78 70 6f 72 74 2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76 65 6c 22 29 29 .mod.export.decl.at.top.level"))
58e40 0a 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e ...(let.((beg.(js2-current-token
58e60 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 6c 69 73 74 29 29 -beg)).........(children.(list))
58e80 0a 20 20 20 20 20 20 20 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 66 72 6f 6d 2d 63 6c 61 75 73 .........exports-list.from-claus
58ea0 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 61 73 e.declaration.default.........as
58ec0 79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 ync-pos).....(cond......((js2-ma
58ee0 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 tch-token.js2-MUL).......(setq.f
58f00 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73 rom-clause.(js2-parse-from-claus
58f20 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 e)).......(when.from-clause.....
58f40 20 20 20 20 28 70 75 73 68 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 63 68 69 6c 64 72 65 6e 29 29 ....(push.from-clause.children))
58f60 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43 29 )......((js2-match-token.js2-LC)
58f80 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 28 6a 73 32 2d 70 .......(setq.exports-list.(js2-p
58fa0 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 73 29 29 0a 20 20 20 20 20 20 28 77 68 arse-export-bindings)).......(wh
58fc0 65 6e 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 en.exports-list.........(dolist.
58fe0 28 65 78 70 6f 72 74 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 (export.exports-list)...........
59000 28 70 75 73 68 20 65 78 70 6f 72 74 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 20 20 20 20 20 20 28 (push.export.children))).......(
59020 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 22 when.(js2-match-contextual-kwd."
59040 66 72 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 from").........(js2-unget-token)
59060 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d .........(setq.from-clause.(js2-
59080 70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 29 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 parse-from-clause))))......((js2
590a0 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 44 45 46 41 55 4c 54 29 0a 20 20 20 20 20 20 -match-token.js2-DEFAULT).......
590c0 28 73 65 74 71 20 64 65 66 61 75 6c 74 20 28 63 6f 6e 64 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d (setq.default.(cond.((js2-match-
590e0 74 6f 6b 65 6e 20 6a 73 32 2d 43 4c 41 53 53 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 token.js2-CLASS)................
59100 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f ............(if.(eq.(js2-peek-to
59120 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ken).js2-NAME)..................
59140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73 ..............(js2-parse-class-s
59160 74 6d 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tmt)............................
59180 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 ..(js2-parse-class-expr)))......
591a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 .....................((js2-match
591c0 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -token.js2-NAME)................
591e0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20 ............(if.(setq.async-pos.
59200 28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 (js2-match-async-function)).....
59220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 ...........................(if.(
59240 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 eq.(js2-peek-token).js2-NAME)...
59260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
59280 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 20 61 73 79 6e 63 2d .(js2-parse-function-stmt.async-
592a0 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos)............................
592c0 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72 20 61 ......(js2-parse-function-expr.a
592e0 73 79 6e 63 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sync-pos))......................
59300 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 ........(js2-unget-token).......
59320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 .......................(js2-pars
59340 65 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-expr))).......................
59360 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 55 4e 43 54 49 ....((js2-match-token.js2-FUNCTI
59380 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ON)............................(
593a0 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 if.(eq.(js2-peek-token).js2-NAME
593c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
593e0 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 29 0a 20 20 20 20 20 .(js2-parse-function-stmt)......
59400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 ........................(js2-par
59420 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 se-function-expr))).............
59440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 ..............(t.(js2-parse-expr
59460 29 29 29 29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e )))))......((or.(js2-match-token
59480 20 6a 73 32 2d 56 41 52 29 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 .js2-VAR).(js2-match-token.js2-C
594a0 4f 4e 53 54 29 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 45 54 29 29 ONST).(js2-match-token.js2-LET))
594c0 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 70 61 .......(setq.declaration.(js2-pa
594e0 72 73 65 2d 76 61 72 69 61 62 6c 65 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e rse-variables.(js2-current-token
59500 2d 74 79 70 65 29 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 -type).(js2-current-token-beg)))
59520 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 4c 41 )......((js2-match-token.js2-CLA
59540 53 53 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 SS).......(setq.declaration.(js2
59560 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73 74 6d 74 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d -parse-class-stmt)))......((js2-
59580 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28 73 65 74 match-token.js2-NAME).......(set
595a0 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 q.declaration.............(if.(s
595c0 65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 etq.async-pos.(js2-match-async-f
595e0 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 unction)).................(js2-p
59600 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 20 arse-function-stmt.async-pos)...
59620 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 ............(js2-unget-token)...
59640 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 29 29 0a ............(js2-parse-expr)))).
59660 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 55 4e 43 54 .....((js2-match-token.js2-FUNCT
59680 49 4f 4e 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 ION).......(setq.declaration.(js
596a0 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74 6d 74 29 29 29 0a 20 20 20 20 20 28 74 2-parse-function-stmt)))......(t
596c0 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 70 61 .......(setq.declaration.(js2-pa
596e0 72 73 65 2d 65 78 70 72 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75 rse-expr)))).....(when.from-clau
59700 73 65 0a 20 20 20 20 20 20 28 70 75 73 68 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 63 68 69 6c 64 se.......(push.from-clause.child
59720 72 65 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 ren)).....(when.declaration.....
59740 20 20 28 70 75 73 68 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 ..(push.declaration.children)...
59760 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e ....(when.(not.(or.(js2-function
59780 2d 6e 6f 64 65 2d 70 20 64 65 63 6c 61 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 -node-p.declaration)............
597a0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 70 20 64 65 63 6c ..........(js2-class-node-p.decl
597c0 61 72 61 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 75 74 6f 2d 69 6e 73 aration))).........(js2-auto-ins
597e0 65 72 74 2d 73 65 6d 69 63 6f 6c 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 29 29 29 0a 20 20 20 ert-semicolon.declaration)))....
59800 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 28 70 75 73 68 20 64 65 66 61 75 .(when.default.......(push.defau
59820 6c 74 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f lt.children).......(when.(not.(o
59840 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 0a r.(js2-function-node-p.default).
59860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d .....................(js2-class-
59880 6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 node-p.default))).........(js2-a
598a0 75 74 6f 2d 69 6e 73 65 72 74 2d 73 65 6d 69 63 6f 6c 6f 6e 20 64 65 66 61 75 6c 74 29 29 29 0a uto-insert-semicolon.default))).
598c0 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 6f 72 74 ....(let.((node.(make-js2-export
598e0 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67 -node...................:pos.beg
59900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d ...................:len.(-.(js2-
59920 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 current-token-end).beg).........
59940 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 65 78 70 6f 72 74 73 2d ..........:exports-list.exports-
59960 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 72 6f 6d 2d 63 6c 61 list...................:from-cla
59980 75 73 65 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 use.from-clause.................
599a0 20 20 3a 64 65 63 6c 61 72 61 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 ..:declaration.declaration......
599c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 66 61 75 6c 74 20 64 65 66 61 75 6c 74 29 29 29 .............:default.default)))
599e0 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 .......(apply.#'js2-node-add-chi
59a00 6c 64 72 65 6e 20 6e 6f 64 65 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 6e 6f 64 65 29 ldren.node.children).......node)
59a20 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 6f 72 20 28 29 0a 20 20 22 50 ))..(defun.js2-parse-for.()..."P
59a40 61 72 73 65 20 61 20 66 6f 72 2c 20 66 6f 72 2d 69 6e 2c 20 66 6f 72 20 65 61 63 68 2d 69 6e 20 arse.a.for,.for-in,.for.each-in.
59a60 6f 72 20 66 6f 72 20 61 77 61 69 74 2d 69 6e 20 73 74 61 74 65 6d 65 6e 74 2e 0a 4c 61 73 74 20 or.for.await-in.statement..Last.
59a80 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 46 4f 52 2e 22 0a matched.token.must.be.js2-FOR.".
59aa0 20 20 28 6c 65 74 20 28 28 66 6f 72 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f ..(let.((for-pos.(js2-current-to
59ac0 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 74 6d 70 2d 73 63 6f 70 65 20 28 6d 61 ken-beg)).........(tmp-scope.(ma
59ae0 6b 65 2d 6a 73 32 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 20 20 20 20 70 6e 20 69 73 2d 66 6f 72 ke-js2-scope)).........pn.is-for
59b00 2d 65 61 63 68 20 69 73 2d 66 6f 72 2d 69 6e 2d 6f 72 2d 6f 66 20 69 73 2d 66 6f 72 2d 6f 66 20 -each.is-for-in-or-of.is-for-of.
59b20 69 73 2d 66 6f 72 2d 61 77 61 69 74 0a 20 20 20 20 20 20 20 20 69 6e 2d 70 6f 73 20 65 61 63 68 is-for-await.........in-pos.each
59b40 2d 70 6f 73 20 74 6d 70 2d 70 6f 73 20 61 77 61 69 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 69 -pos.tmp-pos.await-pos.........i
59b60 6e 69 74 20 20 3b 20 4e 6f 64 65 20 69 6e 69 74 20 69 73 20 61 6c 73 6f 20 66 6f 6f 20 69 6e 20 nit..;.Node.init.is.also.foo.in.
59b80 27 66 6f 6f 20 69 6e 20 6f 62 6a 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 20 3b 'foo.in.object'..........cond..;
59ba0 20 4e 6f 64 65 20 63 6f 6e 64 20 69 73 20 61 6c 73 6f 20 6f 62 6a 65 63 74 20 69 6e 20 27 66 6f .Node.cond.is.also.object.in.'fo
59bc0 6f 20 69 6e 20 6f 62 6a 65 63 74 27 2e 0a 20 20 20 20 20 20 20 20 69 6e 63 72 20 20 3b 20 33 72 o.in.object'..........incr..;.3r
59be0 64 20 73 65 63 74 69 6f 6e 20 6f 66 20 66 6f 72 2d 6c 6f 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65 d.section.of.for-loop.initialize
59c00 72 2e 0a 20 20 20 20 20 20 20 20 62 6f 64 79 20 74 74 20 6c 70 20 72 70 29 0a 20 20 20 20 28 77 r..........body.tt.lp.rp).....(w
59c20 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 hen.(js2-match-token.js2-NAME)..
59c40 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 69 66 20 74 68 69 73 .....(cond........;;.See.if.this
59c60 20 69 73 20 61 20 66 6f 72 20 65 61 63 68 20 28 29 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 .is.a.for.each.().instead.of.jus
59c80 74 20 61 20 66 6f 72 20 28 29 0a 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 22 65 61 63 t.a.for.()........((string=."eac
59ca0 68 22 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 h".(js2-current-token-string))..
59cc0 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73 .......(progn...........(setq.is
59ce0 2d 66 6f 72 2d 65 61 63 68 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68 -for-each.t.................each
59d00 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 -pos.(-.(js2-current-token-beg).
59d20 66 6f 72 2d 70 6f 73 29 29 20 3b 20 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 28 for-pos)).;.relative...........(
59d40 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f js2-record-face.'font-lock-keywo
59d60 72 64 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 69 66 20 74 68 69 73 rd-face)))........;;.See.if.this
59d80 20 69 73 20 61 20 66 6f 72 20 61 77 61 69 74 20 28 29 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 .is.a.for.await.().instead.of.ju
59da0 73 74 20 61 20 66 6f 72 20 28 29 0a 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 22 61 77 st.a.for.()........((string=."aw
59dc0 61 69 74 22 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 ait".(js2-current-token-string))
59de0 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 .........(progn...........(setq.
59e00 69 73 2d 66 6f 72 2d 61 77 61 69 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 is-for-await.t.................a
59e20 77 61 69 74 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 wait-pos.(-.(js2-current-token-b
59e40 65 67 29 20 66 6f 72 2d 70 6f 73 29 29 20 3b 20 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 20 eg).for-pos)).;.relative........
59e60 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b ...(js2-record-face.'font-lock-k
59e80 65 79 77 6f 72 64 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 28 74 20 28 6a 73 32 2d 72 65 eyword-face)))........(t.(js2-re
59ea0 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 29 29 29 port-error."msg.no.paren.for")))
59ec0 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 ).....(if.(js2-must-match.js2-LP
59ee0 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 ."msg.no.paren.for").........(se
59f00 74 71 20 6c 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 tq.lp.(-.(js2-current-token-beg)
59f20 20 66 6f 72 2d 70 6f 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 .for-pos))).....(setq.tt.(js2-ge
59f40 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 3b 3b 20 43 61 70 74 75 72 65 20 69 64 65 6e 74 69 66 t-token)).....;;.Capture.identif
59f60 69 65 72 73 20 69 6e 73 69 64 65 20 70 61 72 65 6e 73 2e 20 20 57 65 20 63 61 6e 27 74 20 63 72 iers.inside.parens...We.can't.cr
59f80 65 61 74 65 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 3b 3b 20 28 61 6e 64 20 75 73 65 20 69 74 eate.the.node.....;;.(and.use.it
59fa0 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 29 20 75 6e 74 69 6c 20 77 65 20 .as.the.current.scope).until.we.
59fc0 6b 6e 6f 77 20 69 74 73 20 74 79 70 65 2e 0a 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f know.its.type......(js2-push-sco
59fe0 70 65 20 74 6d 70 2d 73 63 6f 70 65 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 pe.tmp-scope).....(unwind-protec
5a000 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 61 t.........(progn...........;;.pa
5a020 72 73 65 20 69 6e 69 74 20 63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 rse.init.clause...........(let.(
5a040 28 6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 20 74 29 29 20 20 3b 20 73 65 74 20 61 73 20 64 (js2-in-for-init.t))..;.set.as.d
5a060 79 6e 61 6d 69 63 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ynamic.variable.............(con
5a080 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 45 4d 49 29 0a d..............((=.tt.js2-SEMI).
5a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a ..............(js2-unget-token).
5a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 69 74 20 28 6d 61 6b 65 2d 6a ..............(setq.init.(make-j
5a0e0 73 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 s2-empty-expr-node)))...........
5a100 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 56 41 52 29 20 28 3d 20 74 74 20 6a 73 32 ...((or.(=.tt.js2-VAR).(=.tt.js2
5a120 2d 4c 45 54 29 20 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4e 53 54 29 29 0a 20 20 20 20 20 20 20 20 -LET).(=.tt.js2-CONST)).........
5a140 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 69 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 ......(setq.init.(js2-parse-vari
5a160 61 62 6c 65 73 20 74 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 ables.tt.(js2-current-token-beg)
5a180 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 )))..............(t.............
5a1a0 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(js2-unget-token).............
5a1c0 20 20 28 73 65 74 71 20 69 6e 69 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 29 29 ..(setq.init.(js2-parse-expr))))
5a1e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 )...........(if.(or.(js2-match-t
5a200 6f 6b 65 6e 20 6a 73 32 2d 49 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 oken.js2-IN)...................(
5a220 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 and.(>=.js2-language-version.200
5a240 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 )........................(js2-ma
5a260 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 22 6f 66 22 29 0a 20 20 20 20 20 20 20 tch-contextual-kwd."of")........
5a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73 2d 66 6f 72 2d 6f 66 20 ................(setq.is-for-of.
5a2a0 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73 2d 66 6f 72 2d t)))...............(setq.is-for-
5a2c0 69 6e 2d 6f 72 2d 6f 66 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 in-or-of.t.....................i
5a2e0 6e 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 n-pos.(-.(js2-current-token-beg)
5a300 20 66 6f 72 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b .for-pos).....................;;
5a320 20 73 63 6f 70 65 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 20 74 61 72 67 65 74 20 6f 62 6a 65 63 .scope.of.iteration.target.objec
5a340 74 20 69 73 20 6e 6f 74 20 74 68 65 20 73 63 6f 70 65 20 77 65 27 76 65 20 63 72 65 61 74 65 64 t.is.not.the.scope.we've.created
5a360 20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 .above......................;;.s
5a380 74 61 73 68 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 20 74 65 6d 70 6f 72 61 72 79 2e 0a 20 20 tash.current.scope.temporary....
5a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 64 20 28 6c 65 74 20 28 28 6a 73 ..................cond.(let.((js
5a3c0 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 2-current-scope.(js2-scope-paren
5a3e0 74 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 29 29 0a 20 20 20 t-scope.js2-current-scope)))....
5a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 ........................(js2-par
5a420 73 65 2d 65 78 70 72 29 29 29 20 20 3b 20 6f 62 6a 65 63 74 20 6f 76 65 72 20 77 68 69 63 68 20 se-expr)))..;.object.over.which.
5a440 77 65 27 72 65 20 69 74 65 72 61 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 we're.iterating.............;;.e
5a460 6c 73 65 20 6f 72 64 69 6e 61 72 79 20 66 6f 72 20 6c 6f 6f 70 20 2d 20 70 61 72 73 65 20 63 6f lse.ordinary.for.loop.-.parse.co
5a480 6e 64 20 61 6e 64 20 69 6e 63 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 nd.and.incr.............(js2-mus
5a4a0 74 2d 6d 61 74 63 68 20 6a 73 32 2d 53 45 4d 49 20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f t-match.js2-SEMI."msg.no.semi.fo
5a4c0 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 64 20 28 69 66 20 28 r").............(setq.cond.(if.(
5a4e0 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 53 45 4d 49 29 0a 20 20 20 =.(js2-peek-token).js2-SEMI)....
5a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 ........................(make-js
5a520 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 29 20 3b 20 6e 6f 20 6c 6f 6f 70 20 63 6f 6e 2-empty-expr-node).;.no.loop.con
5a540 64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dition..........................
5a560 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 (js2-parse-expr))).............(
5a580 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 53 45 4d 49 20 22 6d 73 67 2e 6e 6f 2e js2-must-match.js2-SEMI."msg.no.
5a5a0 73 65 6d 69 2e 66 6f 72 2e 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 semi.for.cond").............(set
5a5c0 71 20 74 6d 70 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 q.tmp-pos.(js2-current-token-end
5a5e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 72 20 28 69 66 20 28 3d 20 )...................incr.(if.(=.
5a600 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 52 50 29 0a 20 20 20 20 20 20 20 (js2-peek-token).js2-RP)........
5a620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 6d ....................(make-js2-em
5a640 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 3a 70 6f 73 20 74 6d 70 2d 70 6f 73 29 0a 20 20 20 20 pty-expr-node.:pos.tmp-pos).....
5a660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d .....................(js2-parse-
5a680 65 78 70 72 29 29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29 expr))))).......(js2-pop-scope))
5a6a0 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 .....(if.(js2-must-match.js2-RP.
5a6c0 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 2e 63 74 72 6c 22 29 0a 20 20 20 20 20 20 20 "msg.no.paren.for.ctrl")........
5a6e0 20 28 73 65 74 71 20 72 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d .(setq.rp.(-.(js2-current-token-
5a700 62 65 67 29 20 66 6f 72 2d 70 6f 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 69 73 2d beg).for-pos))).....(if.(not.is-
5a720 66 6f 72 2d 69 6e 2d 6f 72 2d 6f 66 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 for-in-or-of).........(setq.pn.(
5a740 6d 61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 3a 69 6e 69 74 20 69 6e 69 74 0a 20 20 20 make-js2-for-node.:init.init....
5a760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5a780 20 3a 63 6f 6e 64 69 74 69 6f 6e 20 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:condition.cond................
5a7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 70 64 61 74 65 20 69 6e 63 .....................:update.inc
5a7c0 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r...............................
5a7e0 20 20 20 20 20 20 3a 6c 70 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......:lp.lp....................
5a800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 70 20 72 70 29 29 0a 20 20 20 20 20 20 .................:rp.rp)).......
5a820 3b 3b 20 63 6f 6e 64 20 63 6f 75 6c 64 20 62 65 20 6e 75 6c 6c 20 69 66 20 27 69 6e 20 6f 62 6a ;;.cond.could.be.null.if.'in.obj
5a840 27 20 67 6f 74 20 65 61 74 65 6e 20 62 79 20 74 68 65 20 69 6e 69 74 20 6e 6f 64 65 2e 0a 20 20 '.got.eaten.by.the.init.node....
5a860 20 20 20 20 28 69 66 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 69 6e 69 74 29 0a ....(if.(js2-infix-node-p.init).
5a880 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 77 61 73 20 28 66 6f 6f 20 69 6e 20 62 61 72 29 ..........;;.it.was.(foo.in.bar)
5a8a0 20 69 6e 73 74 65 61 64 20 6f 66 20 28 76 61 72 20 66 6f 6f 20 69 6e 20 62 61 72 29 0a 20 20 20 .instead.of.(var.foo.in.bar)....
5a8c0 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 64 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 .......(setq.cond.(js2-infix-nod
5a8e0 65 2d 72 69 67 68 74 20 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e e-right.init).................in
5a900 69 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 69 6e 69 74 29 29 0a 20 it.(js2-infix-node-left.init))..
5a920 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f .......(if.(and.(js2-var-decl-no
5a940 64 65 2d 70 20 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 de-p.init)..................(>.(
5a960 6c 65 6e 67 74 68 20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 69 length.(js2-var-decl-node-kids.i
5a980 6e 69 74 29 29 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 nit)).1)).............(js2-repor
5a9a0 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 75 6c 74 2e 69 6e 64 65 78 22 29 29 29 0a 20 20 20 20 t-error."msg.mult.index"))).....
5a9c0 20 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 ..(setq.pn.(make-js2-for-in-node
5a9e0 20 3a 69 74 65 72 61 74 6f 72 20 69 6e 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:iterator.init.................
5aa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 62 6a 65 63 74 20 63 6f 6e .....................:object.con
5aa20 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d...............................
5aa40 20 20 20 20 20 20 20 3a 69 6e 2d 70 6f 73 20 69 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 .......:in-pos.in-pos...........
5aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 65 ...........................:fore
5aa80 61 63 68 2d 70 20 69 73 2d 66 6f 72 2d 65 61 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ach-p.is-for-each...............
5aaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 61 63 68 2d 70 6f 73 .......................:each-pos
5aac0 20 65 61 63 68 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .each-pos.......................
5aae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 61 77 61 69 74 2d 70 20 69 73 2d 66 6f ...............:forawait-p.is-fo
5ab00 72 2d 61 77 61 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-await.........................
5ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 77 61 69 74 2d 70 6f 73 20 61 77 61 69 74 2d 70 6f .............:await-pos.await-po
5ab40 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
5ab60 20 20 20 20 20 20 20 3a 66 6f 72 6f 66 2d 70 20 69 73 2d 66 6f 72 2d 6f 66 0a 20 20 20 20 20 20 .......:forof-p.is-for-of.......
5ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
5aba0 6c 70 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lp.lp...........................
5abc0 20 20 20 20 20 20 20 20 20 20 20 3a 72 70 20 72 70 29 29 29 0a 20 20 20 20 3b 3b 20 54 72 61 6e ...........:rp.rp))).....;;.Tran
5abe0 73 70 6c 61 6e 74 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 28 73 65 splant.the.declarations......(se
5ac00 74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 70 6e 29 0a 20 tf.(js2-scope-symbol-table.pn)..
5ac20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 .........(js2-scope-symbol-table
5ac40 20 74 6d 70 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 .tmp-scope)).....(unwind-protect
5ac60 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 .........(progn...........(js2-e
5ac80 6e 74 65 72 2d 6c 6f 6f 70 20 70 6e 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 nter-loop.pn)...........;;.We.ha
5aca0 76 65 20 74 6f 20 70 61 72 73 65 20 74 68 65 20 62 6f 64 79 20 2d 61 66 74 65 72 2d 20 63 72 65 ve.to.parse.the.body.-after-.cre
5acc0 61 74 69 6e 67 20 74 68 65 20 6c 6f 6f 70 20 6e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 3b ating.the.loop.node,...........;
5ace0 3b 20 73 6f 20 74 68 61 74 20 74 68 65 20 6c 6f 6f 70 20 6e 6f 64 65 20 61 70 70 65 61 72 73 20 ;.so.that.the.loop.node.appears.
5ad00 69 6e 20 74 68 65 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 2c 20 61 6c 6c 6f 77 69 6e 67 0a 20 20 in.the.js2-loop-set,.allowing...
5ad20 20 20 20 20 20 20 20 20 3b 3b 20 62 72 65 61 6b 2f 63 6f 6e 74 69 6e 75 65 20 73 74 61 74 65 6d ........;;.break/continue.statem
5ad40 65 6e 74 73 20 74 6f 20 66 69 6e 64 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 2e ents.to.find.the.enclosing.loop.
5ad60 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65 ...........(setf.body.(js2-parse
5ad80 2d 73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 -statement).................(js2
5ada0 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 62 6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 20 20 20 20 20 -loop-node-body.pn).body........
5adc0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 20 66 6f 72 2d 70 .........(js2-node-pos.pn).for-p
5ade0 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e os.................(js2-node-len
5ae00 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 62 6f 64 79 29 20 66 6f 72 2d .pn).(-.(js2-node-end.body).for-
5ae20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 pos))...........(js2-node-add-ch
5ae40 69 6c 64 72 65 6e 20 70 6e 20 69 6e 69 74 20 63 6f 6e 64 20 69 6e 63 72 20 62 6f 64 79 29 29 0a ildren.pn.init.cond.incr.body)).
5ae60 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78 69 74 ......;;.finally.......(js2-exit
5ae80 2d 6c 6f 6f 70 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 -loop)).....pn))..(defun.js2-par
5aea0 73 65 2d 74 72 79 20 28 29 0a 20 20 22 50 61 72 73 65 20 61 20 74 72 79 20 73 74 61 74 65 6d 65 se-try.()..."Parse.a.try.stateme
5aec0 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 nt...Last.matched.token.must.be.
5aee0 6a 73 32 2d 54 52 59 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 72 79 2d 70 6f 73 20 28 6a 73 32 2d js2-TRY."...(let.((try-pos.(js2-
5af00 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 74 72 79 2d current-token-beg)).........try-
5af20 65 6e 64 0a 20 20 20 20 20 20 20 20 74 72 79 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 63 61 end.........try-block.........ca
5af40 74 63 68 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b tch-blocks.........finally-block
5af60 0a 20 20 20 20 20 20 20 20 73 61 77 2d 64 65 66 61 75 6c 74 2d 63 61 74 63 68 0a 20 20 20 20 20 .........saw-default-catch......
5af80 20 20 20 70 65 65 6b 29 0a 20 20 20 20 28 69 66 20 28 2f 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 ...peek).....(if.(/=.(js2-peek-t
5afa0 6f 6b 65 6e 29 20 6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 oken).js2-LC).........(js2-repor
5afc0 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 74 72 79 22 29 29 0a 20 20 20 t-error."msg.no.brace.try"))....
5afe0 20 28 73 65 74 71 20 74 72 79 2d 62 6c 6f 63 6b 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 .(setq.try-block.(js2-parse-stat
5b000 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 74 72 79 2d 65 6e 64 20 28 6a 73 32 2d 6e 6f ement)...........try-end.(js2-no
5b020 64 65 2d 65 6e 64 20 74 72 79 2d 62 6c 6f 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 70 65 65 6b de-end.try-block)...........peek
5b040 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 .(js2-peek-token)).....(cond....
5b060 20 20 28 28 3d 20 70 65 65 6b 20 6a 73 32 2d 43 41 54 43 48 29 0a 20 20 20 20 20 20 28 77 68 69 ..((=.peek.js2-CATCH).......(whi
5b080 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 41 54 43 48 29 0a 20 le.(js2-match-token.js2-CATCH)..
5b0a0 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 61 74 63 68 2d 70 6f 73 20 28 6a 73 32 2d 63 75 .......(let*.((catch-pos.(js2-cu
5b0c0 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrent-token-beg))...............
5b0e0 20 28 63 61 74 63 68 2d 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 .(catch-node.(make-js2-catch-nod
5b100 65 20 3a 70 6f 73 20 63 61 74 63 68 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e.:pos.catch-pos))..............
5b120 20 20 70 61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 75 61 72 64 2d 6b 77 64 ..param................guard-kwd
5b140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68 2d 63 6f 6e 64 0a 20 20 20 20 20 ................catch-cond......
5b160 20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 ..........lp.rp)...........(if.s
5b180 61 77 2d 64 65 66 61 75 6c 74 2d 63 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 aw-default-catch...............(
5b1a0 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 63 61 74 63 68 2e 75 6e 72 65 js2-report-error."msg.catch.unre
5b1c0 61 63 68 61 62 6c 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 achable"))...........(js2-push-s
5b1e0 63 6f 70 65 20 63 61 74 63 68 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e cope.catch-node)...........(when
5b200 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 .(js2-match-token.js2-LP).......
5b220 20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 ......(setq.lp.(-.(js2-current-t
5b240 6f 6b 65 6e 2d 62 65 67 29 20 63 61 74 63 68 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 oken-beg).catch-pos))...........
5b260 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 29 0a 20 ..(let.((tt.(js2-peek-token)))..
5b280 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
5b2a0 20 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69 6e 67 20 70 61 74 74 65 72 6e 3a 0a 20 20 20 20 ..;;.Destructuring.pattern:.....
5b2c0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 20 63 61 74 63 68 20 28 7b 20 6d 65 73 73 61 ...........;;.....catch.({.messa
5b2e0 67 65 2c 20 66 69 6c 65 20 7d 29 20 7b 20 2e 2e 2e 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ge,.file.}).{.....}.............
5b300 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 20 28 3d 20 74 74 20 6a 73 32 2d ...((or.(=.tt.js2-LB).(=.tt.js2-
5b320 4c 43 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f LC)).................(js2-get-to
5b340 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d ken).................(setq.param
5b360 20 28 6a 73 32 2d 70 61 72 73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d 61 72 79 2d 65 78 70 .(js2-parse-destruct-primary-exp
5b380 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d r)).................(js2-define-
5b3a0 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f 6c 73 20 70 61 72 61 6d 20 6a 73 32 2d 4c 45 54 20 6e destruct-symbols.param.js2-LET.n
5b3c0 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6d 70 6c 65 20 6e 61 il))................;;.Simple.na
5b3e0 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 me.................(t...........
5b400 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e ......(js2-must-match-name."msg.
5b420 62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bad.catchcond").................
5b440 28 73 65 74 71 20 70 61 72 61 6d 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 (setq.param.(js2-create-name-nod
5b460 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d e)).................(js2-define-
5b480 73 79 6d 62 6f 6c 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 symbol.js2-LET.(js2-current-toke
5b4a0 6e 2d 73 74 72 69 6e 67 29 20 70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-string).param)................
5b4c0 20 28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 70 61 .(js2-check-strict-identifier.pa
5b4e0 72 61 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 61 74 63 68 20 63 6f 6e ram)))).............;;.Catch.con
5b500 64 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 dition..............(if.(js2-mat
5b520 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 49 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-token.js2-IF)................
5b540 20 28 73 65 74 71 20 67 75 61 72 64 2d 6b 77 64 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 .(setq.guard-kwd.(-.(js2-current
5b560 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 63 61 74 63 68 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 -token-beg).catch-pos)..........
5b580 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68 2d 63 6f 6e 64 20 28 6a 73 32 2d 70 61 72 .............catch-cond.(js2-par
5b5a0 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 61 se-expr))...............(setq.sa
5b5c0 77 2d 64 65 66 61 75 6c 74 2d 63 61 74 63 68 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 w-default-catch.t)).............
5b5e0 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e (if.(js2-must-match.js2-RP."msg.
5b600 62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bad.catchcond").................
5b620 28 73 65 74 71 20 72 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 (setq.rp.(-.(js2-current-token-b
5b640 65 67 29 20 63 61 74 63 68 2d 70 6f 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 eg).catch-pos))))...........(js2
5b660 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 -must-match.js2-LC."msg.no.brace
5b680 2e 63 61 74 63 68 62 6c 6f 63 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 .catchblock")...........(js2-par
5b6a0 73 65 2d 73 74 61 74 65 6d 65 6e 74 73 20 63 61 74 63 68 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 se-statements.catch-node).......
5b6c0 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22 ....(if.(js2-must-match.js2-RC."
5b6e0 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74 65 72 2e 62 6f 64 79 22 29 0a 20 20 20 20 20 20 msg.no.brace.after.body").......
5b700 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 79 2d 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 ........(setq.try-end.(js2-curre
5b720 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 nt-token-end)))...........(js2-p
5b740 6f 70 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e op-scope)...........(setf.(js2-n
5b760 6f 64 65 2d 6c 65 6e 20 63 61 74 63 68 2d 6e 6f 64 65 29 20 28 2d 20 74 72 79 2d 65 6e 64 20 63 ode-len.catch-node).(-.try-end.c
5b780 61 74 63 68 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 atch-pos).................(js2-c
5b7a0 61 74 63 68 2d 6e 6f 64 65 2d 70 61 72 61 6d 20 63 61 74 63 68 2d 6e 6f 64 65 29 20 70 61 72 61 atch-node-param.catch-node).para
5b7c0 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 m.................(js2-catch-nod
5b7e0 65 2d 67 75 61 72 64 2d 65 78 70 72 20 63 61 74 63 68 2d 6e 6f 64 65 29 20 63 61 74 63 68 2d 63 e-guard-expr.catch-node).catch-c
5b800 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e ond.................(js2-catch-n
5b820 6f 64 65 2d 67 75 61 72 64 2d 6b 77 64 20 63 61 74 63 68 2d 6e 6f 64 65 29 20 67 75 61 72 64 2d ode-guard-kwd.catch-node).guard-
5b840 6b 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e kwd.................(js2-catch-n
5b860 6f 64 65 2d 6c 70 20 63 61 74 63 68 2d 6e 6f 64 65 29 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 ode-lp.catch-node).lp...........
5b880 20 20 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 72 70 20 63 61 74 63 68 2d 6e ......(js2-catch-node-rp.catch-n
5b8a0 6f 64 65 29 20 72 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 ode).rp)...........(js2-node-add
5b8c0 2d 63 68 69 6c 64 72 65 6e 20 63 61 74 63 68 2d 6e 6f 64 65 20 70 61 72 61 6d 20 63 61 74 63 68 -children.catch-node.param.catch
5b8e0 2d 63 6f 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 61 74 63 68 2d 6e 6f 64 -cond)...........(push.catch-nod
5b900 65 20 63 61 74 63 68 2d 62 6c 6f 63 6b 73 29 29 29 29 0a 20 20 20 20 20 28 28 2f 3d 20 70 65 65 e.catch-blocks))))......((/=.pee
5b920 6b 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d k.js2-FINALLY).......(js2-must-m
5b940 61 74 63 68 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 20 22 6d 73 67 2e 74 72 79 2e 6e 6f 2e 63 61 74 atch.js2-FINALLY."msg.try.no.cat
5b960 63 68 66 69 6e 61 6c 6c 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 chfinally"......................
5b980 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 74 72 79 2d 62 6c 6f 63 6b 29 0a 20 20 20 20 20 20 .(js2-node-pos.try-block).......
5b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 73 65 74 71 20 74 72 79 2d 65 6e 64 ................(-.(setq.try-end
5b9c0 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 74 72 79 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 .(js2-node-end.try-block))......
5b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f ....................(js2-node-po
5ba00 73 20 74 72 79 2d 62 6c 6f 63 6b 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d s.try-block))))).....(when.(js2-
5ba20 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 29 0a 20 20 20 20 20 20 28 match-token.js2-FINALLY).......(
5ba40 6c 65 74 20 28 28 66 69 6e 61 6c 6c 79 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 let.((finally-pos.(js2-current-t
5ba60 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c 6f 63 6b 20 28 6a oken-beg)).............(block.(j
5ba80 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 s2-parse-statement))).........(s
5baa0 65 74 71 20 74 72 79 2d 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 62 6c 6f 63 6b 29 etq.try-end.(js2-node-end.block)
5bac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 28 6d 61 ...............finally-block.(ma
5bae0 6b 65 2d 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 20 3a 70 6f 73 20 66 69 6e 61 6c 6c 79 ke-js2-finally-node.:pos.finally
5bb00 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pos............................
5bb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 ........................:len.(-.
5bb40 74 72 79 2d 65 6e 64 20 66 69 6e 61 6c 6c 79 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 try-end.finally-pos)............
5bb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5bb80 20 20 20 20 20 20 20 20 3a 62 6f 64 79 20 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 28 6a ........:body.block)).........(j
5bba0 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f s2-node-add-children.finally-blo
5bbc0 63 6b 20 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6d 61 6b 65 2d ck.block))).....(let.((pn.(make-
5bbe0 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 20 3a 70 6f 73 20 74 72 79 2d 70 6f 73 0a 20 20 20 20 20 20 js2-try-node.:pos.try-pos.......
5bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 ...........................:len.
5bc20 28 2d 20 74 72 79 2d 65 6e 64 20 74 72 79 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (-.try-end.try-pos).............
5bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 79 2d 62 6c 6f 63 6b 20 .....................:try-block.
5bc60 74 72 79 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 try-block.......................
5bc80 20 20 20 20 20 20 20 20 20 20 20 3a 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 66 69 6e 61 6c 6c ...........:finally-block.finall
5bca0 79 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 y-block))).......(js2-node-add-c
5bcc0 68 69 6c 64 72 65 6e 20 70 6e 20 74 72 79 2d 62 6c 6f 63 6b 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f hildren.pn.try-block.finally-blo
5bce0 63 6b 29 0a 20 20 20 20 20 20 3b 3b 20 50 75 73 68 20 74 68 65 6d 20 6f 6e 74 6f 20 74 68 65 20 ck).......;;.Push.them.onto.the.
5bd00 74 72 79 2d 6e 6f 64 65 2c 20 77 68 69 63 68 20 72 65 76 65 72 73 65 73 20 61 6e 64 20 63 6f 72 try-node,.which.reverses.and.cor
5bd20 72 65 63 74 73 20 74 68 65 69 72 20 6f 72 64 65 72 2e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 rects.their.order........(dolist
5bd40 20 28 63 62 20 63 61 74 63 68 2d 62 6c 6f 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d .(cb.catch-blocks).........(js2-
5bd60 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 63 62 29 0a 20 20 20 20 20 20 20 node-add-children.pn.cb)........
5bd80 20 28 70 75 73 68 20 63 62 20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c .(push.cb.(js2-try-node-catch-cl
5bda0 61 75 73 65 73 20 70 6e 29 29 29 0a 20 20 20 20 20 20 70 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 auses.pn))).......pn)))..(defun.
5bdc0 6a 73 32 2d 70 61 72 73 65 2d 74 68 72 6f 77 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 js2-parse-throw.()..."Parser.for
5bde0 20 74 68 72 6f 77 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 .throw-statement...Last.matched.
5be00 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 54 48 52 4f 57 2e 22 0a 20 20 28 6c 65 74 token.must.be.js2-THROW."...(let
5be20 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a .((pos.(js2-current-token-beg)).
5be40 20 20 20 20 20 20 20 20 65 78 70 72 20 70 6e 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6a 73 32 ........expr.pn).....(if.(=.(js2
5be60 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 20 6a 73 32 2d 45 4f 4c 29 0a 20 20 20 -peek-token-or-eol).js2-EOL)....
5be80 20 20 20 20 20 3b 3b 20 45 43 4d 41 53 63 72 69 70 74 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f .....;;.ECMAScript.does.not.allo
5bea0 77 20 6e 65 77 20 6c 69 6e 65 73 20 62 65 66 6f 72 65 20 74 68 72 6f 77 20 65 78 70 72 65 73 73 w.new.lines.before.throw.express
5bec0 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 65 65 20 62 75 67 20 32 35 36 36 31 37 0a 20 ion,.........;;.see.bug.256617..
5bee0 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 .......(js2-report-error."msg.ba
5bf00 64 2e 74 68 72 6f 77 2e 65 6f 6c 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 6a d.throw.eol")).....(setq.expr.(j
5bf20 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b s2-parse-expr)...........pn.(mak
5bf40 65 2d 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 e-js2-throw-node.:pos.pos.......
5bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e ............................:len
5bf80 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 78 70 72 29 20 70 6f 73 29 0a 20 20 20 .(-.(js2-node-end.expr).pos)....
5bfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
5bfc0 65 78 70 72 20 65 78 70 72 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 expr.expr)).....(js2-node-add-ch
5bfe0 69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e ildren.pn.expr).....pn))..(defun
5c000 20 6a 73 32 2d 6d 61 74 63 68 2d 6a 75 6d 70 2d 6c 61 62 65 6c 2d 6e 61 6d 65 20 28 6c 61 62 65 .js2-match-jump-label-name.(labe
5c020 6c 2d 6e 61 6d 65 29 0a 20 20 22 49 66 20 62 72 65 61 6b 2f 63 6f 6e 74 69 6e 75 65 20 73 70 65 l-name)..."If.break/continue.spe
5c040 63 69 66 69 65 64 20 61 20 6c 61 62 65 6c 2c 20 72 65 74 75 72 6e 20 74 68 61 74 20 6c 61 62 65 cified.a.label,.return.that.labe
5c060 6c 27 73 20 6c 61 62 65 6c 65 64 20 73 74 6d 74 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63 6f l's.labeled.stmt..Returns.the.co
5c080 72 72 65 73 70 6f 6e 64 69 6e 67 20 60 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f rresponding.`js2-labeled-stmt-no
5c0a0 64 65 27 2c 20 6f 72 20 69 66 20 4c 41 42 45 4c 2d 4e 41 4d 45 0a 64 6f 65 73 20 6e 6f 74 20 6d de',.or.if.LABEL-NAME.does.not.m
5c0c0 61 74 63 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 6c 61 62 65 6c 2c 20 72 65 70 6f 72 74 73 20 atch.an.existing.label,.reports.
5c0e0 61 6e 20 65 72 72 6f 72 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 an.error.and.returns.nil."...(le
5c100 74 20 28 28 62 75 6e 64 6c 65 20 28 63 64 72 20 28 61 73 73 6f 63 20 6c 61 62 65 6c 2d 6e 61 6d t.((bundle.(cdr.(assoc.label-nam
5c120 65 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c e.js2-label-set)))).....(if.(nul
5c140 6c 20 62 75 6e 64 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 l.bundle).........(js2-report-er
5c160 72 6f 72 20 22 6d 73 67 2e 75 6e 64 65 66 2e 6c 61 62 65 6c 22 29 29 0a 20 20 20 20 62 75 6e 64 ror."msg.undef.label")).....bund
5c180 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 62 72 65 61 6b 20 28 29 0a le))..(defun.js2-parse-break.().
5c1a0 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 62 72 65 61 6b 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 .."Parser.for.break-statement...
5c1c0 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 42 Last.matched.token.must.be.js2-B
5c1e0 52 45 41 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 REAK."...(let.((pos.(js2-current
5c200 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 -token-beg)).........(end.(js2-c
5c220 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b urrent-token-end)).........break
5c240 2d 74 61 72 67 65 74 20 3b 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 62 72 65 61 6b 20 66 72 6f -target.;.statement.to.break.fro
5c260 6d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 2d 6c 61 62 65 6c 20 20 3b 20 69 6e 20 22 62 72 65 m.........break-label..;.in."bre
5c280 61 6b 20 66 6f 6f 22 2c 20 6e 61 6d 65 2d 6e 6f 64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 ak.foo",.name-node.representing.
5c2a0 74 68 65 20 66 6f 6f 0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c 73 20 20 20 20 20 20 20 3b 20 6d the.foo.........labels.......;.m
5c2c0 61 74 63 68 69 6e 67 20 6c 61 62 65 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 62 72 65 atching.labeled.statement.to.bre
5c2e0 61 6b 20 74 6f 0a 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 ak.to.........pn).....(when.(eq.
5c300 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 20 6a 73 32 2d 4e 41 4d 45 (js2-peek-token-or-eol).js2-NAME
5c320 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 ).......(js2-get-token).......(s
5c340 65 74 71 20 62 72 65 61 6b 2d 6c 61 62 65 6c 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 etq.break-label.(js2-create-name
5c360 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 -node).............end.(js2-node
5c380 2d 65 6e 64 20 62 72 65 61 6b 2d 6c 61 62 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b -end.break-label).............;;
5c3a0 20 6d 61 74 63 68 4a 75 6d 70 4c 61 62 65 6c 4e 61 6d 65 20 6f 6e 6c 79 20 6d 61 74 63 68 65 73 .matchJumpLabelName.only.matches
5c3c0 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 .if.there.is.one.............lab
5c3e0 65 6c 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 6a 75 6d 70 2d 6c 61 62 65 6c 2d 6e 61 6d 65 20 28 els.(js2-match-jump-label-name.(
5c400 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 js2-current-token-string))......
5c420 20 20 20 20 20 20 20 62 72 65 61 6b 2d 74 61 72 67 65 74 20 28 69 66 20 6c 61 62 65 6c 73 20 28 .......break-target.(if.labels.(
5c440 63 61 72 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c car.(js2-labeled-stmt-node-label
5c460 73 20 6c 61 62 65 6c 73 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 62 72 s.labels))))).....(unless.(or.br
5c480 65 61 6b 2d 74 61 72 67 65 74 20 62 72 65 61 6b 2d 6c 61 62 65 6c 29 0a 20 20 20 20 20 20 3b 3b eak-target.break-label).......;;
5c4a0 20 6e 6f 20 62 72 65 61 6b 20 74 61 72 67 65 74 20 73 70 65 63 69 66 69 65 64 20 2d 20 74 72 79 .no.break.target.specified.-.try
5c4c0 20 66 6f 72 20 69 6e 6e 65 72 6d 6f 73 74 20 65 6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 2f 73 77 .for.innermost.enclosing.loop/sw
5c4e0 69 74 63 68 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e itch.......(if.(null.js2-loop-an
5c500 64 2d 73 77 69 74 63 68 2d 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 d-switch-set)...........(unless.
5c520 62 72 65 61 6b 2d 6c 61 62 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 break-label.............(js2-rep
5c540 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 62 72 65 61 6b 22 20 6e 69 6c 20 70 6f ort-error."msg.bad.break".nil.po
5c560 73 20 28 6c 65 6e 67 74 68 20 22 62 72 65 61 6b 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 s.(length."break"))).........(se
5c580 74 71 20 62 72 65 61 6b 2d 74 61 72 67 65 74 20 28 63 61 72 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e tq.break-target.(car.js2-loop-an
5c5a0 64 2d 73 77 69 74 63 68 2d 73 65 74 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6d d-switch-set)))).....(setq.pn.(m
5c5c0 61 6b 65 2d 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 ake-js2-break-node.:pos.pos.....
5c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c ..............................:l
5c600 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en.(-.end.pos)..................
5c620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 61 62 65 6c 20 62 72 65 61 6b 2d 6c 61 .................:label.break-la
5c640 62 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bel.............................
5c660 20 20 20 20 20 20 3a 74 61 72 67 65 74 20 62 72 65 61 6b 2d 74 61 72 67 65 74 29 29 0a 20 20 20 ......:target.break-target))....
5c680 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 62 72 65 61 6b .(js2-node-add-children.pn.break
5c6a0 2d 6c 61 62 65 6c 29 20 20 3b 20 62 75 74 20 6e 6f 74 20 62 72 65 61 6b 2d 74 61 72 67 65 74 0a -label)..;.but.not.break-target.
5c6c0 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 74 69 ....pn))..(defun.js2-parse-conti
5c6e0 6e 75 65 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 63 6f 6e 74 69 6e 75 65 2d 73 74 nue.()..."Parser.for.continue-st
5c700 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 atement...Last.matched.token.mus
5c720 74 20 62 65 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 t.be.js2-CONTINUE."...(let.((pos
5c740 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 .(js2-current-token-beg)).......
5c760 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a ..(end.(js2-current-token-end)).
5c780 20 20 20 20 20 20 20 20 6c 61 62 65 6c 20 20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 75 73 65 72 2d ........label...;.optional.user-
5c7a0 73 70 65 63 69 66 69 65 64 20 6c 61 62 65 6c 2c 20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 specified.label,.a.`js2-name-nod
5c7c0 65 27 0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c 73 20 20 3b 20 63 75 72 72 65 6e 74 20 6d 61 74 e'.........labels..;.current.mat
5c7e0 63 68 69 6e 67 20 6c 61 62 65 6c 65 64 20 73 74 6d 74 2c 20 69 66 20 61 6e 79 0a 20 20 20 20 20 ching.labeled.stmt,.if.any......
5c800 20 20 20 74 61 72 67 65 74 20 20 3b 20 74 68 65 20 60 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 27 ...target..;.the.`js2-loop-node'
5c820 20 74 61 72 67 65 74 20 6f 66 20 74 68 69 73 20 63 6f 6e 74 69 6e 75 65 20 73 74 6d 74 0a 20 20 .target.of.this.continue.stmt...
5c840 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 6a 73 32 2d 70 65 65 6b ......pn).....(when.(=.(js2-peek
5c860 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28 -token-or-eol).js2-NAME).......(
5c880 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 62 65 6c js2-get-token).......(setq.label
5c8a0 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 .(js2-create-name-node).........
5c8c0 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 6c 61 62 65 6c 29 0a 20 20 20 ....end.(js2-node-end.label)....
5c8e0 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 74 63 68 4a 75 6d 70 4c 61 62 65 6c 4e 61 6d 65 20 6f .........;;.matchJumpLabelName.o
5c900 6e 6c 79 20 6d 61 74 63 68 65 73 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65 0a 20 20 20 20 nly.matches.if.there.is.one.....
5c920 20 20 20 20 20 20 20 20 6c 61 62 65 6c 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 6a 75 6d 70 2d 6c ........labels.(js2-match-jump-l
5c940 61 62 65 6c 2d 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 abel-name.(js2-current-token-str
5c960 69 6e 67 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 6c 61 ing)))).....(cond......((null.la
5c980 62 65 6c 73 29 20 20 3b 20 6e 6f 20 63 75 72 72 65 6e 74 20 6c 61 62 65 6c 20 74 6f 20 67 6f 20 bels)..;.no.current.label.to.go.
5c9a0 74 6f 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29 to.......(if.(null.js2-loop-set)
5c9c0 20 20 3b 20 6e 6f 20 6c 6f 6f 70 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 0a 20 20 20 20 20 ..;.no.loop.to.continue.to......
5c9e0 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 63 6f 6e 74 .....(js2-report-error."msg.cont
5ca00 69 6e 75 65 2e 6f 75 74 73 69 64 65 22 20 6e 69 6c 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 inue.outside".nil.pos...........
5ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 22 63 6f 6e 74 69 ..................(length."conti
5ca40 6e 75 65 22 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 72 67 65 74 20 28 63 61 72 nue")).........(setq.target.(car
5ca60 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29 29 29 29 20 20 3b 20 69 6e 6e 65 72 6d 6f 73 74 20 65 .js2-loop-set))))..;.innermost.e
5ca80 6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 69 66 20 nclosing.loop......(t.......(if.
5caa0 28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 (js2-loop-node-p.(js2-labeled-st
5cac0 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6c 61 62 65 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 mt-node-stmt.labels))...........
5cae0 28 73 65 74 71 20 74 61 72 67 65 74 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e (setq.target.(js2-labeled-stmt-n
5cb00 6f 64 65 2d 73 74 6d 74 20 6c 61 62 65 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 ode-stmt.labels)).........(js2-r
5cb20 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 63 6f 6e 74 69 6e 75 65 2e 6e 6f 6e 6c 6f 6f eport-error."msg.continue.nonloo
5cb40 70 22 20 6e 69 6c 20 70 6f 73 20 28 2d 20 65 6e 64 20 70 6f 73 29 29 29 29 29 0a 20 20 20 20 28 p".nil.pos.(-.end.pos))))).....(
5cb60 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 setq.pn.(make-js2-continue-node.
5cb80 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :pos.pos........................
5cba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 ..............:len.(-.end.pos)..
5cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5cbe0 20 20 20 20 3a 6c 61 62 65 6c 20 6c 61 62 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....:label.label................
5cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 61 72 67 65 74 20 74 61 ......................:target.ta
5cc20 72 67 65 74 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 rget)).....(js2-node-add-childre
5cc40 6e 20 70 6e 20 6c 61 62 65 6c 29 20 20 3b 20 62 75 74 20 6e 6f 74 20 74 61 72 67 65 74 20 2d 20 n.pn.label)..;.but.not.target.-.
5cc60 69 74 27 73 20 6e 6f 74 20 6f 75 72 20 63 68 69 6c 64 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 it's.not.our.child.....pn))..(de
5cc80 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 77 69 74 68 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 fun.js2-parse-with.()..."Parser.
5cca0 66 6f 72 20 77 69 74 68 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 for.with-statement...Last.matche
5ccc0 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 57 49 54 48 2e 22 0a 20 20 28 77 68 d.token.must.be.js2-WITH."...(wh
5cce0 65 6e 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20 en.js2-in-use-strict-directive..
5cd00 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 77 69 74 ...(js2-report-error."msg.no.wit
5cd20 68 2e 73 74 72 69 63 74 22 29 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 h.strict"))...(let.((pos.(js2-cu
5cd40 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 6f 62 6a 20 62 6f rrent-token-beg)).........obj.bo
5cd60 64 79 20 70 6e 20 6c 70 20 72 70 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d dy.pn.lp.rp).....(if.(js2-must-m
5cd80 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 77 69 74 68 22 29 atch.js2-LP."msg.no.paren.with")
5cda0 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 .........(setq.lp.(js2-current-t
5cdc0 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6f 62 6a 20 28 6a 73 32 2d 70 oken-beg))).....(setq.obj.(js2-p
5cde0 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 arse-expr)).....(if.(js2-must-ma
5ce00 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 77 tch.js2-RP."msg.no.paren.after.w
5ce20 69 74 68 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 70 20 28 6a 73 32 2d 63 75 72 72 ith").........(setq.rp.(js2-curr
5ce40 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6a 73 32 2d ent-token-beg))).....(let.((js2-
5ce60 6e 65 73 74 69 6e 67 2d 6f 66 2d 77 69 74 68 20 28 31 2b 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d nesting-of-with.(1+.js2-nesting-
5ce80 6f 66 2d 77 69 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 6a of-with))).........(setq.body.(j
5cea0 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 s2-parse-statement))).....(setq.
5cec0 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a pn.(make-js2-with-node.:pos.pos.
5cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5cf00 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 62 6f 64 79 29 20 70 6f 73 .:len.(-.(js2-node-end.body).pos
5cf20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
5cf40 20 20 20 3a 6f 62 6a 65 63 74 20 6f 62 6a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...:object.obj..................
5cf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 6f 64 79 20 62 6f 64 79 0a 20 20 20 20 20 ................:body.body......
5cf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 70 20 ............................:lp.
5cfa0 28 6a 73 32 2d 72 65 6c 70 6f 73 20 6c 70 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (js2-relpos.lp.pos).............
5cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 70 20 28 6a 73 32 2d 72 65 .....................:rp.(js2-re
5cfe0 6c 70 6f 73 20 72 70 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 lpos.rp.pos))).....(js2-node-add
5d000 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6f 62 6a 20 62 6f 64 79 29 0a 20 20 20 20 70 6e 29 29 0a -children.pn.obj.body).....pn)).
5d020 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 73 74 2d 76 61 72 20 28 29 0a 20 .(defun.js2-parse-const-var.()..
5d040 20 22 50 61 72 73 65 72 20 66 6f 72 20 76 61 72 2d 20 6f 72 20 63 6f 6e 73 74 2d 73 74 61 74 65 ."Parser.for.var-.or.const-state
5d060 6d 65 6e 74 2e 0a 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 ment..Last.matched.token.must.be
5d080 20 6a 73 32 2d 43 4f 4e 53 54 20 6f 72 20 6a 73 32 2d 56 41 52 2e 22 0a 20 20 28 6c 65 74 20 28 .js2-CONST.or.js2-VAR."...(let.(
5d0a0 28 74 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a 20 20 (tt.(js2-current-token-type))...
5d0c0 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 ......(pos.(js2-current-token-be
5d0e0 67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 72 20 70 6e 29 0a 20 20 20 20 28 73 65 74 71 20 65 g)).........expr.pn).....(setq.e
5d100 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62 6c 65 73 20 74 74 20 28 6a 73 32 xpr.(js2-parse-variables.tt.(js2
5d120 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 70 -current-token-beg))...........p
5d140 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20 n.(make-js2-expr-stmt-node.:pos.
5d160 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.............................
5d180 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 ..........:len.(-.(js2-node-end.
5d1a0 65 78 70 72 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 expr).pos)......................
5d1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 65 78 70 72 29 29 0a 20 20 .................:expr.expr))...
5d1e0 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72 ..(js2-node-add-children.pn.expr
5d200 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 ).....pn))..(defun.js2-wrap-with
5d220 2d 65 78 70 72 2d 73 74 6d 74 20 28 70 6f 73 20 65 78 70 72 20 26 6f 70 74 69 6f 6e 61 6c 20 61 -expr-stmt.(pos.expr.&optional.a
5d240 64 64 2d 63 68 69 6c 64 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d dd-child)...(let.((pn.(make-js2-
5d260 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 expr-stmt-node.:pos.pos.........
5d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 .............................:le
5d2a0 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 n.(js2-node-len.expr)...........
5d2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 ...........................:type
5d2e0 20 28 69 66 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 .(if.(js2-inside-function)......
5d300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d320 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 56 4f 49 44 0a 20 20 20 20 20 20 20 20 ..........js2-EXPR_VOID.........
5d340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d360 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 29 0a 20 20 20 20 20 20 20 20 20 20 .....js2-EXPR_RESULT)...........
5d380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 ...........................:expr
5d3a0 20 65 78 70 72 29 29 29 0a 20 20 20 20 28 69 66 20 61 64 64 2d 63 68 69 6c 64 0a 20 20 20 20 20 .expr))).....(if.add-child......
5d3c0 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 70 ...(js2-node-add-children.pn.exp
5d3e0 72 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6c r)).....pn))..(defun.js2-parse-l
5d400 65 74 2d 73 74 6d 74 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 6c 65 74 2d 73 74 61 et-stmt.()..."Parser.for.let-sta
5d420 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 tement...Last.matched.token.must
5d440 20 62 65 20 6a 73 32 2d 4c 45 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d .be.js2-LET."...(let.((pos.(js2-
5d460 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 72 current-token-beg)).........expr
5d480 20 70 6e 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 .pn).....(if.(=.(js2-peek-token)
5d4a0 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 74 20 65 78 70 72 65 73 73 69 .js2-LP).........;;.let.expressi
5d4c0 6f 6e 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 on.in.statement.context.........
5d4e0 28 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 6c 65 74 20 70 6f 73 20 27 73 (setq.expr.(js2-parse-let.pos.'s
5d500 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6a 73 32 2d tatement)...............pn.(js2-
5d520 77 72 61 70 2d 77 69 74 68 2d 65 78 70 72 2d 73 74 6d 74 20 70 6f 73 20 65 78 70 72 20 74 29 29 wrap-with-expr-stmt.pos.expr.t))
5d540 0a 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 .......;;.else.we're.looking.at.
5d560 61 20 73 74 61 74 65 6d 65 6e 74 20 6c 69 6b 65 20 6c 65 74 20 78 3d 36 2c 20 79 3d 37 3b 0a 20 a.statement.like.let.x=6,.y=7;..
5d580 20 20 20 20 20 28 73 65 74 66 20 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 .....(setf.expr.(js2-parse-varia
5d5a0 62 6c 65 73 20 6a 73 32 2d 4c 45 54 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 6e bles.js2-LET.pos).............pn
5d5c0 20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65 78 70 72 2d 73 74 6d 74 20 70 6f 73 20 65 78 .(js2-wrap-with-expr-stmt.pos.ex
5d5e0 70 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 pr.t).............(js2-node-type
5d600 20 70 6e 29 20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 29 29 0a 20 20 20 20 70 6e 29 29 0a .pn).js2-EXPR_RESULT)).....pn)).
5d620 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 2d 79 69 65 6c 64 20 28 29 0a 20 .(defun.js2-parse-ret-yield.()..
5d640 20 28 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d 6f 72 2d 79 69 65 6c 64 20 28 6a 73 32 .(js2-parse-return-or-yield.(js2
5d660 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 20 6e 69 6c 29 29 0a 0a 28 64 65 66 -current-token-type).nil))..(def
5d680 63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d 73 74 6d 74 2d 65 6e 64 65 const.js2-parse-return-stmt-ende
5d6a0 72 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 53 45 4d 49 20 6a 73 32 2d 52 43 20 6a 73 32 2d 45 rs...(list.js2-SEMI.js2-RC.js2-E
5d6c0 4f 46 20 6a 73 32 2d 45 4f 4c 20 6a 73 32 2d 45 52 52 4f 52 20 6a 73 32 2d 52 42 20 6a 73 32 2d OF.js2-EOL.js2-ERROR.js2-RB.js2-
5d6e0 52 50 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 77 2d 61 6c 6c 2d 73 65 74 20 RP))..(defsubst.js2-now-all-set.
5d700 28 62 65 66 6f 72 65 20 61 66 74 65 72 20 6d 61 73 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 77 68 (before.after.mask)..."Return.wh
5d720 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65 20 62 69 74 73 20 69 6e 20 74 68 65 20 6d 61 73 ether.or.not.the.bits.in.the.mas
5d740 6b 20 68 61 76 65 20 63 68 61 6e 67 65 64 20 74 6f 20 61 6c 6c 20 73 65 74 2e 0a 42 45 46 4f 52 k.have.changed.to.all.set..BEFOR
5d760 45 20 69 73 20 62 69 74 73 20 62 65 66 6f 72 65 20 63 68 61 6e 67 65 2c 20 41 46 54 45 52 20 69 E.is.bits.before.change,.AFTER.i
5d780 73 20 62 69 74 73 20 61 66 74 65 72 20 63 68 61 6e 67 65 2c 20 61 6e 64 20 4d 41 53 4b 20 69 73 s.bits.after.change,.and.MASK.is
5d7a0 0a 74 68 65 20 6d 61 73 6b 20 66 6f 72 20 62 69 74 73 2e 20 20 52 65 74 75 72 6e 73 20 74 20 69 .the.mask.for.bits...Returns.t.i
5d7c0 66 20 61 6c 6c 20 74 68 65 20 62 69 74 73 20 69 6e 20 74 68 65 20 6d 61 73 6b 20 61 72 65 20 73 f.all.the.bits.in.the.mask.are.s
5d7e0 65 74 20 69 6e 20 41 46 54 45 52 0a 62 75 74 20 6e 6f 74 20 42 45 46 4f 52 45 2e 22 0a 20 20 28 et.in.AFTER.but.not.BEFORE."...(
5d800 61 6e 64 20 28 2f 3d 20 28 6c 6f 67 61 6e 64 20 62 65 66 6f 72 65 20 6d 61 73 6b 29 20 6d 61 73 and.(/=.(logand.before.mask).mas
5d820 6b 29 0a 20 20 20 20 20 20 20 28 3d 20 28 6c 6f 67 61 6e 64 20 61 66 74 65 72 20 6d 61 73 6b 29 k)........(=.(logand.after.mask)
5d840 20 6d 61 73 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 .mask)))..(defun.js2-parse-retur
5d860 6e 2d 6f 72 2d 79 69 65 6c 64 20 28 74 74 20 65 78 70 72 2d 63 6f 6e 74 65 78 74 29 0a 20 20 28 n-or-yield.(tt.expr-context)...(
5d880 6c 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 let*.((pos.(js2-current-token-be
5d8a0 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 g))..........(end.(js2-current-t
5d8c0 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 65 66 6f 72 65 20 6a 73 32 2d oken-end))..........(before.js2-
5d8e0 65 6e 64 2d 66 6c 61 67 73 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 73 69 64 65 2d 66 75 6e 63 end-flags)..........(inside-func
5d900 74 69 6f 6e 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 tion.(js2-inside-function)).....
5d920 20 20 20 20 20 28 67 65 6e 2d 74 79 70 65 20 28 61 6e 64 20 69 6e 73 69 64 65 2d 66 75 6e 63 74 .....(gen-type.(and.inside-funct
5d940 69 6f 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72 ion.(js2-function-node-generator
5d960 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -type...........................
5d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 ...............js2-current-scrip
5d9a0 74 2d 6f 72 2d 66 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 65 20 72 65 74 20 6e 61 6d 65 20 79 t-or-fn)))..........e.ret.name.y
5d9c0 69 65 6c 64 2d 73 74 61 72 2d 70 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 73 69 64 65 2d ield-star-p).....(unless.inside-
5d9e0 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 function.......(js2-report-error
5da00 20 28 69 66 20 28 65 71 20 74 74 20 6a 73 32 2d 52 45 54 55 52 4e 29 0a 20 20 20 20 20 20 20 20 .(if.(eq.tt.js2-RETURN).........
5da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 73 67 2e 62 61 64 2e 72 65 74 ...................."msg.bad.ret
5da40 75 72 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 urn"..........................."
5da60 6d 73 67 2e 62 61 64 2e 79 69 65 6c 64 22 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 msg.bad.yield"))).....(when.(and
5da80 20 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .inside-function................
5daa0 28 65 71 20 67 65 6e 2d 74 79 70 65 20 27 53 54 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (eq.gen-type.'STAR).............
5dac0 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 29 0a 20 20 ...(js2-match-token.js2-MUL))...
5dae0 20 20 20 20 28 73 65 74 71 20 79 69 65 6c 64 2d 73 74 61 72 2d 70 20 74 29 29 0a 20 20 20 20 3b ....(setq.yield-star-p.t)).....;
5db00 3b 20 54 68 69 73 20 69 73 20 75 67 6c 79 2c 20 62 75 74 20 77 65 20 64 6f 6e 27 74 20 77 61 6e ;.This.is.ugly,.but.we.don't.wan
5db20 74 20 74 6f 20 72 65 71 75 69 72 65 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a 20 20 20 20 28 75 t.to.require.a.semicolon......(u
5db40 6e 6c 65 73 73 20 28 6d 65 6d 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 nless.(memq.(js2-peek-token-or-e
5db60 6f 6c 29 20 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d 73 74 6d 74 2d 65 6e 64 65 72 73 ol).js2-parse-return-stmt-enders
5db80 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 20 28 69 66 20 28 65 71 20 67 65 6e 2d 74 79 70 65 ).......(setq.e.(if.(eq.gen-type
5dba0 20 27 53 54 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 .'STAR)...................(js2-p
5dbc0 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arse-assign-expr)...............
5dbe0 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(js2-parse-expr)).............
5dc00 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 end.(js2-node-end.e))).....(cond
5dc20 0a 20 20 20 20 20 28 28 65 71 20 74 74 20 6a 73 32 2d 52 45 54 55 52 4e 29 0a 20 20 20 20 20 20 ......((eq.tt.js2-RETURN).......
5dc40 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 6a 73 32 2d 65 6e 64 2d 66 6c 61 67 73 20 28 69 66 20 (js2-set-flag.js2-end-flags.(if.
5dc60 28 6e 75 6c 6c 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (null.e)........................
5dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e 73 0a 20 ...............js2-end-returns..
5dca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5dcc0 20 20 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e 73 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 ...js2-end-returns-value))......
5dce0 20 28 73 65 74 71 20 72 65 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 .(setq.ret.(make-js2-return-node
5dd00 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:pos.pos.......................
5dd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 ................:len.(-.end.pos)
5dd40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5dd60 20 20 20 20 20 20 20 3a 72 65 74 76 61 6c 20 65 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f .......:retval.e)).......(js2-no
5dd80 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 74 20 65 29 0a 20 20 20 20 20 20 3b 3b 20 de-add-children.ret.e).......;;.
5dda0 53 65 65 20 69 66 20 77 65 20 6e 65 65 64 20 61 20 73 74 72 69 63 74 20 6d 6f 64 65 20 77 61 72 See.if.we.need.a.strict.mode.war
5ddc0 6e 69 6e 67 2e 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 54 68 65 20 61 6e 61 6c 79 73 ning........;;.TODO:..The.analys
5dde0 69 73 20 64 6f 6e 65 20 62 79 20 60 6a 73 32 2d 68 61 73 2d 63 6f 6e 73 69 73 74 65 6e 74 2d 72 is.done.by.`js2-has-consistent-r
5de00 65 74 75 72 6e 2d 75 73 61 67 65 27 20 69 73 0a 20 20 20 20 20 20 3b 3b 20 6d 6f 72 65 20 74 68 eturn-usage'.is.......;;.more.th
5de20 6f 72 6f 75 67 68 20 61 6e 64 20 61 63 63 75 72 61 74 65 20 74 68 61 6e 20 74 68 69 73 20 62 65 orough.and.accurate.than.this.be
5de40 66 6f 72 65 2f 61 66 74 65 72 20 66 6c 61 67 20 63 68 65 63 6b 2e 0a 20 20 20 20 20 20 3b 3b 20 fore/after.flag.check........;;.
5de60 45 2e 67 2e 20 69 66 20 74 68 65 72 65 27 73 20 61 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 E.g..if.there's.a.finally-block.
5de80 74 68 61 74 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 2c 20 77 65 20 73 68 6f 75 6c 64 6e 27 that.always.returns,.we.shouldn'
5dea0 74 0a 20 20 20 20 20 20 3b 3b 20 73 68 6f 77 20 61 20 77 61 72 6e 69 6e 67 20 67 65 6e 65 72 61 t.......;;.show.a.warning.genera
5dec0 74 65 64 20 62 79 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 72 65 74 75 72 6e 73 20 69 6e 20 74 ted.by.inconsistent.returns.in.t
5dee0 68 65 20 63 61 74 63 68 20 62 6c 6f 63 6b 73 2e 0a 20 20 20 20 20 20 3b 3b 20 42 61 73 69 63 61 he.catch.blocks........;;.Basica
5df00 6c 6c 79 20 60 6a 73 32 2d 68 61 73 2d 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 75 lly.`js2-has-consistent-return-u
5df20 73 61 67 65 27 20 6e 65 65 64 73 20 74 6f 20 6b 65 65 70 20 6d 6f 72 65 20 73 74 61 74 65 2c 0a sage'.needs.to.keep.more.state,.
5df40 20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 20 6b 6e 6f 77 20 77 68 69 63 68 20 72 65 74 75 72 6e ......;;.so.we.know.which.return
5df60 73 2f 79 69 65 6c 64 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 2c 20 61 6e 64 20 77 65 20 73 68 s/yields.to.highlight,.and.we.sh
5df80 6f 75 6c 64 20 67 65 74 20 72 69 64 20 6f 66 0a 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 74 68 65 ould.get.rid.of.......;;.all.the
5dfa0 20 63 68 65 63 6b 69 6e 67 20 69 6e 20 60 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d 6f .checking.in.`js2-parse-return-o
5dfc0 72 2d 79 69 65 6c 64 27 2e 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 73 74 72 r-yield'........(if.(and.js2-str
5dfe0 69 63 74 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 77 61 72 6e 69 6e 67 0a ict-inconsistent-return-warning.
5e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 77 2d 61 6c 6c 2d 73 65 74 20 ...............(js2-now-all-set.
5e020 62 65 66 6f 72 65 20 6a 73 32 2d 65 6e 64 2d 66 6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 before.js2-end-flags............
5e040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 67 69 6f 72 20 6a 73 32 .....................(logior.js2
5e060 2d 65 6e 64 2d 72 65 74 75 72 6e 73 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e 73 2d 76 61 6c -end-returns.js2-end-returns-val
5e080 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d ue)))...........(js2-add-strict-
5e0a0 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 72 65 74 75 72 6e 2e 69 6e 63 6f 6e 73 69 73 74 65 6e 74 warning."msg.return.inconsistent
5e0c0 22 20 6e 69 6c 20 70 6f 73 20 65 6e 64 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 67 65 6e 2d 74 ".nil.pos.end)))......((eq.gen-t
5e0e0 79 70 65 20 27 43 4f 4d 50 52 45 48 45 4e 53 49 4f 4e 29 0a 20 20 20 20 20 20 3b 3b 20 46 49 58 ype.'COMPREHENSION).......;;.FIX
5e100 4d 45 3a 20 57 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 73 77 69 74 63 68 20 74 6f ME:.We.should.probably.switch.to
5e120 20 73 61 76 69 6e 67 20 61 6e 64 20 75 73 69 6e 67 20 6c 61 73 74 59 69 65 6c 64 4f 66 66 73 65 .saving.and.using.lastYieldOffse
5e140 74 2c 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6b 65 20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 64 6f t,.......;;.like.SpiderMonkey.do
5e160 65 73 2e 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 es........(js2-report-error."msg
5e180 2e 73 79 6e 74 61 78 22 20 6e 69 6c 20 70 6f 73 20 35 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 .syntax".nil.pos.5))......(t....
5e1a0 20 20 20 28 73 65 74 71 20 72 65 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 ...(setq.ret.(make-js2-yield-nod
5e1c0 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.:pos.pos......................
5e1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 ................:len.(-.end.pos)
5e200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5e220 20 20 20 20 20 20 3a 76 61 6c 75 65 20 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......:value.e..................
5e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 61 72 2d 70 20 79 69 65 6c ....................:star-p.yiel
5e260 64 2d 73 74 61 72 2d 70 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 d-star-p)).......(js2-node-add-c
5e280 68 69 6c 64 72 65 6e 20 72 65 74 20 65 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 78 70 hildren.ret.e).......(unless.exp
5e2a0 72 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 20 72 65 74 0a 20 20 r-context.........(setq.e.ret...
5e2c0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65 ............ret.(js2-wrap-with-e
5e2e0 78 70 72 2d 73 74 6d 74 20 70 6f 73 20 65 20 74 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 73 65 xpr-stmt.pos.e.t)).......(js2-se
5e300 74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6a 73 t-requires-activation).......(js
5e320 32 2d 73 65 74 2d 69 73 2d 67 65 6e 65 72 61 74 6f 72 29 29 29 29 0a 20 20 20 20 3b 3b 20 73 65 2-set-is-generator)))).....;;.se
5e340 65 20 69 66 20 77 65 20 61 72 65 20 6d 69 78 69 6e 67 20 79 69 65 6c 64 73 20 61 6e 64 20 76 61 e.if.we.are.mixing.yields.and.va
5e360 6c 75 65 20 72 65 74 75 72 6e 73 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 69 6e 73 69 lue.returns......(when.(and.insi
5e380 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d de-function................(js2-
5e3a0 66 6c 61 67 2d 73 65 74 2d 70 20 6a 73 32 2d 65 6e 64 2d 66 6c 61 67 73 20 6a 73 32 2d 65 6e 64 flag-set-p.js2-end-flags.js2-end
5e3c0 2d 72 65 74 75 72 6e 73 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -returns-value)................(
5e3e0 65 71 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72 2d eq.(js2-function-node-generator-
5e400 74 79 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 29 0a 20 type.js2-current-script-or-fn)..
5e420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 4c 45 47 41 43 59 29 29 0a 20 20 20 20 ..................'LEGACY)).....
5e440 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 20 ..(setq.name.(js2-function-name.
5e460 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 29 29 0a 20 20 20 20 20 js2-current-script-or-fn))......
5e480 20 28 69 66 20 28 7a 65 72 6f 70 20 28 6c 65 6e 67 74 68 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 .(if.(zerop.(length.name))......
5e4a0 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 61 6e 6f 6e .....(js2-report-error."msg.anon
5e4c0 2e 67 65 6e 65 72 61 74 6f 72 2e 72 65 74 75 72 6e 73 22 20 6e 69 6c 20 70 6f 73 20 28 2d 20 65 .generator.returns".nil.pos.(-.e
5e4e0 6e 64 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 nd.pos)).........(js2-report-err
5e500 6f 72 20 22 6d 73 67 2e 67 65 6e 65 72 61 74 6f 72 2e 72 65 74 75 72 6e 73 22 20 6e 61 6d 65 20 or."msg.generator.returns".name.
5e520 70 6f 73 20 28 2d 20 65 6e 64 20 70 6f 73 29 29 29 29 0a 20 20 20 20 72 65 74 29 29 0a 0a 28 64 pos.(-.end.pos)))).....ret))..(d
5e540 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64 65 62 75 67 67 65 72 20 28 29 0a 20 20 28 6d 61 efun.js2-parse-debugger.()...(ma
5e560 6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 44 45 ke-js2-keyword-node.:type.js2-DE
5e580 42 55 47 47 45 52 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 62 6c 6f 63 6b BUGGER))..(defun.js2-parse-block
5e5a0 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 61 20 63 75 72 6c 79 2d 64 65 6c 69 6d 69 .()..."Parser.for.a.curly-delimi
5e5c0 74 65 64 20 73 74 61 74 65 6d 65 6e 74 20 62 6c 6f 63 6b 2e 0a 4c 61 73 74 20 74 6f 6b 65 6e 20 ted.statement.block..Last.token.
5e5e0 6d 61 74 63 68 65 64 20 6d 75 73 74 20 62 65 20 60 6a 73 32 2d 4c 43 27 2e 22 0a 20 20 28 6c 65 matched.must.be.`js2-LC'."...(le
5e600 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 t.((pos.(js2-current-token-beg))
5e620 0a 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 63 6f 70 65 29 29 29 0a .........(pn.(make-js2-scope))).
5e640 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 70 6e 29 0a 20 20 20 20 28 75 6e 77 ....(js2-push-scope.pn).....(unw
5e660 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 ind-protect.........(progn......
5e680 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 73 20 70 6e 29 0a 20 .....(js2-parse-statements.pn)..
5e6a0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 .........(js2-must-match.js2-RC.
5e6c0 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 62 6c 6f 63 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 "msg.no.brace.block")...........
5e6e0 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d (setf.(js2-node-len.pn).(-.(js2-
5e700 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 current-token-end).pos))).......
5e720 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 3b 3b 20 46 6f (js2-pop-scope)).....pn))..;;.Fo
5e740 72 20 60 6a 73 32 2d 45 52 52 4f 52 27 20 74 6f 6f 2c 20 74 6f 20 68 61 76 65 20 61 20 6e 6f 64 r.`js2-ERROR'.too,.to.have.a.nod
5e760 65 20 66 6f 72 20 65 72 72 6f 72 20 72 65 63 6f 76 65 72 79 20 74 6f 20 77 6f 72 6b 20 6f 6e 2e e.for.error.recovery.to.work.on.
5e780 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 73 65 6d 69 20 28 29 0a 20 20 22 50 61 72 .(defun.js2-parse-semi.()..."Par
5e7a0 73 65 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 68 61 6e 64 6c 65 20 61 6e 20 65 72 72 6f se.a.statement.or.handle.an.erro
5e7c0 72 2e 0a 43 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 74 79 70 65 20 69 73 20 60 6a 73 32 2d 53 45 r..Current.token.type.is.`js2-SE
5e7e0 4d 49 27 20 6f 72 20 60 6a 73 32 2d 45 52 52 4f 52 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 74 MI'.or.`js2-ERROR'."...(let.((tt
5e800 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 20 70 6f 73 20 6c .(js2-current-token-type)).pos.l
5e820 65 6e 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 74 74 20 6a 73 32 2d 53 45 4d 49 29 0a 20 20 20 en).....(if.(eq.tt.js2-SEMI)....
5e840 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 3a .....(make-js2-empty-expr-node.:
5e860 6c 65 6e 20 31 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 len.1).......(setq.pos.(js2-curr
5e880 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 28 ent-token-beg).............len.(
5e8a0 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 0a -.(js2-current-token-end).pos)).
5e8c0 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e ......(js2-report-error."msg.syn
5e8e0 74 61 78 22 20 6e 69 6c 20 70 6f 73 20 6c 65 6e 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 tax".nil.pos.len).......(make-js
5e900 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 20 3a 6c 65 6e 20 6c 65 6e 29 29 2-error-node.:pos.pos.:len.len))
5e920 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64 65 66 61 75 6c 74 2d 78 6d 6c ))..(defun.js2-parse-default-xml
5e940 2d 6e 61 6d 65 73 70 61 63 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 61 20 60 64 65 66 61 75 6c -namespace.()..."Parse.a.`defaul
5e960 74 20 78 6d 6c 20 6e 61 6d 65 73 70 61 63 65 20 3d 20 3c 65 78 70 72 3e 27 20 65 34 78 20 73 74 t.xml.namespace.=.<expr>'.e4x.st
5e980 61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 atement."...(let.((pos.(js2-curr
5e9a0 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 65 6e 64 20 6c 65 6e 20 ent-token-beg)).........end.len.
5e9c0 65 78 70 72 20 75 6e 61 72 79 29 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78 expr.unary).....(js2-must-have-x
5e9e0 6d 6c 29 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61 ml).....(js2-set-requires-activa
5ea00 74 69 6f 6e 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 tion).....(setq.len.(-.js2-ts-cu
5ea20 72 73 6f 72 20 70 6f 73 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 6a 73 32 rsor.pos)).....(unless.(and.(js2
5ea40 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 -match-token.js2-NAME)..........
5ea60 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f ........(string=.(js2-current-to
5ea80 6b 65 6e 2d 73 74 72 69 6e 67 29 20 22 78 6d 6c 22 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 ken-string)."xml")).......(js2-r
5eaa0 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 6e 61 6d 65 73 70 61 63 65 22 20 eport-error."msg.bad.namespace".
5eac0 6e 69 6c 20 70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 nil.pos.len)).....(unless.(and.(
5eae0 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 js2-match-token.js2-NAME).......
5eb00 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 ...........(string=.(js2-current
5eb20 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 20 22 6e 61 6d 65 73 70 61 63 65 22 29 29 0a 20 20 20 -token-string)."namespace"))....
5eb40 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 6e 61 ...(js2-report-error."msg.bad.na
5eb60 6d 65 73 70 61 63 65 22 20 6e 69 6c 20 70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 28 75 6e 6c 65 mespace".nil.pos.len)).....(unle
5eb80 73 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 41 53 53 49 47 4e 29 0a ss.(js2-match-token.js2-ASSIGN).
5eba0 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 ......(js2-report-error."msg.bad
5ebc0 2e 6e 61 6d 65 73 70 61 63 65 22 20 6e 69 6c 20 70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 28 73 .namespace".nil.pos.len)).....(s
5ebe0 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 20 etq.expr.(js2-parse-expr).......
5ec00 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 78 70 72 29 0a 20 20 20 20 ....end.(js2-node-end.expr).....
5ec20 20 20 20 20 20 20 75 6e 61 72 79 20 28 6d 61 6b 65 2d 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 ......unary.(make-js2-unary-node
5ec40 20 3a 74 79 70 65 20 6a 73 32 2d 44 45 46 41 55 4c 54 4e 41 4d 45 53 50 41 43 45 0a 20 20 20 20 .:type.js2-DEFAULTNAMESPACE.....
5ec60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ec80 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:pos.pos.......................
5eca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a ...............:len.(-.end.pos).
5ecc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5ece0 20 20 20 20 20 3a 6f 70 65 72 61 6e 64 20 65 78 70 72 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f .....:operand.expr)).....(js2-no
5ed00 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 75 6e 61 72 79 20 65 78 70 72 29 0a 20 20 20 20 de-add-children.unary.expr).....
5ed20 28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f (make-js2-expr-stmt-node.:pos.po
5ed40 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a s..............................:
5ed60 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 len.(-.end.pos).................
5ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 75 6e 61 72 79 29 29 29 0a 0a 28 64 65 .............:expr.unary)))..(de
5eda0 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 6c 61 62 65 6c 20 28 6c 61 62 65 6c 20 62 75 6e 64 fun.js2-record-label.(label.bund
5edc0 6c 65 29 0a 20 20 3b 3b 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 73 68 6f 75 6c 64 20 62 65 le)...;;.current.token.should.be
5ede0 20 63 6f 6c 6f 6e 20 74 68 61 74 20 60 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d 61 72 79 2d 65 .colon.that.`js2-parse-primary-e
5ee00 78 70 72 27 20 6c 65 66 74 20 75 6e 74 6f 75 63 68 65 64 0a 20 20 28 6a 73 32 2d 67 65 74 2d 74 xpr'.left.untouched...(js2-get-t
5ee20 6f 6b 65 6e 29 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e oken)...(let.((name.(js2-label-n
5ee40 6f 64 65 2d 6e 61 6d 65 20 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c 65 64 ode-name.label)).........labeled
5ee60 2d 73 74 6d 74 0a 20 20 20 20 20 20 20 20 64 75 70 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 65 -stmt.........dup).....(when.(se
5ee80 74 71 20 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 6e 61 6d 65 tq.labeled-stmt.(cdr.(assoc.name
5eea0 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 66 6c 61 67 20 .js2-label-set))).......;;.flag.
5eec0 62 6f 74 68 20 6c 61 62 65 6c 73 20 69 66 20 70 6f 73 73 69 62 6c 65 20 77 68 65 6e 20 75 73 65 both.labels.if.possible.when.use
5eee0 64 20 69 6e 20 65 64 69 74 69 6e 67 20 6d 6f 64 65 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 d.in.editing.mode.......(if.(and
5ef00 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 .js2-parse-ide-mode.............
5ef20 20 20 20 28 73 65 74 71 20 64 75 70 20 28 6a 73 32 2d 67 65 74 2d 6c 61 62 65 6c 2d 62 79 2d 6e ...(setq.dup.(js2-get-label-by-n
5ef40 61 6d 65 20 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 ame.labeled-stmt.name)))........
5ef60 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 75 70 2e 6c 61 ...(js2-report-error."msg.dup.la
5ef80 62 65 6c 22 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bel".nil........................
5efa0 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 64 75 70 29 20 28 6a 73 32 .....(js2-node-abs-pos.dup).(js2
5efc0 2d 6e 6f 64 65 2d 6c 65 6e 20 64 75 70 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f -node-len.dup))).......(js2-repo
5efe0 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 75 70 2e 6c 61 62 65 6c 22 20 6e 69 6c 0a 20 20 20 rt-error."msg.dup.label".nil....
5f000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 .....................(js2-node-p
5f020 6f 73 20 6c 61 62 65 6c 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6c 61 62 65 6c 29 29 29 os.label).(js2-node-len.label)))
5f040 0a 20 20 20 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 61 64 64 2d .....(js2-labeled-stmt-node-add-
5f060 6c 61 62 65 6c 20 62 75 6e 64 6c 65 20 6c 61 62 65 6c 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 label.bundle.label).....(js2-nod
5f080 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 62 75 6e 64 6c 65 20 6c 61 62 65 6c 29 0a 20 20 20 e-add-children.bundle.label)....
5f0a0 20 3b 3b 20 41 64 64 20 6f 6e 65 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 62 75 6e .;;.Add.one.reference.to.the.bun
5f0c0 64 6c 65 20 70 65 72 20 6c 61 62 65 6c 20 69 6e 20 60 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 27 dle.per.label.in.`js2-label-set'
5f0e0 0a 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 6e 61 6d 65 20 62 75 6e 64 6c 65 29 20 6a 73 .....(push.(cons.name.bundle).js
5f100 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2-label-set)))..(defun.js2-parse
5f120 2d 6e 61 6d 65 2d 6f 72 2d 6c 61 62 65 6c 20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 -name-or-label.()..."Parser.for.
5f140 69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 6c 61 62 65 6c 2e 20 20 4c 61 73 74 20 74 6f 6b 65 6e identifier.or.label...Last.token
5f160 20 6d 61 74 63 68 65 64 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 4e 41 4d 45 2e 0a 43 61 6c 6c 65 .matched.must.be.js2-NAME..Calle
5f180 64 20 77 68 65 6e 20 77 65 20 66 6f 75 6e 64 20 61 20 6e 61 6d 65 20 69 6e 20 61 20 73 74 61 74 d.when.we.found.a.name.in.a.stat
5f1a0 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 49 66 20 69 74 27 73 20 61 20 6c 61 62 65 6c 2c ement.context...If.it's.a.label,
5f1c0 20 77 65 20 67 61 74 68 65 72 0a 75 70 20 61 6e 79 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 61 62 65 .we.gather.up.any.following.labe
5f1e0 6c 73 20 61 6e 64 20 74 68 65 20 6e 65 78 74 20 6e 6f 6e 2d 6c 61 62 65 6c 20 73 74 61 74 65 6d ls.and.the.next.non-label.statem
5f200 65 6e 74 20 69 6e 74 6f 20 61 0a 60 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 ent.into.a.`js2-labeled-stmt-nod
5f220 65 27 20 62 75 6e 64 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 61 74 2e 20 20 4f 74 68 65 e'.bundle.and.return.that...Othe
5f240 72 77 69 73 65 20 77 65 20 70 61 72 73 65 20 61 6e 0a 65 78 70 72 65 73 73 69 6f 6e 20 61 6e 64 rwise.we.parse.an.expression.and
5f260 20 72 65 74 75 72 6e 20 69 74 20 77 72 61 70 70 65 64 20 69 6e 20 61 20 60 6a 73 32 2d 65 78 70 .return.it.wrapped.in.a.`js2-exp
5f280 72 2d 73 74 6d 74 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 r-stmt-node'."...(let.((pos.(js2
5f2a0 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 -current-token-beg)).........exp
5f2c0 72 20 73 74 6d 74 20 62 75 6e 64 6c 65 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 r.stmt.bundle.........(continue.
5f2e0 74 29 29 0a 20 20 20 20 3b 3b 20 73 65 74 20 63 68 65 63 6b 20 66 6f 72 20 6c 61 62 65 6c 20 61 t)).....;;.set.check.for.label.a
5f300 6e 64 20 63 61 6c 6c 20 64 6f 77 6e 20 74 6f 20 60 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d 61 nd.call.down.to.`js2-parse-prima
5f320 72 79 2d 65 78 70 72 27 0a 20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 6d 61 79 ry-expr'.....(setq.expr.(js2-may
5f340 62 65 2d 70 61 72 73 65 2d 6c 61 62 65 6c 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 65 be-parse-label)).....(if.(null.e
5f360 78 70 72 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 61 72 73 65 20 74 68 65 20 6e 6f 6e 2d 6c 61 xpr).........;;.Parse.the.non-la
5f380 62 65 6c 20 65 78 70 72 65 73 73 69 6f 6e 20 61 6e 64 20 77 72 61 70 20 77 69 74 68 20 65 78 70 bel.expression.and.wrap.with.exp
5f3a0 72 65 73 73 69 6f 6e 20 73 74 6d 74 2e 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 77 72 61 70 2d ression.stmt..........(js2-wrap-
5f3c0 77 69 74 68 2d 65 78 70 72 2d 73 74 6d 74 20 70 6f 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 with-expr-stmt.pos.(js2-parse-ex
5f3e0 70 72 29 20 74 29 0a 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 70 61 72 73 65 64 20 61 20 6c 61 pr).t).......;;.else.parsed.a.la
5f400 62 65 6c 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 6e 64 6c 65 20 28 6d 61 6b 65 2d 6a 73 32 bel.......(setq.bundle.(make-js2
5f420 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 29 29 0a 20 20 -labeled-stmt-node.:pos.pos))...
5f440 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 6c 61 62 65 6c 20 65 78 70 72 20 62 75 6e 64 6c ....(js2-record-label.expr.bundl
5f460 65 29 0a 20 20 20 20 20 20 3b 3b 20 6c 6f 6f 6b 20 66 6f 72 20 6d 6f 72 65 20 6c 61 62 65 6c 73 e).......;;.look.for.more.labels
5f480 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 28 3d 20 28 .......(while.(and.continue.(=.(
5f4a0 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 js2-get-token).js2-NAME)).......
5f4c0 20 20 28 69 66 20 28 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73 ..(if.(setq.expr.(js2-maybe-pars
5f4e0 65 2d 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 e-label)).............(js2-recor
5f500 64 2d 6c 61 62 65 6c 20 65 78 70 72 20 62 75 6e 64 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 d-label.expr.bundle)...........(
5f520 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 setq.expr.(js2-parse-expr)......
5f540 20 20 20 20 20 20 20 20 20 20 20 73 74 6d 74 20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65 ...........stmt.(js2-wrap-with-e
5f560 78 70 72 2d 73 74 6d 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 65 78 70 72 29 20 65 78 70 xpr-stmt.(js2-node-pos.expr).exp
5f580 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 20 6e 69 r.t).................continue.ni
5f5a0 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d 73 65 l)...........(js2-auto-insert-se
5f5c0 6d 69 63 6f 6c 6f 6e 20 73 74 6d 74 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 6e 6f 20 6d 6f 72 65 micolon.stmt))).......;;.no.more
5f5e0 20 6c 61 62 65 6c 73 3b 20 6e 6f 77 20 70 61 72 73 65 20 74 68 65 20 6c 61 62 65 6c 65 64 20 73 .labels;.now.parse.the.labeled.s
5f600 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 tatement.......(unwind-protect..
5f620 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 74 6d 74 0a 20 20 20 20 20 20 20 20 ...........(unless.stmt.........
5f640 20 20 20 20 20 20 28 6c 65 74 20 28 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 62 75 ......(let.((js2-labeled-stmt.bu
5f660 6e 64 6c 65 29 29 20 20 3b 20 62 69 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 20 20 20 20 20 ndle))..;.bind.dynamically......
5f680 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 ...........(js2-unget-token)....
5f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 6d 74 20 28 6a 73 32 2d 73 74 61 .............(setq.stmt.(js2-sta
5f6c0 74 65 6d 65 6e 74 2d 68 65 6c 70 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d tement-helper)))).........;;.rem
5f6e0 6f 76 65 20 74 68 65 20 6c 61 62 65 6c 73 20 66 6f 72 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e ove.the.labels.for.this.statemen
5f700 74 20 66 72 6f 6d 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 65 74 0a 20 20 20 20 20 20 20 20 28 64 t.from.the.global.set.........(d
5f720 6f 6c 69 73 74 20 28 6c 61 62 65 6c 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e olist.(label.(js2-labeled-stmt-n
5f740 6f 64 65 2d 6c 61 62 65 6c 73 20 62 75 6e 64 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 ode-labels.bundle))...........(s
5f760 65 74 71 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 20 28 72 65 6d 6f 76 65 20 6c 61 62 65 6c 20 etq.js2-label-set.(remove.label.
5f780 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6a js2-label-set)))).......(setf.(j
5f7a0 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 62 75 6e 64 6c 65 s2-labeled-stmt-node-stmt.bundle
5f7c0 29 20 73 74 6d 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e ).stmt.............(js2-node-len
5f7e0 20 62 75 6e 64 6c 65 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 73 74 6d 74 29 20 .bundle).(-.(js2-node-end.stmt).
5f800 70 6f 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 pos)).......(js2-node-add-childr
5f820 65 6e 20 62 75 6e 64 6c 65 20 73 74 6d 74 29 0a 20 20 20 20 20 20 62 75 6e 64 6c 65 29 29 29 0a en.bundle.stmt).......bundle))).
5f840 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73 65 2d 6c 61 62 65 6c 20 28 29 .(defun.js2-maybe-parse-label.()
5f860 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f ...(cl-assert.(=.(js2-current-to
5f880 6b 65 6e 2d 74 79 70 65 29 20 6a 73 32 2d 4e 41 4d 45 29 29 0a 20 20 28 6c 65 74 20 28 6c 61 62 ken-type).js2-NAME))...(let.(lab
5f8a0 65 6c 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 74 74 20 28 6a 73 32 2d 67 65 74 el-pos.........(next-tt.(js2-get
5f8c0 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6c 61 62 65 6c 2d 65 6e 64 20 28 6a 73 32 -token)).........(label-end.(js2
5f8e0 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 20 -current-token-end))).....;;.Do.
5f900 6e 6f 74 20 63 6f 6e 73 75 6d 65 20 63 6f 6c 6f 6e 2c 20 69 74 20 69 73 20 75 73 65 64 20 61 73 not.consume.colon,.it.is.used.as
5f920 20 75 6e 77 69 6e 64 20 69 6e 64 69 63 61 74 6f 72 0a 20 20 20 20 3b 3b 20 74 6f 20 72 65 74 75 .unwind.indicator.....;;.to.retu
5f940 72 6e 20 74 6f 20 73 74 61 74 65 6d 65 6e 74 48 65 6c 70 65 72 2e 0a 20 20 20 20 28 6a 73 32 2d rn.to.statementHelper......(js2-
5f960 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 28 69 66 20 28 3d 20 6e 65 78 74 2d 74 74 20 unget-token).....(if.(=.next-tt.
5f980 6a 73 32 2d 43 4f 4c 4f 4e 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 32 0a 20 20 20 20 20 20 js2-COLON).........(prog2.......
5f9a0 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 62 65 6c 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 ......(setq.label-pos.(js2-curre
5f9c0 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 nt-token-beg)).............(make
5f9e0 2d 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 20 3a 70 6f 73 20 6c 61 62 65 6c 2d 70 6f 73 0a 20 -js2-label-node.:pos.label-pos..
5fa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5fa20 3a 6c 65 6e 20 28 2d 20 6c 61 62 65 6c 2d 65 6e 64 20 6c 61 62 65 6c 2d 70 6f 73 29 0a 20 20 20 :len.(-.label-end.label-pos)....
5fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e ..............................:n
5fa60 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a ame.(js2-current-token-string)).
5fa80 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 6c 61 62 65 6c 2d 70 6f ..........(js2-set-face.label-po
5faa0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 2d s.........................label-
5fac0 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e end.........................'fon
5fae0 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 20 27 72 65 63 6f 72 t-lock-variable-name-face.'recor
5fb00 64 29 29 0a 20 20 20 20 20 20 3b 3b 20 42 61 63 6b 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 20 d)).......;;.Backtrack.from.the.
5fb20 6e 61 6d 65 20 74 6f 6b 65 6e 2c 20 74 6f 6f 2e 0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 name.token,.too........(js2-unge
5fb40 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 t-token).......nil)))..(defun.js
5fb60 32 2d 70 61 72 73 65 2d 65 78 70 72 2d 73 74 6d 74 20 28 29 0a 20 20 22 44 65 66 61 75 6c 74 20 2-parse-expr-stmt.()..."Default.
5fb80 70 61 72 73 65 72 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2c 20 69 66 20 parser.in.statement.context,.if.
5fba0 6e 6f 20 72 65 63 6f 67 6e 69 7a 65 64 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 75 6e 64 2e 22 0a no.recognized.statement.found.".
5fbc0 20 20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65 78 70 72 2d 73 74 6d 74 20 28 6a 73 32 2d ..(js2-wrap-with-expr-stmt.(js2-
5fbe0 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 current-token-beg)..............
5fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(progn............
5fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b ..................(js2-unget-tok
5fc40 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en).............................
5fc60 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a .(js2-parse-expr)).t))..(defun.j
5fc80 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62 6c 65 73 20 28 64 65 63 6c 2d 74 79 70 65 20 70 6f s2-parse-variables.(decl-type.po
5fca0 73 29 0a 20 20 22 50 61 72 73 65 20 61 20 63 6f 6d 6d 61 2d 73 65 70 61 72 61 74 65 64 20 6c 69 s)..."Parse.a.comma-separated.li
5fcc0 73 74 20 6f 66 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 43 6f 75 st.of.variable.declarations..Cou
5fce0 6c 64 20 62 65 20 61 20 60 76 61 72 27 2c 20 60 63 6f 6e 73 74 27 20 6f 72 20 60 6c 65 74 27 20 ld.be.a.`var',.`const'.or.`let'.
5fd00 65 78 70 72 65 73 73 69 6f 6e 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 20 61 20 66 6f 72 2d 6c 6f expression,.possibly.in.a.for-lo
5fd20 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65 72 2e 0a 0a 44 45 43 4c 2d 54 59 50 45 20 69 73 20 61 20 op.initializer...DECL-TYPE.is.a.
5fd40 74 6f 6b 65 6e 20 76 61 6c 75 65 3a 20 65 69 74 68 65 72 20 56 41 52 2c 20 43 4f 4e 53 54 2c 20 token.value:.either.VAR,.CONST,.
5fd60 6f 72 20 4c 45 54 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 63 6f 6e 74 65 78 74 2e 0a 46 6f 72 or.LET.depending.on.context..For
5fd80 20 60 76 61 72 27 20 6f 72 20 60 63 6f 6e 73 74 27 2c 20 74 68 65 20 6b 65 79 77 6f 72 64 20 73 .`var'.or.`const',.the.keyword.s
5fda0 68 6f 75 6c 64 20 62 65 20 74 68 65 20 74 6f 6b 65 6e 20 6c 61 73 74 20 73 63 61 6e 6e 65 64 2e hould.be.the.token.last.scanned.
5fdc0 0a 0a 50 4f 53 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 77 68 65 72 65 20 74 68 65 20 ..POS.is.the.position.where.the.
5fde0 6e 6f 64 65 20 73 68 6f 75 6c 64 20 73 74 61 72 74 2e 20 49 74 27 73 20 73 6f 6d 65 74 69 6d 65 node.should.start..It's.sometime
5fe00 73 20 74 68 65 0a 76 61 72 2f 63 6f 6e 73 74 2f 6c 65 74 20 6b 65 79 77 6f 72 64 2c 20 61 6e 64 s.the.var/const/let.keyword,.and
5fe20 20 6f 74 68 65 72 20 74 69 6d 65 73 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 .other.times.the.beginning.of.th
5fe40 65 20 66 69 72 73 74 20 74 6f 6b 65 6e 0a 69 6e 20 74 68 65 20 66 69 72 73 74 20 76 61 72 69 61 e.first.token.in.the.first.varia
5fe60 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0a 0a 52 65 74 75 72 6e 73 20 74 68 65 20 70 61 ble.declaration...Returns.the.pa
5fe80 72 73 65 64 20 60 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 27 20 65 78 70 72 65 73 73 rsed.`js2-var-decl-node'.express
5fea0 69 6f 6e 20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 65 73 75 6c 74 20 28 6d 61 6b ion.node."...(let*.((result.(mak
5fec0 65 2d 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 20 3a 64 65 63 6c 2d 74 79 70 65 20 64 e-js2-var-decl-node.:decl-type.d
5fee0 65 63 6c 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ecl-type........................
5ff00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 29 29 0a 20 20 20 ..................:pos.pos))....
5ff20 20 20 20 20 20 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 6b 69 64 2d 70 6f 73 20 74 74 20 69 ......destructuring.kid-pos.tt.i
5ff40 6e 69 74 20 6e 61 6d 65 20 65 6e 64 20 6e 62 65 67 20 6e 65 6e 64 20 76 69 0a 20 20 20 20 20 20 nit.name.end.nbeg.nend.vi.......
5ff60 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29 0a 20 20 20 20 3b 3b 20 45 78 61 6d 70 6c 65 3a ...(continue.t)).....;;.Example:
5ff80 0a 20 20 20 20 3b 3b 20 76 61 72 20 66 6f 6f 20 3d 20 7b 61 3a 20 31 2c 20 62 3a 20 32 7d 2c 20 .....;;.var.foo.=.{a:.1,.b:.2},.
5ffa0 62 61 72 20 3d 20 5b 33 2c 20 34 5d 3b 0a 20 20 20 20 3b 3b 20 76 61 72 20 7b 62 3a 20 73 32 2c bar.=.[3,.4];.....;;.var.{b:.s2,
5ffc0 20 61 3a 20 73 31 7d 20 3d 20 66 6f 6f 2c 20 78 20 3d 20 36 2c 20 79 2c 20 5b 73 33 2c 20 73 34 .a:.s1}.=.foo,.x.=.6,.y,.[s3,.s4
5ffe0 5d 20 3d 20 62 61 72 3b 0a 20 20 20 20 3b 3b 20 76 61 72 20 7b 61 2c 20 62 7d 20 3d 20 62 61 7a ].=.bar;.....;;.var.{a,.b}.=.baz
60000 3b 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65 74 ;.....(while.continue.......(set
60020 71 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 q.destructuring.nil.............
60040 6e 61 6d 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65 74 name.nil.............tt.(js2-get
60060 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 2d 70 6f 73 20 28 6a 73 32 -token).............kid-pos.(js2
60080 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -current-token-beg).............
600a0 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 20 20 20 end.(js2-current-token-end).....
600c0 20 20 20 20 20 20 20 20 69 6e 69 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 ........init.nil).......(if.(or.
600e0 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 20 28 3d 20 74 74 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20 (=.tt.js2-LB).(=.tt.js2-LC))....
60100 20 20 20 20 20 20 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69 67 6e 6d 65 .......;;.Destructuring.assignme
60120 6e 74 2c 20 65 2e 67 2e 2c 20 76 61 72 20 5b 61 2c 20 62 5d 20 3d 20 2e 2e 2e 0a 20 20 20 20 20 nt,.e.g.,.var.[a,.b].=..........
60140 20 20 20 20 20 28 73 65 74 71 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 28 6a 73 32 2d 70 61 .....(setq.destructuring.(js2-pa
60160 72 73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d 61 72 79 2d 65 78 70 72 29 0a 20 20 20 20 20 rse-destruct-primary-expr)......
60180 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 64 65 73 ...........end.(js2-node-end.des
601a0 74 72 75 63 74 75 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6d 70 6c 65 20 76 tructuring)).........;;.Simple.v
601c0 61 72 69 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d ariable.name.........(js2-unget-
601e0 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 75 73 74 2d 6d token).........(when.(js2-must-m
60200 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e 62 61 64 2e 76 61 72 22 29 0a 20 20 20 20 20 20 20 atch-name."msg.bad.var")........
60220 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e ...(setq.name.(js2-create-name-n
60240 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 62 65 67 20 28 6a 73 32 2d 63 ode).................nbeg.(js2-c
60260 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-token-beg)...............
60280 20 20 6e 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 ..nend.(js2-current-token-end)..
602a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 6e 65 6e 64 29 0a 20 20 20 20 20 20 20 ...............end.nend)........
602c0 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 ...(js2-define-symbol.decl-type.
602e0 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 20 6e 61 6d 65 20 (js2-current-token-string).name.
60300 6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d js2-in-for-init)...........(js2-
60320 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 29 29 29 0a check-strict-identifier.name))).
60340 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 ......(when.(js2-match-token.js2
60360 2d 41 53 53 49 47 4e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 69 74 20 28 6a 73 32 -ASSIGN).........(setq.init.(js2
60380 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -parse-assign-expr).............
603a0 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 69 6e 69 74 29 29 0a 20 20 20 20 20 ..end.(js2-node-end.init))......
603c0 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 73 20 69 ...(js2-record-imenu-functions.i
603e0 6e 69 74 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20 nit.name)).......(when.name.....
60400 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 6e 62 65 67 20 6e 65 6e 64 20 28 69 66 20 ....(js2-set-face.nbeg.nend.(if.
60420 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 69 6e 69 74 29 0a 20 20 20 20 20 (js2-function-node-p.init)......
60440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 ...............................'
60460 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20 font-lock-function-name-face....
60480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 ...............................'
604a0 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 font-lock-variable-name-face)...
604c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 63 6f 72 64 29 29 0a 20 20 ....................'record))...
604e0 20 20 20 20 28 73 65 74 71 20 76 69 20 28 6d 61 6b 65 2d 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d ....(setq.vi.(make-js2-var-init-
60500 6e 6f 64 65 20 3a 70 6f 73 20 6b 69 64 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node.:pos.kid-pos...............
60520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d .........................:len.(-
60540 20 65 6e 64 20 6b 69 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .end.kid-pos)...................
60560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 64 65 63 6c 2d .....................:type.decl-
60580 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 69 66 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20 type)).......(if.destructuring..
605a0 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 .........(progn.............(if.
605c0 28 61 6e 64 20 28 6e 75 6c 6c 20 69 6e 69 74 29 20 28 6e 6f 74 20 6a 73 32 2d 69 6e 2d 66 6f 72 (and.(null.init).(not.js2-in-for
605e0 2d 69 6e 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 -init)).................(js2-rep
60600 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 65 73 74 72 75 63 74 2e 61 73 73 69 67 6e 2e 6e ort-error."msg.destruct.assign.n
60620 6f 2e 69 6e 69 74 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e o.init")).............(js2-defin
60640 65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f 6c 73 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 e-destruct-symbols.destructuring
60660 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
60680 20 20 20 20 20 20 20 20 20 20 64 65 63 6c 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........decl-type.............
606a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f .............................'fo
606c0 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 20 20 nt-lock-variable-name-face).....
606e0 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 ........(setf.(js2-var-init-node
60700 2d 74 61 72 67 65 74 20 76 69 29 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 29 29 0a 20 20 20 20 -target.vi).destructuring)).....
60720 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 ....(setf.(js2-var-init-node-tar
60740 67 65 74 20 76 69 29 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d get.vi).name)).......(setf.(js2-
60760 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 76 69 29 20 69 6e var-init-node-initializer.vi).in
60780 69 74 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e it).......(js2-node-add-children
607a0 20 76 69 20 6e 61 6d 65 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 69 6e 69 74 29 0a 20 20 20 .vi.name.destructuring.init)....
607c0 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68 20 72 65 73 75 6c 74 20 76 ...(js2-block-node-push.result.v
607e0 69 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 i).......(unless.(js2-match-toke
60800 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 n.js2-COMMA).........(setq.conti
60820 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c nue.nil))).....(setf.(js2-node-l
60840 65 6e 20 72 65 73 75 6c 74 29 20 28 2d 20 65 6e 64 20 70 6f 73 29 29 0a 20 20 20 20 72 65 73 75 en.result).(-.end.pos)).....resu
60860 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6c 65 74 20 28 70 6f 73 20 lt))..(defun.js2-parse-let.(pos.
60880 26 6f 70 74 69 6f 6e 61 6c 20 73 74 6d 74 2d 70 29 0a 20 20 22 50 61 72 73 65 20 61 20 6c 65 74 &optional.stmt-p)..."Parse.a.let
608a0 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72 20 73 74 61 74 65 6d 65 6e 74 2e 0a 41 20 6c 65 74 2d .expression.or.statement..A.let-
608c0 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 60 6c 65 74 20 28 expression.is.of.the.form.`let.(
608e0 76 61 72 73 29 20 65 78 70 72 27 2e 0a 41 20 6c 65 74 2d 73 74 61 74 65 6d 65 6e 74 20 69 73 20 vars).expr'..A.let-statement.is.
60900 6f 66 20 74 68 65 20 66 6f 72 6d 20 60 6c 65 74 20 28 76 61 72 73 29 20 7b 73 74 61 74 65 6d 65 of.the.form.`let.(vars).{stateme
60920 6e 74 73 7d 27 2e 0a 54 68 65 20 74 68 69 72 64 20 66 6f 72 6d 20 6f 66 20 6c 65 74 20 69 73 20 nts}'..The.third.form.of.let.is.
60940 61 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6c 69 73 74 2c 20 68 61 6e a.variable.declaration.list,.han
60960 64 6c 65 64 0a 62 79 20 60 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62 6c 65 73 27 2e 22 0a dled.by.`js2-parse-variables'.".
60980 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 20 3a ..(let.((pn.(make-js2-let-node.:
609a0 70 6f 73 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 62 65 67 20 76 61 72 73 20 62 6f 64 79 29 pos.pos)).........beg.vars.body)
609c0 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 .....(if.(js2-must-match.js2-LP.
609e0 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 6c 65 74 22 29 0a 20 20 20 20 20 20 "msg.no.paren.after.let").......
60a00 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 6c 70 20 70 6e 29 20 28 2d 20 ..(setf.(js2-let-node-lp.pn).(-.
60a20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 0a 20 (js2-current-token-beg).pos)))..
60a40 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 70 6e 29 0a 20 20 20 20 28 75 6e 77 69 ...(js2-push-scope.pn).....(unwi
60a60 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 nd-protect.........(progn.......
60a80 20 20 20 20 28 73 65 74 71 20 76 61 72 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62 ....(setq.vars.(js2-parse-variab
60aa0 6c 65 73 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 les.js2-LET.(js2-current-token-b
60ac0 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 eg)))...........(if.(js2-must-ma
60ae0 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 6c 65 74 22 29 0a 20 tch.js2-RP."msg.no.paren.let")..
60b00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 .............(setf.(js2-let-node
60b20 2d 72 70 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 -rp.pn).(-.(js2-current-token-be
60b40 67 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 6d g).pos)))...........(if.(and.stm
60b60 74 2d 70 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43 29 29 0a 20 20 t-p.(js2-match-token.js2-LC))...
60b80 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 74 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 ............;;.let.statement....
60ba0 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(progn...............
60bc0 20 20 28 73 65 74 66 20 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 ..(setf.beg.(js2-current-token-b
60be0 65 67 29 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20 73 74 6d 74 20 61 74 20 4c 43 0a 20 20 20 20 20 eg)..;.position.stmt.at.LC......
60c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65 .................body.(js2-parse
60c20 2d 73 74 61 74 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a -statements)).................(j
60c40 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e 6e 6f 2e 63 75 72 s2-must-match.js2-RC."msg.no.cur
60c60 6c 79 2e 6c 65 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 ly.let").................(setf.(
60c80 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 62 6f 64 79 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 js2-node-len.body).(-.(js2-curre
60ca0 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-token-end).beg)..............
60cc0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a .........(js2-node-len.pn).(-.(j
60ce0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 0a 20 20 20 20 20 s2-current-token-end).pos)......
60d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 62 .................(js2-let-node-b
60d20 6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ody.pn).body....................
60d40 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 70 6e 29 20 6a 73 32 2d 4c 45 54 29 29 0a ...(js2-node-type.pn).js2-LET)).
60d60 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 74 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 ............;;.let.expression...
60d80 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65 2d ..........(setf.body.(js2-parse-
60da0 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 expr)...................(js2-nod
60dc0 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 62 6f 64 79 29 e-len.pn).(-.(js2-node-end.body)
60de0 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 65 74 .pos)...................(js2-let
60e00 2d 6e 6f 64 65 2d 62 6f 64 79 20 70 6e 29 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node-body.pn).body))...........
60e20 28 73 65 74 66 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 76 61 72 73 20 70 6e 29 20 76 61 72 (setf.(js2-let-node-vars.pn).var
60e40 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 s)...........(js2-node-add-child
60e60 72 65 6e 20 70 6e 20 76 61 72 73 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 6f ren.pn.vars.body)).......(js2-po
60e80 70 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 p-scope)).....pn))..(defun.js2-d
60ea0 65 66 69 6e 65 2d 6e 65 77 2d 73 79 6d 62 6f 6c 20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65 efine-new-symbol.(decl-type.name
60ec0 20 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 73 63 6f 70 65 29 0a 20 20 28 6a 73 32 2d 73 63 .node.&optional.scope)...(js2-sc
60ee0 6f 70 65 2d 70 75 74 2d 73 79 6d 62 6f 6c 20 28 6f 72 20 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 ope-put-symbol.(or.scope.js2-cur
60f00 72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rent-scope).....................
60f20 20 20 20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....name........................
60f40 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65 .(make-js2-symbol.decl-type.name
60f60 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62 .node)))..(defun.js2-define-symb
60f80 6f 6c 20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 64 ol.(decl-type.name.&optional.nod
60fa0 65 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e 2d 62 6c 6f 63 6b 29 0a 20 20 22 44 65 66 69 6e 65 e.ignore-not-in-block)..."Define
60fc0 20 61 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 2e 0a .a.symbol.in.the.current.scope..
60fe0 49 66 20 4e 4f 44 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 74 68 65 20 41 53 If.NODE.is.non-nil,.it.is.the.AS
61000 54 20 6e 6f 64 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 73 79 6d 62 6f T.node.associated.with.the.symbo
61020 6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 28 6a 73 l."...(let*.((defining-scope.(js
61040 32 2d 67 65 74 2d 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2-get-defining-scope.js2-current
61060 2d 73 63 6f 70 65 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 -scope.name))..........(symbol.(
61080 69 66 20 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.defining-scope...............
610a0 20 20 20 20 20 20 20 28 6a 73 32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 64 65 66 .......(js2-scope-get-symbol.def
610c0 69 6e 69 6e 67 2d 73 63 6f 70 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 64 ining-scope.name)))..........(sd
610e0 74 20 28 69 66 20 73 79 6d 62 6f 6c 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c 2d 74 79 t.(if.symbol.(js2-symbol-decl-ty
61100 70 65 20 73 79 6d 62 6f 6c 29 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 69 pe.symbol).-1))..........(pos.(i
61120 66 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 f.node.(js2-node-abs-pos.node)))
61140 0a 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 69 66 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 ..........(len.(if.node.(js2-nod
61160 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 e-len.node)))).....(cond......((
61180 61 6e 64 20 73 79 6d 62 6f 6c 20 3b 20 61 6c 72 65 61 64 79 20 64 65 66 69 6e 65 64 20 69 6e 20 and.symbol.;.already.defined.in.
611a0 74 68 69 73 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 73 64 74 this.block............(or.(=.sdt
611c0 20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 73 64 74 20 .js2-LET)................(=.sdt.
611e0 6a 73 32 2d 43 4f 4e 53 54 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 64 65 66 69 6e js2-CONST))............(eq.defin
61200 69 6e 67 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 29 0a 20 20 ing-scope.js2-current-scope))...
61220 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 0a 20 20 20 20 20 20 20 28 63 6f ....(js2-report-error........(co
61240 6e 64 0a 20 20 20 20 20 20 20 20 28 28 3d 20 73 64 74 20 6a 73 32 2d 43 4f 4e 53 54 29 20 22 6d nd.........((=.sdt.js2-CONST)."m
61260 73 67 2e 63 6f 6e 73 74 2e 72 65 64 65 63 6c 22 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 73 64 sg.const.redecl").........((=.sd
61280 74 20 6a 73 32 2d 4c 45 54 29 20 22 6d 73 67 2e 6c 65 74 2e 72 65 64 65 63 6c 22 29 0a 20 20 20 t.js2-LET)."msg.let.redecl")....
612a0 20 20 20 20 20 28 28 3d 20 73 64 74 20 6a 73 32 2d 56 41 52 29 20 22 6d 73 67 2e 76 61 72 2e 72 .....((=.sdt.js2-VAR)."msg.var.r
612c0 65 64 65 63 6c 22 29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 73 64 74 20 6a 73 32 2d 46 55 4e 43 edecl").........((=.sdt.js2-FUNC
612e0 54 49 4f 4e 29 20 22 6d 73 67 2e 66 75 6e 63 74 69 6f 6e 2e 72 65 64 65 63 6c 22 29 0a 20 20 20 TION)."msg.function.redecl")....
61300 20 20 20 20 20 28 74 20 22 6d 73 67 2e 70 61 72 6d 2e 72 65 64 65 63 6c 22 29 29 0a 20 20 20 20 .....(t."msg.parm.redecl")).....
61320 20 20 20 6e 61 6d 65 20 70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 64 ...name.pos.len))......((or.(=.d
61340 65 63 6c 2d 74 79 70 65 20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 64 ecl-type.js2-LET)...........(=.d
61360 65 63 6c 2d 74 79 70 65 20 6a 73 32 2d 43 4f 4e 53 54 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 ecl-type.js2-CONST)).......(if.(
61380 61 6e 64 20 28 3d 20 64 65 63 6c 2d 74 79 70 65 20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20 and.(=.decl-type.js2-LET).......
613a0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e 2d 62 6c 6f 63 .........(not.ignore-not-in-bloc
613c0 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 28 6a 73 32 2d 6e 6f k)................(or.(=.(js2-no
613e0 64 65 2d 74 79 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 20 6a 73 32 2d 49 de-type.js2-current-scope).js2-I
61400 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d F)....................(js2-loop-
61420 6e 6f 64 65 2d 70 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 29 29 0a 20 20 20 20 node-p.js2-current-scope))).....
61440 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6c 65 74 ......(js2-report-error."msg.let
61460 2e 64 65 63 6c 2e 6e 6f 74 2e 69 6e 2e 62 6c 6f 63 6b 22 29 0a 20 20 20 20 20 20 20 20 28 6a 73 .decl.not.in.block").........(js
61480 32 2d 64 65 66 69 6e 65 2d 6e 65 77 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 6e 61 2-define-new-symbol.decl-type.na
614a0 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 64 65 63 6c 2d 74 79 70 me.node)))......((or.(=.decl-typ
614c0 65 20 6a 73 32 2d 56 41 52 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 64 65 63 6c 2d 74 79 70 e.js2-VAR)...........(=.decl-typ
614e0 65 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 29 0a 20 20 20 20 20 20 28 69 66 20 73 79 6d 62 6f e.js2-FUNCTION)).......(if.symbo
61500 6c 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 73 74 72 69 63 74 2d l...........(if.(and.js2-strict-
61520 76 61 72 2d 72 65 64 65 63 6c 61 72 61 74 69 6f 6e 2d 77 61 72 6e 69 6e 67 20 28 3d 20 73 64 74 var-redeclaration-warning.(=.sdt
61540 20 6a 73 32 2d 56 41 52 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 .js2-VAR))...............(js2-ad
61560 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 76 61 72 2e 72 65 64 65 63 6c d-strict-warning."msg.var.redecl
61580 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 ".name).............(if.(and.js2
615a0 2d 73 74 72 69 63 74 2d 76 61 72 2d 68 69 64 65 73 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 2d 77 -strict-var-hides-function-arg-w
615c0 61 72 6e 69 6e 67 20 28 3d 20 73 64 74 20 6a 73 32 2d 4c 50 29 29 0a 20 20 20 20 20 20 20 20 20 arning.(=.sdt.js2-LP))..........
615e0 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22 .......(js2-add-strict-warning."
61600 6d 73 67 2e 76 61 72 2e 68 69 64 65 73 2e 61 72 67 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 msg.var.hides.arg".name)))......
61620 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 6e 65 77 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74 ...(js2-define-new-symbol.decl-t
61640 79 70 65 20 6e 61 6d 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype.name.node...................
61660 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d .............js2-current-script-
61680 6f 72 2d 66 6e 29 29 29 0a 20 20 20 20 20 28 28 3d 20 64 65 63 6c 2d 74 79 70 65 20 6a 73 32 2d or-fn)))......((=.decl-type.js2-
616a0 4c 50 29 0a 20 20 20 20 20 20 28 69 66 20 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 3b LP).......(if.symbol...........;
616c0 3b 20 6d 75 73 74 20 62 65 20 64 75 70 6c 69 63 61 74 65 20 70 61 72 61 6d 65 74 65 72 2e 20 53 ;.must.be.duplicate.parameter..S
616e0 65 63 6f 6e 64 20 70 61 72 61 6d 65 74 65 72 20 68 69 64 65 73 20 74 68 65 0a 20 20 20 20 20 20 econd.parameter.hides.the.......
61700 20 20 20 20 3b 3b 20 66 69 72 73 74 2c 20 73 6f 20 67 6f 20 61 68 65 61 64 20 61 6e 64 20 61 64 ....;;.first,.so.go.ahead.and.ad
61720 64 20 74 68 65 20 73 65 63 6f 6e 64 20 70 61 72 61 72 61 6d 65 74 65 72 0a 20 20 20 20 20 20 20 d.the.second.pararameter........
61740 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 64 75 70 2e ...(js2-report-warning."msg.dup.
61760 70 61 72 6d 73 22 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d parms".name)).......(js2-define-
61780 6e 65 77 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65 20 6e 6f 64 65 29 29 new-symbol.decl-type.name.node))
617a0 0a 20 20 20 20 20 28 74 20 28 6a 73 32 2d 63 6f 64 65 2d 62 75 67 29 29 29 29 29 0a 0a 28 64 65 ......(t.(js2-code-bug)))))..(de
617c0 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6f 72 2d 67 65 6e 65 fun.js2-parse-paren-expr-or-gene
617e0 72 61 74 6f 72 2d 63 6f 6d 70 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 78 2d 70 6f 73 20 28 6a rator-comp.()...(let.((px-pos.(j
61800 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f 6e s2-current-token-beg))).....(con
61820 64 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 d......((and.(>=.js2-language-ve
61840 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 rsion.200)............(js2-match
61860 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 4f 52 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 -token.js2-FOR)).......(js2-pars
61880 65 2d 67 65 6e 65 72 61 74 6f 72 2d 63 6f 6d 70 20 70 78 2d 70 6f 73 29 29 0a 20 20 20 20 20 28 e-generator-comp.px-pos))......(
618a0 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 (and.(>=.js2-language-version.20
618c0 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 0)............(js2-match-token.j
618e0 73 32 2d 52 50 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 76 61 6c 69 64 20 65 78 70 72 65 s2-RP)).......;;.Not.valid.expre
61900 73 73 69 6f 6e 20 73 79 6e 74 61 78 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 76 61 6c 69 64 20 ssion.syntax,.but.this.is.valid.
61920 69 6e 20 61 6e 20 61 72 72 6f 77 0a 20 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 77 69 in.an.arrow.......;;.function.wi
61940 74 68 20 6e 6f 20 70 61 72 61 6d 73 3a 20 28 29 20 3d 3e 20 62 6f 64 79 2e 0a 20 20 20 20 20 20 th.no.params:.().=>.body........
61960 28 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 41 52 52 (if.(eq.(js2-peek-token).js2-ARR
61980 4f 57 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 74 75 72 6e 20 77 68 61 74 65 76 65 72 OW)...........;;.Return.whatever
619a0 2c 20 69 74 20 77 69 6c 6c 20 68 6f 70 65 66 75 6c 6c 79 20 62 65 20 72 65 77 69 6e 64 65 64 20 ,.it.will.hopefully.be.rewinded.
619c0 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 70 61 72 73 65 64 20 77 68 65 6e 20 77 and...........;;.reparsed.when.w
619e0 65 20 72 65 61 63 68 20 74 68 65 20 3d 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d e.reach.the.=>............(make-
61a00 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 4e 55 4c 4c 29 js2-keyword-node.:type.js2-NULL)
61a20 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e .........(js2-report-error."msg.
61a40 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 syntax").........(make-js2-error
61a60 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6a -node)))......(t.......(let*.((j
61a80 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 s2-in-for-init.nil).............
61aa0 20 28 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 .(expr.(js2-parse-expr))........
61ac0 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 20 3a ......(pn.(make-js2-paren-node.:
61ae0 70 6f 73 20 70 78 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pos.px-pos......................
61b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 65 78 70 72 29 29 29 0a 20 .................:expr.expr)))..
61b20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e .......(js2-node-add-children.pn
61b40 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70 72 20 70 6e 29 29 0a 20 20 20 20 20 .(js2-paren-node-expr.pn))......
61b60 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e ...(js2-must-match.js2-RP."msg.n
61b80 6f 2e 70 61 72 65 6e 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 o.paren").........(setf.(js2-nod
61ba0 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d e-len.pn).(-.(js2-current-token-
61bc0 65 6e 64 29 20 70 78 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 70 6e 29 29 29 29 29 0a 0a 28 end).px-pos)).........pn)))))..(
61be0 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 defun.js2-parse-expr.(&optional.
61c00 6f 6e 65 73 68 6f 74 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 oneshot)...(let*.((pn.(js2-parse
61c20 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 -assign-expr))..........(pos.(js
61c40 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 20 6c 65 66 74 0a 20 20 2-node-pos.pn))..........left...
61c60 20 20 20 20 20 20 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 6f 70 2d 70 6f 73 29 0a 20 20 .......right..........op-pos)...
61c80 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 6f 6e 65 73 68 6f 74 29 0a 20 20 20 20 ..(while.(and.(not.oneshot).....
61ca0 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 ............(js2-match-token.js2
61cc0 2d 43 4f 4d 4d 41 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 2d 70 6f 73 20 28 2d 20 28 -COMMA)).......(setq.op-pos.(-.(
61ce0 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 20 20 3b 20 js2-current-token-beg).pos))..;.
61d00 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b relative.......(if.(eq.(js2-peek
61d20 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 52 50 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 6f -token).js2-RP)...........;;.Sto
61d40 70 20 74 68 65 20 70 61 72 73 65 72 20 66 72 6f 6d 20 73 63 61 6e 6e 69 6e 67 20 74 6f 6f 20 66 p.the.parser.from.scanning.too.f
61d60 61 72 3a 20 69 74 27 73 20 61 63 74 75 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76 ar:.it's.actually...........;;.v
61d80 61 6c 69 64 20 73 79 6e 74 61 78 20 69 6e 20 61 72 72 6f 77 20 66 75 6e 20 61 72 67 75 6d 65 6e alid.syntax.in.arrow.fun.argumen
61da0 74 73 2c 20 61 6e 64 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 ts,.and.we.don't.want...........
61dc0 3b 3b 20 74 68 65 20 52 50 20 74 6f 6b 65 6e 20 74 6f 20 67 65 74 20 63 6f 6e 73 75 6d 65 64 2e ;;.the.RP.token.to.get.consumed.
61de0 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 ...........(js2-report-error."ms
61e00 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 69 67 68 74 20 28 g.syntax").........(setq.right.(
61e20 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 js2-parse-assign-expr)..........
61e40 20 20 20 20 20 6c 65 66 74 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d .....left.pn...............pn.(m
61e60 61 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 43 4f 4d ake-js2-infix-node.:type.js2-COM
61e80 4d 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 MA..............................
61ea0 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........:pos.pos...............
61ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 ........................:len.(-.
61ee0 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 js2-ts-cursor.pos)..............
61f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73 .........................:op-pos
61f20 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .op-pos.........................
61f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 6c 65 66 74 0a 20 20 20 20 20 20 20 ..............:left.left........
61f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
61f80 72 69 67 68 74 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d right.right)).........(js2-node-
61fa0 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6c 65 66 74 20 72 69 67 68 74 29 29 29 0a 20 20 add-children.pn.left.right)))...
61fc0 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d ..pn))..(defun.js2-parse-assign-
61fe0 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b expr.()...(let.((tt.(js2-get-tok
62000 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 en)).........(pos.(js2-current-t
62020 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 70 6e 20 6c 65 66 74 20 72 69 67 68 74 oken-beg)).........pn.left.right
62040 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 74 73 2d 73 74 61 74 65 20 72 65 63 6f 72 64 65 .op-pos.........ts-state.recorde
62060 64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 70 61 72 73 65 64 2d 65 72 72 6f 72 73 0a 20 20 20 20 d-identifiers.parsed-errors.....
62080 20 20 20 20 61 73 79 6e 63 2d 70 29 0a 20 20 20 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 59 ....async-p).....(if.(=.tt.js2-Y
620a0 49 45 4c 44 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d IELD).........(js2-parse-return-
620c0 6f 72 2d 79 69 65 6c 64 20 74 74 20 74 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 6d 6f 6f or-yield.tt.t).......;;.TODO(moo
620e0 7a 29 3a 20 42 69 74 20 63 6f 6e 66 75 73 69 6e 67 2e 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 77 z):.Bit.confusing........;;.If.w
62100 65 20 6d 65 65 74 20 60 61 73 79 6e 63 60 20 74 6f 6b 65 6e 20 61 6e 64 20 69 74 27 73 20 6e 6f e.meet.`async`.token.and.it's.no
62120 74 20 70 61 72 74 20 6f 66 20 60 61 73 79 6e 63 0a 20 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69 t.part.of.`async.......;;.functi
62140 6f 6e 60 2c 20 74 68 65 6e 20 74 68 69 73 20 60 61 73 79 6e 63 60 20 69 73 20 66 6f 72 20 61 20 on`,.then.this.`async`.is.for.a.
62160 73 75 63 63 65 65 64 69 6e 67 20 61 73 79 6e 63 20 61 72 72 6f 77 0a 20 20 20 20 20 20 3b 3b 20 succeeding.async.arrow.......;;.
62180 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 61 72 72 6f 77 20 66 function........;;.Since.arrow.f
621a0 75 6e 63 74 69 6f 6e 20 70 61 72 73 69 6e 67 20 64 6f 65 73 6e 27 74 20 72 65 6c 79 20 6f 6e 20 unction.parsing.doesn't.rely.on.
621c0 6e 65 69 74 68 65 72 0a 20 20 20 20 20 20 3b 3b 20 60 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 neither.......;;.`js2-parse-func
621e0 74 69 6f 6e 2d 73 74 6d 74 27 20 6e 6f 72 20 60 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 tion-stmt'.nor.`js2-parse-functi
62200 6f 6e 2d 65 78 70 72 27 20 74 68 61 74 0a 20 20 20 20 20 20 3b 3b 20 69 6e 74 65 72 70 72 65 74 on-expr'.that.......;;.interpret
62220 20 60 61 73 79 6e 63 60 20 74 6f 6b 65 6e 2c 20 77 65 20 74 72 61 73 68 20 60 61 73 79 6e 63 60 .`async`.token,.we.trash.`async`
62240 20 61 6e 64 20 6a 75 73 74 20 72 65 6d 65 6d 62 65 72 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 6d .and.just.remember.......;;.we.m
62260 65 74 20 60 61 73 79 6e 63 60 20 6b 65 79 77 6f 72 64 20 74 6f 20 60 61 73 79 6e 63 2d 70 27 2e et.`async`.keyword.to.`async-p'.
62280 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 61 72 .......(when.(js2-match-async-ar
622a0 72 6f 77 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 73 79 6e row-function).........(setq.asyn
622c0 63 2d 70 20 74 29 29 0a 20 20 20 20 20 20 3b 3b 20 53 61 76 65 20 74 68 65 20 74 6f 6b 65 6e 69 c-p.t)).......;;.Save.the.tokeni
622e0 7a 65 72 20 73 74 61 74 65 20 69 6e 20 63 61 73 65 20 77 65 20 66 69 6e 64 20 61 6e 20 61 72 72 zer.state.in.case.we.find.an.arr
62300 6f 77 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 68 61 76 65 20 74 6f ow.function.......;;.and.have.to
62320 20 72 65 77 69 6e 64 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 73 2d 73 74 61 74 65 20 28 6d .rewind........(setq.ts-state.(m
62340 61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ake-js2-ts-state).............re
62360 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d corded-identifiers.js2-recorded-
62380 69 64 65 6e 74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 73 65 64 2d 65 identifiers.............parsed-e
623a0 72 72 6f 72 73 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 20 3b rrors.js2-parsed-errors).......;
623c0 3b 20 6e 6f 74 20 79 69 65 6c 64 20 2d 20 70 61 72 73 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 65 ;.not.yield.-.parse.assignment.e
623e0 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 xpression.......(setq.pn.(js2-pa
62400 72 73 65 2d 63 6f 6e 64 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a rse-cond-expr).............tt.(j
62420 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 s2-get-token)).......(cond......
62440 20 20 28 28 61 6e 64 20 28 3c 3d 20 6a 73 32 2d 66 69 72 73 74 2d 61 73 73 69 67 6e 20 74 74 29 ..((and.(<=.js2-first-assign.tt)
62460 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 74 74 20 6a 73 32 2d 6c 61 73 74 2d 61 73 ..............(<=.tt.js2-last-as
62480 73 69 67 6e 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 74 20 65 78 70 72 65 73 73 20 61 73 73 sign)).........;;.tt.express.ass
624a0 69 67 6e 6d 65 6e 74 20 28 3d 2c 20 7c 3d 2c 20 5e 3d 2c 20 2e 2e 2e 2c 20 25 3d 29 0a 20 20 20 ignment.(=,.|=,.^=,....,.%=)....
624c0 20 20 20 20 20 28 73 65 74 71 20 6f 70 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e .....(setq.op-pos.(-.(js2-curren
624e0 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 20 20 3b 20 72 65 6c 61 74 69 76 65 0a 20 20 t-token-beg).pos)..;.relative...
62500 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 20 70 6e 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 ............left.pn).........;;.
62520 54 68 65 20 61 73 73 69 67 6e 65 64 20 6e 6f 64 65 20 63 6f 75 6c 64 20 62 65 20 61 20 6a 73 32 The.assigned.node.could.be.a.js2
62540 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 28 66 6f 6f 2e 62 61 72 20 3d 20 30 29 2c 20 77 65 -prop-get-node.(foo.bar.=.0),.we
62560 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 61 72 65 20 61 62 6f 75 74 20 61 73 73 69 .only.........;;.care.about.assi
62580 67 6e 6d 65 6e 74 20 74 6f 20 73 74 72 69 63 74 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e gnment.to.strict.variable.names.
625a0 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 .........(when.(js2-name-node-p.
625c0 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63 left)...........(js2-check-stric
625e0 74 2d 69 64 65 6e 74 69 66 69 65 72 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 t-identifier.left)).........(set
62600 71 20 72 69 67 68 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a q.right.(js2-parse-assign-expr).
62620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 61 73 73 69 67 ..............pn.(make-js2-assig
62640 6e 2d 6e 6f 64 65 20 3a 74 79 70 65 20 74 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-node.:type.tt.................
62660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a .......................:pos.pos.
62680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
626a0 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 72 69 67 .......:len.(-.(js2-node-end.rig
626c0 68 74 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ht).pos)........................
626e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 ................:op-pos.op-pos..
62700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62720 20 20 20 20 20 20 3a 6c 65 66 74 20 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......:left.left................
62740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 72 ........................:right.r
62760 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 ight)).........(when.js2-parse-i
62780 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 de-mode...........(js2-highlight
627a0 2d 61 73 73 69 67 6e 2d 74 61 72 67 65 74 73 20 70 6e 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 -assign-targets.pn.left.right)..
627c0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 .........(js2-record-imenu-funct
627e0 69 6f 6e 73 20 72 69 67 68 74 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 20 ions.right.left)).........;;.do.
62800 74 68 69 73 20 6c 61 73 74 20 73 6f 20 69 64 65 20 63 68 65 63 6b 73 20 61 62 6f 76 65 20 63 61 this.last.so.ide.checks.above.ca
62820 6e 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 n.use.absolute.positions........
62840 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6c 65 66 74 20 .(js2-node-add-children.pn.left.
62860 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e right))........((and.(>=.js2-lan
62880 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 guage-version.200)..............
628a0 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 41 52 52 4f (or...............(=.tt.js2-ARRO
628c0 57 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 61 73 79 6e 63 2d 70 0a 20 20 W)...............(and.async-p...
628e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f .................(=.(js2-peek-to
62900 6b 65 6e 29 20 6a 73 32 2d 41 52 52 4f 57 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d ken).js2-ARROW)))).........(js2-
62920 74 73 2d 73 65 65 6b 20 74 73 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 ts-seek.ts-state).........(when.
62940 61 73 79 6e 63 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 async-p...........(js2-record-fa
62960 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 ce.'font-lock-keyword-face).....
62980 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 ......(js2-get-token)).........(
629a0 73 65 74 71 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 72 65 setq.js2-recorded-identifiers.re
629c0 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 corded-identifiers..............
629e0 20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 70 61 72 73 65 64 2d 65 72 72 6f 72 73 .js2-parsed-errors.parsed-errors
62a00 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 ).........(setq.pn.(js2-parse-fu
62a20 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f 4e 5f 41 52 52 4f 57 20 28 6a 73 32 2d 63 75 72 72 nction.'FUNCTION_ARROW.(js2-curr
62a40 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 6e 69 6c 20 61 73 79 6e 63 2d 70 29 29 29 0a 20 20 ent-token-beg).nil.async-p)))...
62a60 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e .....(t.........(js2-unget-token
62a80 29 29 29 0a 20 20 20 20 20 20 70 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 ))).......pn)))..(defun.js2-pars
62aa0 65 2d 63 6f 6e 64 2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 e-cond-expr.()...(let.((pos.(js2
62ac0 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 70 6e -current-token-beg)).........(pn
62ae0 20 28 6a 73 32 2d 70 61 72 73 65 2d 6e 75 6c 6c 69 73 68 2d 63 6f 61 6c 65 73 63 69 6e 67 2d 65 .(js2-parse-nullish-coalescing-e
62b00 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 xpr)).........test-expr.........
62b20 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20 69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 if-true.........if-false........
62b40 20 71 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 63 2d 70 6f 73 29 0a 20 20 20 20 28 77 68 65 6e 20 .q-pos.........c-pos).....(when.
62b60 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20 20 20 (js2-match-token.js2-HOOK)......
62b80 20 28 73 65 74 71 20 71 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b .(setq.q-pos.(-.(js2-current-tok
62ba0 65 6e 2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 2d 74 72 75 65 en-beg).pos).............if-true
62bc0 20 28 6c 65 74 20 28 6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 29 20 28 6a 73 32 2d 70 61 72 .(let.(js2-in-for-init).(js2-par
62be0 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 se-assign-expr))).......(js2-mus
62c00 74 2d 6d 61 74 63 68 20 6a 73 32 2d 43 4f 4c 4f 4e 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e t-match.js2-COLON."msg.no.colon.
62c20 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 2d 70 6f 73 20 28 2d 20 28 6a 73 32 cond").......(setq.c-pos.(-.(js2
62c40 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 -current-token-beg).pos)........
62c60 20 20 20 20 20 69 66 2d 66 61 6c 73 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d .....if-false.(js2-parse-assign-
62c80 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 2d 65 78 70 72 20 70 6e 0a 20 expr).............test-expr.pn..
62ca0 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64 ...........pn.(make-js2-cond-nod
62cc0 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.:pos.pos......................
62ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d ..............:len.(-.(js2-node-
62d00 65 6e 64 20 69 66 2d 66 61 6c 73 65 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 end.if-false).pos)..............
62d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 65 78 70 72 ......................:test-expr
62d40 20 74 65 73 74 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .test-expr......................
62d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 75 65 2d 65 78 70 72 20 69 66 2d 74 72 75 65 ..............:true-expr.if-true
62d80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62da0 20 20 20 20 3a 66 61 6c 73 65 2d 65 78 70 72 20 69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 ....:false-expr.if-false........
62dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 71 2d 70 ............................:q-p
62de0 6f 73 20 71 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 os.q-pos........................
62e00 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 2d 70 6f 73 20 63 2d 70 6f 73 29 29 0a 20 20 20 20 20 ............:c-pos.c-pos))......
62e20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 74 65 73 74 2d .(js2-node-add-children.pn.test-
62e40 65 78 70 72 20 69 66 2d 74 72 75 65 20 69 66 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 70 6e 29 29 expr.if-true.if-false)).....pn))
62e60 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 28 74 79 70 65 20 6c ..(defun.js2-make-binary.(type.l
62e80 65 66 74 20 70 61 72 73 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 2d 67 65 74 29 0a 20 20 22 eft.parser.&optional.no-get)..."
62ea0 48 65 6c 70 65 72 20 66 6f 72 20 63 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 20 62 69 6e 61 72 79 Helper.for.constructing.a.binary
62ec0 2d 6f 70 65 72 61 74 6f 72 20 41 53 54 20 6e 6f 64 65 2e 0a 4c 45 46 54 20 69 73 20 74 68 65 20 -operator.AST.node..LEFT.is.the.
62ee0 6c 65 66 74 2d 73 69 64 65 2d 65 78 70 72 65 73 73 69 6f 6e 2c 20 61 6c 72 65 61 64 79 20 70 61 left-side-expression,.already.pa
62f00 72 73 65 64 2c 20 61 6e 64 20 74 68 65 0a 62 69 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 20 73 68 rsed,.and.the.binary.operator.sh
62f20 6f 75 6c 64 20 68 61 76 65 20 6a 75 73 74 20 62 65 65 6e 20 6d 61 74 63 68 65 64 2e 0a 50 41 52 ould.have.just.been.matched..PAR
62f40 53 45 52 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 74 6f 20 70 61 72 SER.is.a.function.to.call.to.par
62f60 73 65 20 74 68 65 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 2c 0a 6f 72 20 61 20 60 6a 73 32 2d se.the.right.operand,.or.a.`js2-
62f80 6e 6f 64 65 27 20 73 74 72 75 63 74 20 69 66 20 69 74 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 node'.struct.if.it.has.already.b
62fa0 65 65 6e 20 70 61 72 73 65 64 2e 0a 46 49 58 4d 45 3a 20 54 68 65 20 6c 61 74 74 65 72 20 6f 70 een.parsed..FIXME:.The.latter.op
62fc0 74 69 6f 6e 20 69 73 20 75 6e 75 73 65 64 3f 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 tion.is.unused?"...(let*.((pos.(
62fe0 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70 js2-node-pos.left))..........(op
63000 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 -pos.(-.(js2-current-token-beg).
63020 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 69 66 20 28 6a 73 32 2d 6e pos))..........(right.(if.(js2-n
63040 6f 64 65 2d 70 20 70 61 72 73 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode-p.parser)...................
63060 20 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 ..parser...................(unle
63080 73 73 20 6e 6f 2d 67 65 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 ss.no-get.(js2-get-token))......
630a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 61 72 73 65 72 29 29 29 0a .............(funcall.parser))).
630c0 20 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 .........(pn.(make-js2-infix-nod
630e0 65 20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.:type.type....................
63100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 ...............:pos.pos.........
63120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 ..........................:len.(
63140 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 72 69 67 68 74 29 20 70 6f 73 29 0a 20 20 20 20 -.(js2-node-end.right).pos).....
63160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f ..............................:o
63180 70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p-pos.op-pos....................
631a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 6c 65 66 74 0a 20 20 20 20 20 20 ...............:left.left.......
631c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 ............................:rig
631e0 68 74 20 72 69 67 68 74 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 ht.right))).....(js2-node-add-ch
63200 69 6c 64 72 65 6e 20 70 6e 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 20 20 20 70 6e 29 29 0a 0a ildren.pn.left.right).....pn))..
63220 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6f 72 2d 65 78 70 72 20 28 29 0a 20 20 28 6c (defun.js2-parse-or-expr.()...(l
63240 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 6e 64 2d 65 78 70 72 29 29 29 0a 20 et.((pn.(js2-parse-and-expr)))..
63260 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4f 52 ...(when.(js2-match-token.js2-OR
63280 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 ).......(setq.pn.(js2-make-binar
632a0 79 20 6a 73 32 2d 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.js2-OR........................
632c0 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........pn.....................
632e0 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70 61 72 73 65 2d 6f 72 2d 65 78 70 72 29 29 ............'js2-parse-or-expr))
63300 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 6e 64 ).....pn))..(defun.js2-parse-and
63320 2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d -expr.()...(let.((pn.(js2-parse-
63340 62 69 74 2d 6f 72 2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 bit-or-expr))).....(when.(js2-ma
63360 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 41 4e 44 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 tch-token.js2-AND).......(setq.p
63380 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32 2d 41 4e 44 0a 20 20 20 20 20 n.(js2-make-binary.js2-AND......
633a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 ...........................pn...
633c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a ..............................'j
633e0 73 32 2d 70 61 72 73 65 2d 61 6e 64 2d 65 78 70 72 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 s2-parse-and-expr))).....pn))..(
63400 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 62 69 74 2d 6f 72 2d 65 78 70 72 20 28 29 0a 20 defun.js2-parse-bit-or-expr.()..
63420 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 62 69 74 2d 78 6f 72 2d 65 78 .(let.((pn.(js2-parse-bit-xor-ex
63440 70 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 pr))).....(while.(js2-match-toke
63460 6e 20 6a 73 32 2d 42 49 54 4f 52 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 n.js2-BITOR).......(setq.pn.(js2
63480 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32 2d 42 49 54 4f 52 0a 20 20 20 20 20 20 20 20 20 -make-binary.js2-BITOR..........
634a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20 .......................pn.......
634c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70 ..........................'js2-p
634e0 61 72 73 65 2d 62 69 74 2d 78 6f 72 2d 65 78 70 72 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 arse-bit-xor-expr))).....pn))..(
63500 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 62 69 74 2d 78 6f 72 2d 65 78 70 72 20 28 29 0a defun.js2-parse-bit-xor-expr.().
63520 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 62 69 74 2d 61 6e 64 2d 65 ..(let.((pn.(js2-parse-bit-and-e
63540 78 70 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b xpr))).....(while.(js2-match-tok
63560 65 6e 20 6a 73 32 2d 42 49 54 58 4f 52 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a en.js2-BITXOR).......(setq.pn.(j
63580 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32 2d 42 49 54 58 4f 52 0a 20 20 20 20 20 20 s2-make-binary.js2-BITXOR.......
635a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 ..........................pn....
635c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 .............................'js
635e0 32 2d 70 61 72 73 65 2d 62 69 74 2d 61 6e 64 2d 65 78 70 72 29 29 29 0a 20 20 20 20 70 6e 29 29 2-parse-bit-and-expr))).....pn))
63600 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 62 69 74 2d 61 6e 64 2d 65 78 70 72 20 ..(defun.js2-parse-bit-and-expr.
63620 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 65 78 70 ()...(let.((pn.(js2-parse-eq-exp
63640 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e r))).....(while.(js2-match-token
63660 20 6a 73 32 2d 42 49 54 41 4e 44 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 .js2-BITAND).......(setq.pn.(js2
63680 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32 2d 42 49 54 41 4e 44 0a 20 20 20 20 20 20 20 20 -make-binary.js2-BITAND.........
636a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 ........................pn......
636c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d ...........................'js2-
636e0 70 61 72 73 65 2d 65 71 2d 65 78 70 72 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 0a 28 64 65 66 parse-eq-expr))).....pn))...(def
63700 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6e 75 6c 6c 69 73 68 2d 63 6f 61 6c 65 73 63 69 6e 67 2d un.js2-parse-nullish-coalescing-
63720 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f expr.()...(let.((pn.(js2-parse-o
63740 72 2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 r-expr))).....(when.(js2-match-t
63760 6f 6b 65 6e 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2d 43 4f 41 4c 45 53 43 49 4e 47 29 0a 20 20 20 oken.js2-NULLISH-COALESCING)....
63780 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32 ...(setq.pn.(js2-make-binary.js2
637a0 2d 4e 55 4c 4c 49 53 48 2d 43 4f 41 4c 45 53 43 49 4e 47 0a 20 20 20 20 20 20 20 20 20 20 20 20 -NULLISH-COALESCING.............
637c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20 20 20 20 ....................pn..........
637e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70 61 72 73 .......................'js2-pars
63800 65 2d 6e 75 6c 6c 69 73 68 2d 63 6f 61 6c 65 73 63 69 6e 67 2d 65 78 70 72 29 29 29 0a 20 20 20 e-nullish-coalescing-expr)))....
63820 20 70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 6f 70 .pn))..(defconst.js2-parse-eq-op
63840 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 45 51 20 6a 73 32 2d 4e 45 20 6a 73 32 2d 53 48 45 51 s...(list.js2-EQ.js2-NE.js2-SHEQ
63860 20 6a 73 32 2d 53 48 4e 45 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 71 .js2-SHNE))..(defun.js2-parse-eq
63880 2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d -expr.()...(let.((pn.(js2-parse-
638a0 72 65 6c 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 74 74 29 0a 20 20 20 20 28 77 68 69 6c rel-expr)).........tt).....(whil
638c0 65 20 28 6d 65 6d 71 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 e.(memq.(setq.tt.(js2-get-token)
638e0 29 20 6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 6f 70 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 ).js2-parse-eq-ops).......(setq.
63900 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 74 74 0a 20 20 20 20 20 20 20 20 20 pn.(js2-make-binary.tt..........
63920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20 .......................pn.......
63940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70 ..........................'js2-p
63960 61 72 73 65 2d 72 65 6c 2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d arse-rel-expr))).....(js2-unget-
63980 74 6f 6b 65 6e 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 token).....pn))..(defconst.js2-p
639a0 61 72 73 65 2d 72 65 6c 2d 6f 70 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 49 4e 20 6a 73 32 2d arse-rel-ops...(list.js2-IN.js2-
639c0 49 4e 53 54 41 4e 43 45 4f 46 20 6a 73 32 2d 4c 45 20 6a 73 32 2d 4c 54 20 6a 73 32 2d 47 45 20 INSTANCEOF.js2-LE.js2-LT.js2-GE.
639e0 6a 73 32 2d 47 54 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 72 65 6c 2d 65 js2-GT))..(defun.js2-parse-rel-e
63a00 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 68 xpr.()...(let.((pn.(js2-parse-sh
63a20 69 66 74 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a ift-expr)).........(continue.t).
63a40 20 20 20 20 20 20 20 20 74 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a ........tt).....(while.continue.
63a60 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a ......(setq.tt.(js2-get-token)).
63a80 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 6a 73 32 2d 69 6e 2d ......(cond........((and.js2-in-
63aa0 66 6f 72 2d 69 6e 69 74 20 28 3d 20 74 74 20 6a 73 32 2d 49 4e 29 29 0a 20 20 20 20 20 20 20 20 for-init.(=.tt.js2-IN)).........
63ac0 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 (js2-unget-token).........(setq.
63ae0 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 74 74 20 continue.nil))........((memq.tt.
63b00 6a 73 32 2d 70 61 72 73 65 2d 72 65 6c 2d 6f 70 73 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 js2-parse-rel-ops).........(setq
63b20 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d .pn.(js2-make-binary.tt.pn.'js2-
63b40 70 61 72 73 65 2d 73 68 69 66 74 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 parse-shift-expr)))........(t...
63b60 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 ......(js2-unget-token).........
63b80 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 70 6e 29 29 0a (setq.continue.nil)))).....pn)).
63ba0 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 73 65 2d 73 68 69 66 74 2d 6f 70 73 0a 20 .(defconst.js2-parse-shift-ops..
63bc0 20 28 6c 69 73 74 20 6a 73 32 2d 4c 53 48 20 6a 73 32 2d 55 52 53 48 20 6a 73 32 2d 52 53 48 29 .(list.js2-LSH.js2-URSH.js2-RSH)
63be0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 73 68 69 66 74 2d 65 78 70 72 20 28 )..(defun.js2-parse-shift-expr.(
63c00 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 64 64 2d 65 78 70 )...(let.((pn.(js2-parse-add-exp
63c20 72 29 29 0a 20 20 20 20 20 20 20 20 74 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 r)).........tt.........(continue
63c40 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 .t)).....(while.continue.......(
63c60 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 setq.tt.(js2-get-token)).......(
63c80 69 66 20 28 6d 65 6d 71 20 74 74 20 6a 73 32 2d 70 61 72 73 65 2d 73 68 69 66 74 2d 6f 70 73 29 if.(memq.tt.js2-parse-shift-ops)
63ca0 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 ...........(setq.pn.(js2-make-bi
63cc0 6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d 70 61 72 73 65 2d 61 64 64 2d 65 78 70 72 29 29 nary.tt.pn.'js2-parse-add-expr))
63ce0 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 .........(js2-unget-token)......
63d00 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 70 6e 29 ...(setq.continue.nil))).....pn)
63d20 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 64 64 2d 65 78 70 72 20 28 29 0a )..(defun.js2-parse-add-expr.().
63d40 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 65 78 70 72 29 ..(let.((pn.(js2-parse-mul-expr)
63d60 29 0a 20 20 20 20 20 20 20 20 74 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 ).........tt.........(continue.t
63d80 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65 )).....(while.continue.......(se
63da0 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 69 66 tq.tt.(js2-get-token)).......(if
63dc0 20 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 41 44 44 29 20 28 3d 20 74 74 20 6a 73 32 2d 53 55 .(or.(=.tt.js2-ADD).(=.tt.js2-SU
63de0 42 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 B))...........(setq.pn.(js2-make
63e00 2d 62 69 6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 65 78 70 -binary.tt.pn.'js2-parse-mul-exp
63e20 72 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 r)).........(js2-unget-token)...
63e40 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 ......(setq.continue.nil))).....
63e60 70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 6f 70 pn))..(defconst.js2-parse-mul-op
63e80 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 4d 55 4c 20 6a 73 32 2d 44 49 56 20 6a 73 32 2d 4d 4f s...(list.js2-MUL.js2-DIV.js2-MO
63ea0 44 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 65 78 70 72 20 28 D))..(defun.js2-parse-mul-expr.(
63ec0 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 6e 2d 65 )...(let.((pn.(js2-parse-expon-e
63ee0 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 74 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e xpr)).........tt.........(contin
63f00 75 65 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 ue.t)).....(while.continue......
63f20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 .(setq.tt.(js2-get-token))......
63f40 20 28 69 66 20 28 6d 65 6d 71 20 74 74 20 6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 6f 70 73 29 .(if.(memq.tt.js2-parse-mul-ops)
63f60 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 ...........(setq.pn.(js2-make-bi
63f80 6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 6e 2d 65 78 70 72 nary.tt.pn.'js2-parse-expon-expr
63fa0 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 )).........(js2-unget-token)....
63fc0 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 70 .....(setq.continue.nil))).....p
63fe0 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 6e 2d 65 78 70 72 n))..(defun.js2-parse-expon-expr
64000 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72 79 .()...(let.((pn.(js2-parse-unary
64020 2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 -expr))).....(when.(>=.js2-langu
64040 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6a age-version.200).......(while.(j
64060 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 45 58 50 4f 4e 29 0a 20 20 20 20 20 20 s2-match-token.js2-EXPON).......
64080 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 70 20 70 ..(when.(and.(js2-unary-node-p.p
640a0 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 n)....................(not.(memq
640c0 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 70 6e 29 20 27 28 6a 73 32 2d 49 4e 43 20 6a 73 .(js2-node-type.pn).'(js2-INC.js
640e0 32 2d 44 45 43 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 2-DEC))))...........(js2-report-
64100 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 error."msg.syntax".nil..........
64120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 ...................(js2-node-abs
64140 2d 70 6f 73 20 70 6e 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 29 29 0a 20 20 20 -pos.pn).(js2-node-len.pn)))....
64160 20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 69 74 20 72 69 67 68 74 2d 61 73 73 6f 63 69 61 74 69 76 .....;;.Make.it.right-associativ
64180 65 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 e..........(setq.pn.(js2-make-bi
641a0 6e 61 72 79 20 6a 73 32 2d 45 58 50 4f 4e 20 70 6e 20 27 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 nary.js2-EXPON.pn.'js2-parse-exp
641c0 6f 6e 2d 65 78 70 72 29 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 on-expr)))).....pn))..(defun.js2
641e0 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 28 62 65 67 20 74 79 70 65 20 70 61 72 73 65 72 20 26 72 65 -make-unary.(beg.type.parser.&re
64200 73 74 20 61 72 67 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 75 6e 61 72 79 20 6e 6f 64 65 20 73 74 st.args)..."Make.a.unary.node.st
64220 61 72 74 69 6e 67 20 61 74 20 42 45 47 20 6f 66 20 74 79 70 65 20 54 59 50 45 2e 0a 49 66 20 42 arting.at.BEG.of.type.TYPE..If.B
64240 45 47 20 69 73 20 6e 69 6c 2c 20 60 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 EG.is.nil,.`(js2-current-token-b
64260 65 67 29 27 20 69 73 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 6e 6f 64 65 0a 73 74 61 72 74 20 eg)'.is.used.for.the.node.start.
64280 70 6f 73 69 74 69 6f 6e 2e 20 20 50 41 52 53 45 52 20 69 73 20 65 69 74 68 65 72 20 61 20 6e 6f position...PARSER.is.either.a.no
642a0 64 65 20 28 66 6f 72 20 70 6f 73 74 66 69 78 20 6f 70 65 72 61 74 6f 72 73 29 0a 6f 72 20 61 20 de.(for.postfix.operators).or.a.
642c0 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 74 6f 20 70 61 72 73 65 20 74 68 65 20 6f 70 function.to.call.to.parse.the.op
642e0 65 72 61 6e 64 20 28 66 6f 72 20 70 72 65 66 69 78 0a 6f 70 65 72 61 74 6f 72 73 29 2e 22 0a 20 erand.(for.prefix.operators)."..
64300 20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6f 72 20 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e .(let*.((pos.(or.beg.(js2-curren
64320 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 74 66 69 78 t-token-beg)))..........(postfix
64340 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 20 70 61 72 73 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 .(js2-node-p.parser))..........(
64360 65 78 70 72 20 28 69 66 20 70 6f 73 74 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 expr.(if.postfix................
64380 20 20 20 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 ....parser..................(app
643a0 6c 79 20 70 61 72 73 65 72 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ly.parser.args)))..........end..
643c0 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 28 69 66 20 70 6f 73 74 66 69 78 20 20 3b 20 65 ........pn).....(if.postfix..;.e
643e0 2e 67 2e 20 69 2b 2b 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e .g..i++.........(setq.pos.(js2-n
64400 6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 ode-pos.expr)...............end.
64420 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 28 (js2-current-token-end)).......(
64440 73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 78 70 72 29 29 29 0a 20 setq.end.(js2-node-end.expr)))..
64460 20 20 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 ...(setq.pn.(make-js2-unary-node
64480 20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:type.type.....................
644a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 ..............:pos.pos..........
644c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d .........................:len.(-
644e0 20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .end.pos).......................
64500 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 65 72 61 6e 64 20 65 78 70 72 29 29 0a 20 20 20 20 ............:operand.expr)).....
64520 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72 29 0a (js2-node-add-children.pn.expr).
64540 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 69 6e 63 72 65 6d 65 6e ....pn))..(defconst.js2-incremen
64560 74 61 62 6c 65 2d 6e 6f 64 65 2d 74 79 70 65 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 4e 41 4d table-node-types...(list.js2-NAM
64580 45 20 6a 73 32 2d 47 45 54 50 52 4f 50 20 6a 73 32 2d 47 45 54 45 4c 45 4d 20 6a 73 32 2d 47 45 E.js2-GETPROP.js2-GETELEM.js2-GE
645a0 54 5f 52 45 46 20 6a 73 32 2d 43 41 4c 4c 29 0a 20 20 22 4e 6f 64 65 20 74 79 70 65 73 20 74 68 T_REF.js2-CALL)..."Node.types.th
645c0 61 74 20 63 61 6e 20 62 65 20 74 68 65 20 6f 70 65 72 61 6e 64 20 6f 66 20 61 20 2b 2b 20 6f 72 at.can.be.the.operand.of.a.++.or
645e0 20 2d 2d 20 6f 70 65 72 61 74 6f 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 68 65 63 .--.operator.")..(defun.js2-chec
64600 6b 2d 62 61 64 2d 69 6e 63 2d 64 65 63 20 28 74 74 20 62 65 67 20 65 6e 64 20 75 6e 61 72 79 29 k-bad-inc-dec.(tt.beg.end.unary)
64620 0a 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 ...(unless.(memq.(js2-node-type.
64640 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 75 6e 61 72 79 29 29 0a (js2-unary-node-operand.unary)).
64660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 6e 63 72 65 6d 65 6e 74 61 62 6c ................js2-incrementabl
64680 65 2d 6e 6f 64 65 2d 74 79 70 65 73 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 e-node-types).....(js2-report-er
646a0 72 6f 72 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 49 4e 43 29 0a 20 20 20 20 20 20 20 20 20 ror.(if.(=.tt.js2-INC)..........
646c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 73 67 2e 62 61 64 2e 69 6e 63 72 22 0a ................."msg.bad.incr".
646e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 73 67 2e 62 61 64 ........................"msg.bad
64700 2e 64 65 63 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 .decr").......................ni
64720 6c 20 62 65 67 20 28 2d 20 65 6e 64 20 62 65 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 l.beg.(-.end.beg))))..(defun.js2
64740 2d 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 74 74 -parse-unary-expr.()...(let.((tt
64760 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a 20 20 20 20 20 .(js2-current-token-type))......
64780 20 20 20 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 ...(beg.(js2-current-token-beg))
647a0 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d ).....(cond......((or.(=.tt.js2-
647c0 56 4f 49 44 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 4e 4f 54 29 0a 20 VOID)...........(=.tt.js2-NOT)..
647e0 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 42 49 54 4e 4f 54 29 0a 20 20 20 20 20 .........(=.tt.js2-BITNOT)......
64800 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 54 59 50 45 4f 46 29 29 0a 20 20 20 20 20 20 28 6a .....(=.tt.js2-TYPEOF)).......(j
64820 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e s2-get-token).......(js2-make-un
64840 61 72 79 20 62 65 67 20 74 74 20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72 ary.beg.tt.'js2-parse-unary-expr
64860 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 41 44 44 29 0a 20 20 20 20 20 20 28 6a ))......((=.tt.js2-ADD).......(j
64880 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 74 s2-get-token).......;;.Convert.t
648a0 6f 20 73 70 65 63 69 61 6c 20 50 4f 53 20 74 6f 6b 65 6e 20 69 6e 20 64 65 63 6f 6d 70 69 6c 65 o.special.POS.token.in.decompile
648c0 72 20 61 6e 64 20 70 61 72 73 65 20 74 72 65 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 6b 65 r.and.parse.tree.......(js2-make
648e0 2d 75 6e 61 72 79 20 62 65 67 20 6a 73 32 2d 50 4f 53 20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e -unary.beg.js2-POS.'js2-parse-un
64900 61 72 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 55 42 29 0a ary-expr))......((=.tt.js2-SUB).
64920 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 43 ......(js2-get-token).......;;.C
64940 6f 6e 76 65 72 74 20 74 6f 20 73 70 65 63 69 61 6c 20 4e 45 47 20 74 6f 6b 65 6e 20 69 6e 20 64 onvert.to.special.NEG.token.in.d
64960 65 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 70 61 72 73 65 20 74 72 65 65 0a 20 20 20 20 20 20 28 ecompiler.and.parse.tree.......(
64980 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 62 65 67 20 6a 73 32 2d 4e 45 47 20 27 6a 73 32 2d js2-make-unary.beg.js2-NEG.'js2-
649a0 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 parse-unary-expr))......((or.(=.
649c0 74 74 20 6a 73 32 2d 49 4e 43 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d tt.js2-INC)...........(=.tt.js2-
649e0 44 45 43 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 DEC)).......(js2-get-token).....
64a00 20 20 28 6c 65 74 20 28 28 62 65 67 32 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e ..(let.((beg2.(js2-current-token
64a20 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 -beg)).............(end.(js2-cur
64a40 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 rent-token-end)).............(ex
64a60 70 72 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 62 65 67 20 74 74 20 27 6a 73 32 2d 70 pr.(js2-make-unary.beg.tt.'js2-p
64a80 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a arse-member-expr.t))).........(j
64aa0 73 32 2d 63 68 65 63 6b 2d 62 61 64 2d 69 6e 63 2d 64 65 63 20 74 74 20 62 65 67 32 20 65 6e 64 s2-check-bad-inc-dec.tt.beg2.end
64ac0 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 65 78 70 72 29 29 0a 20 20 20 20 20 28 28 3d 20 74 .expr).........expr))......((=.t
64ae0 74 20 6a 73 32 2d 44 45 4c 50 52 4f 50 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f t.js2-DELPROP).......(js2-get-to
64b00 6b 65 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 62 65 67 20 6a ken).......(js2-make-unary.beg.j
64b20 73 32 2d 44 45 4c 50 52 4f 50 20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72 s2-DELPROP.'js2-parse-unary-expr
64b40 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 70 61 72 73 65 2d 61 77 61 69 74 2d 6d 61 79 62 65 20 ))......((js2-parse-await-maybe.
64b60 74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20 tt))......((=.tt.js2-ERROR).....
64b80 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 ..(js2-get-token).......(make-js
64ba0 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 20 20 3b 20 74 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75 2-error-node))..;.try.to.continu
64bc0 65 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 4c 54 29 0a 20 20 20 20 20 e......((and.(=.tt.js2-LT)......
64be0 20 20 20 20 20 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65 ......js2-compiler-xml-available
64c00 29 0a 20 20 20 20 20 20 3b 3b 20 58 4d 4c 20 73 74 72 65 61 6d 20 65 6e 63 6f 75 6e 74 65 72 65 ).......;;.XML.stream.encountere
64c20 64 20 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 d.in.expression........(js2-pars
64c40 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 74 61 69 6c 20 74 20 28 6a 73 32 2d 70 61 72 73 65 2d e-member-expr-tail.t.(js2-parse-
64c60 78 6d 6c 2d 69 6e 69 74 69 61 6c 69 7a 65 72 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 xml-initializer)))......(t......
64c80 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 .(let.((pn.(js2-parse-member-exp
64ca0 72 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 6c 6f 6f 6b 20 r.t)).............;;.Don't.look.
64cc0 61 63 72 6f 73 73 20 61 20 6e 65 77 6c 69 6e 65 20 62 6f 75 6e 64 61 72 79 20 66 6f 72 20 61 20 across.a.newline.boundary.for.a.
64ce0 70 6f 73 74 66 69 78 20 69 6e 63 6f 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 74 20 28 postfix.incop..............(tt.(
64d00 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 js2-peek-token-or-eol)).........
64d20 20 20 20 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 3d 20 74 ....expr).........(when.(or.(=.t
64d40 74 20 6a 73 32 2d 49 4e 43 29 20 28 3d 20 74 74 20 6a 73 32 2d 44 45 43 29 29 0a 20 20 20 20 20 t.js2-INC).(=.tt.js2-DEC))......
64d60 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 .....(js2-get-token)...........(
64d80 73 65 74 66 20 65 78 70 72 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 setf.expr.pn.................pn.
64da0 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 65 78 (js2-make-unary.(js2-node-pos.ex
64dc0 70 72 29 20 74 74 20 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 pr).tt.expr))...........(js2-nod
64de0 65 2d 73 65 74 2d 70 72 6f 70 20 70 6e 20 27 70 6f 73 74 66 69 78 20 74 29 0a 20 20 20 20 20 20 e-set-prop.pn.'postfix.t).......
64e00 20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 62 61 64 2d 69 6e 63 2d 64 65 63 20 74 74 20 28 6a ....(js2-check-bad-inc-dec.tt.(j
64e20 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72 72 65 s2-current-token-beg).(js2-curre
64e40 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 70 6e 29 29 29 nt-token-end).pn)).........pn)))
64e60 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 78 6d 6c 2d 69 6e 69 74 69 61 6c ))..(defun.js2-parse-xml-initial
64e80 69 7a 65 72 20 28 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 45 34 58 20 58 4d 4c 20 69 6e 69 74 izer.()..."Parse.an.E4X.XML.init
64ea0 69 61 6c 69 7a 65 72 2e 0a 49 27 6d 20 70 61 72 73 69 6e 67 20 69 74 20 74 68 65 20 77 61 79 20 ializer..I'm.parsing.it.the.way.
64ec0 52 68 69 6e 6f 20 70 61 72 73 65 73 20 69 74 2c 20 62 75 74 20 77 69 74 68 6f 75 74 20 74 68 65 Rhino.parses.it,.but.without.the
64ee0 20 74 72 65 65 2d 72 65 77 72 69 74 69 6e 67 2e 0a 54 68 65 6e 20 49 27 6c 6c 20 70 6f 73 74 70 .tree-rewriting..Then.I'll.postp
64f00 72 6f 63 65 73 73 20 74 68 65 20 72 65 73 75 6c 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 rocess.the.result,.depending.on.
64f20 77 68 65 74 68 65 72 20 77 65 27 72 65 20 69 6e 20 49 44 45 0a 6d 6f 64 65 20 6f 72 20 63 6f 64 whether.we're.in.IDE.mode.or.cod
64f40 65 67 65 6e 20 6d 6f 64 65 2c 20 61 6e 64 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 61 70 70 72 egen.mode,.and.generate.the.appr
64f60 6f 70 72 69 61 74 65 20 72 65 77 72 69 74 74 65 6e 20 41 53 54 2e 0a 49 44 45 20 6d 6f 64 65 20 opriate.rewritten.AST..IDE.mode.
64f80 75 73 65 73 20 61 20 72 69 63 68 20 41 53 54 20 74 68 61 74 20 6d 6f 64 65 6c 73 20 74 68 65 20 uses.a.rich.AST.that.models.the.
64fa0 58 4d 4c 20 73 74 72 75 63 74 75 72 65 2e 20 20 43 6f 64 65 67 65 6e 20 6d 6f 64 65 0a 6a 75 73 XML.structure...Codegen.mode.jus
64fc0 74 20 63 6f 6e 63 61 74 65 6e 61 74 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 61 6e 64 20 6d 61 t.concatenates.everything.and.ma
64fe0 6b 65 73 20 61 20 6e 65 77 20 58 4d 4c 20 6f 72 20 58 4d 4c 4c 69 73 74 20 6f 75 74 20 6f 66 20 kes.a.new.XML.or.XMLList.out.of.
65000 69 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 66 69 72 73 74 2d it."...(let.((tt.(js2-get-first-
65020 78 6d 6c 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 70 6e 2d 78 6d 6c 20 70 6e 20 65 78 xml-token)).........pn-xml.pn.ex
65040 70 72 20 6b 69 64 73 20 65 78 70 72 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e pr.kids.expr-pos.........(contin
65060 75 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 66 69 72 73 74 2d 74 6f 6b 65 6e 20 74 29 29 0a 20 ue.t).........(first-token.t))..
65080 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 29 ...(when.(not.(or.(=.tt.js2-XML)
650a0 20 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 45 4e 44 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d .(=.tt.js2-XMLEND))).......(js2-
650c0 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 29 0a 20 20 20 20 report-error."msg.syntax")).....
650e0 28 73 65 74 71 20 70 6e 2d 78 6d 6c 20 28 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 (setq.pn-xml.(make-js2-xml-node)
65100 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 69 66 20 ).....(while.continue.......(if.
65120 66 69 72 73 74 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 72 73 first-token...........(setq.firs
65140 74 2d 74 6f 6b 65 6e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a t-token.nil).........(setq.tt.(j
65160 73 32 2d 67 65 74 2d 6e 65 78 74 2d 78 6d 6c 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 28 s2-get-next-xml-token))).......(
65180 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 6a 73 32 2d 58 4d 4c 20 6d 65 61 6e 73 20 77 65 20 cond........;;.js2-XML.means.we.
651a0 66 6f 75 6e 64 20 61 20 7b 65 78 70 72 7d 20 69 6e 20 74 68 65 20 58 4d 4c 20 73 74 72 65 61 6d found.a.{expr}.in.the.XML.stream
651c0 2e 0a 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 74 6f 6b 65 6e 20 73 74 72 69 6e 67 20 69 73 20 .........;;.The.token.string.is.
651e0 74 68 65 20 58 4d 4c 20 75 70 20 74 6f 20 74 68 65 20 6c 65 66 74 2d 63 75 72 6c 79 2e 0a 20 20 the.XML.up.to.the.left-curly....
65200 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 20 28 70 75 .....((=.tt.js2-XML).........(pu
65220 73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 70 6f 73 20 28 6a sh.(make-js2-string-node.:pos.(j
65240 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 s2-current-token-beg)...........
65260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 ..........................:len.(
65280 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b -.js2-ts-cursor.(js2-current-tok
652a0 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 29 0a 20 20 en-beg)))...............kids)...
652c0 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 43 20 22 6d 73 ......(js2-must-match.js2-LC."ms
652e0 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 72 2d 70 6f g.syntax").........(setq.expr-po
65300 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 s.js2-ts-cursor...............ex
65320 70 72 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d pr.(if.(eq.(js2-peek-token).js2-
65340 52 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 RC)........................(make
65360 2d 6a 73 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 3a 70 6f 73 20 65 78 70 72 2d 70 -js2-empty-expr-node.:pos.expr-p
65380 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 os)......................(js2-pa
653a0 72 73 65 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 rse-expr))).........(js2-must-ma
653c0 74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 tch.js2-RC."msg.syntax")........
653e0 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d .(setq.pn.(make-js2-xml-js-expr-
65400 6e 6f 64 65 20 3a 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20 node.:pos.(js2-node-pos.expr)...
65420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
65440 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 65 78 70 ..........:len.(js2-node-len.exp
65460 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r)..............................
65480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 65 78 70 72 29 29 0a 20 20 20 20 ...............:expr.expr)).....
654a0 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 ....(js2-node-add-children.pn.ex
654c0 70 72 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 6e 20 6b 69 64 73 29 29 0a 20 20 20 20 pr).........(push.pn.kids)).....
654e0 20 20 20 3b 3b 20 61 20 6a 73 32 2d 58 4d 4c 45 4e 44 20 74 6f 6b 65 6e 20 6d 65 61 6e 73 20 77 ...;;.a.js2-XMLEND.token.means.w
65500 65 20 68 69 74 20 74 68 65 20 66 69 6e 61 6c 20 63 6c 6f 73 65 2d 74 61 67 2e 0a 20 20 20 20 20 e.hit.the.final.close-tag.......
65520 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 45 4e 44 29 0a 20 20 20 20 20 20 20 20 28 70 75 ..((=.tt.js2-XMLEND).........(pu
65540 73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 70 6f 73 20 28 6a sh.(make-js2-string-node.:pos.(j
65560 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 s2-current-token-beg)...........
65580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 ..........................:len.(
655a0 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b -.js2-ts-cursor.(js2-current-tok
655c0 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 29 0a 20 20 en-beg)))...............kids)...
655e0 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6e 72 65 76 65 72 73 65 20 6b 69 64 ......(dolist.(kid.(nreverse.kid
65600 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 s))...........(js2-block-node-pu
65620 73 68 20 70 6e 2d 78 6d 6c 20 6b 69 64 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a sh.pn-xml.kid)).........(setf.(j
65640 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 2d 78 6d 6c 29 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 s2-node-len.pn-xml).(-.js2-ts-cu
65660 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsor............................
65680 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 2d 78 6d 6c ............(js2-node-pos.pn-xml
656a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a ))...............continue.nil)).
656c0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 .......(t.........(js2-report-er
656e0 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 ror."msg.syntax").........(setq.
65700 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 70 6e 2d 78 6d 6c 29 29 0a 0a 0a continue.nil)))).....pn-xml))...
65720 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 2d 6c 69 73 74 20 28 (defun.js2-parse-argument-list.(
65740 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 61 6e 64 20 )..."Parse.an.argument.list.and.
65760 72 65 74 75 72 6e 20 69 74 20 61 73 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 return.it.as.a.Lisp.list.of.node
65780 73 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 6c 69 73 74 20 69 6e 20 72 65 76 65 72 73 65 20 6f s..Returns.the.list.in.reverse.o
657a0 72 64 65 72 2e 20 20 43 6f 6e 73 75 6d 65 73 20 74 68 65 20 72 69 67 68 74 2d 70 61 72 65 6e 20 rder...Consumes.the.right-paren.
657c0 74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 28 75 6e 6c token."...(let.(result).....(unl
657e0 65 73 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 52 50 29 0a 20 20 20 ess.(js2-match-token.js2-RP)....
65800 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ...(cl-loop.do................(l
65820 65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 et.((tt.(js2-get-token))........
65840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d ..............(beg.(js2-current-
65860 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 token-beg)))..................(i
65880 66 20 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 29 0a 20 20 20 20 f.(and.(=.tt.js2-TRIPLEDOT).....
658a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 ......................(>=.js2-la
658c0 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 nguage-version.200))............
658e0 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 ..........(push.(js2-make-unary.
65900 62 65 67 20 74 74 20 27 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 20 72 beg.tt.'js2-parse-assign-expr).r
65920 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 esult)....................(js2-u
65940 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 nget-token)....................(
65960 70 75 73 68 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 20 72 65 73 push.(js2-parse-assign-expr).res
65980 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 0a 20 20 20 20 ult)))................while.....
659a0 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e ...........(and.(js2-match-token
659c0 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .js2-COMMA).....................
659e0 28 6f 72 20 28 3c 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 (or.(<.js2-language-version.200)
65a00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 3d .........................(not.(=
65a20 20 6a 73 32 2d 52 50 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 29 29 29 29 0a 20 20 .js2-RP.(js2-peek-token))))))...
65a40 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e ....(js2-must-match.js2-RP."msg.
65a60 6e 6f 2e 70 61 72 65 6e 2e 61 72 67 22 29 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a no.paren.arg").......result)))..
65a80 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 20 28 26 6f (defun.js2-parse-member-expr.(&o
65aa0 70 74 69 6f 6e 61 6c 20 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 29 0a 20 20 28 6c 65 ptional.allow-call-syntax)...(le
65ac0 74 20 28 28 74 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 t.((tt.(js2-current-token-type))
65ae0 0a 20 20 20 20 20 20 20 20 70 6e 20 70 6f 73 20 74 61 72 67 65 74 20 61 72 67 73 20 62 65 67 20 .........pn.pos.target.args.beg.
65b00 65 6e 64 20 69 6e 69 74 29 0a 20 20 20 20 28 69 66 20 28 2f 3d 20 74 74 20 6a 73 32 2d 4e 45 57 end.init).....(if.(/=.tt.js2-NEW
65b20 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 ).........(setq.pn.(js2-parse-pr
65b40 69 6d 61 72 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 imary-expr)).......(setq.pos.(js
65b60 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 2-current-token-beg)............
65b80 20 62 65 67 20 70 6f 73 29 0a 20 20 20 20 20 20 3b 3b 20 70 61 72 73 65 20 61 20 27 6e 65 77 27 .beg.pos).......;;.parse.a.'new'
65ba0 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e .expression.......(js2-get-token
65bc0 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 61 72 67 65 74 20 28 6a 73 32 2d 70 61 72 73 65 2d ).......(setq.target.(js2-parse-
65be0 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 member-expr).............end.(js
65c00 32 2d 6e 6f 64 65 2d 65 6e 64 20 74 61 72 67 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 2-node-end.target).............p
65c20 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 n.(make-js2-new-node.:pos.pos...
65c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
65c60 3a 74 61 72 67 65 74 20 74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :target.target..................
65c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 .................:len.(-.end.pos
65ca0 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 66 75 6e 63 74 69 6f ))).......(js2-highlight-functio
65cc0 6e 2d 63 61 6c 6c 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 n-call.(js2-current-token)).....
65ce0 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 74 61 72 67 ..(js2-node-add-children.pn.targ
65d00 65 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e et).......(when.(js2-match-token
65d20 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 74 68 65 20 61 72 67 75 .js2-LP).........;;.Add.the.argu
65d40 6d 65 6e 74 73 20 74 6f 20 70 6e 2c 20 69 66 20 61 6e 79 20 61 72 65 20 73 75 70 70 6c 69 65 64 ments.to.pn,.if.any.are.supplied
65d60 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 62 65 67 20 70 6f 73 20 20 3b 20 73 74 61 72 74 ..........(setf.beg.pos..;.start
65d80 20 6f 66 20 22 6e 65 77 22 20 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .of."new".keyword...............
65da0 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 pos.(js2-current-token-beg).....
65dc0 20 20 20 20 20 20 20 20 20 20 61 72 67 73 20 28 6e 72 65 76 65 72 73 65 20 28 6a 73 32 2d 70 61 ..........args.(nreverse.(js2-pa
65de0 72 73 65 2d 61 72 67 75 6d 65 6e 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rse-argument-list)).............
65e00 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 70 6e 29 20 61 72 67 73 0a 20 20 ..(js2-new-node-args.pn).args...
65e20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ............end.(js2-current-tok
65e40 65 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e en-end)...............(js2-new-n
65e60 6f 64 65 2d 6c 70 20 70 6e 29 20 28 2d 20 70 6f 73 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 ode-lp.pn).(-.pos.beg)..........
65e80 20 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 72 70 20 70 6e 29 20 28 2d 20 65 6e 64 .....(js2-new-node-rp.pn).(-.end
65ea0 20 31 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f .1.beg)).........(apply.#'js2-no
65ec0 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 de-add-children.pn.args)).......
65ee0 28 77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d 61 6c 6c 6f 77 2d 72 68 69 6e 6f 2d 6e 65 77 2d 65 (when.(and.js2-allow-rhino-new-e
65f00 78 70 72 2d 69 6e 69 74 69 61 6c 69 7a 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xpr-initializer.................
65f20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20 20 20 .(js2-match-token.js2-LC))......
65f40 20 20 20 28 73 65 74 66 20 69 6e 69 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d ...(setf.init.(js2-parse-object-
65f60 6c 69 74 65 72 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d literal)...............end.(js2-
65f80 6e 6f 64 65 2d 65 6e 64 20 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 node-end.init)...............(js
65fa0 32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 70 6e 29 20 69 6e 69 74 29 2-new-node-initializer.pn).init)
65fc0 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 .........(js2-node-add-children.
65fe0 70 6e 20 69 6e 69 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 pn.init)).........(setf.(js2-nod
66000 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 65 6e 64 20 62 65 67 29 29 29 20 20 3b 20 65 6e 64 20 6f e-len.pn).(-.end.beg)))..;.end.o
66020 75 74 65 72 20 69 66 0a 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 uter.if.....(js2-parse-member-ex
66040 70 72 2d 74 61 69 6c 20 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 20 70 6e 29 29 29 0a pr-tail.allow-call-syntax.pn))).
66060 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e .(defun.js2-parse-optional-chain
66080 69 6e 67 2d 6f 70 65 72 61 74 6f 72 20 28 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 20 ing-operator.(allow-call-syntax.
660a0 70 6e 29 0a 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 pn)...(let.((tt.(js2-peek-token)
660c0 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 74 74 20 6a 73 32 2d 4e 41 )).....(cond......((eq.tt.js2-NA
660e0 4d 45 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 ME).......(setq.pn.(js2-parse-pr
66100 6f 70 65 72 74 79 2d 61 63 63 65 73 73 20 6a 73 32 2d 44 4f 54 20 70 6e 29 29 29 0a 20 20 20 20 operty-access.js2-DOT.pn))).....
66120 20 28 28 65 71 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 20 3b 3b 20 73 6b 69 70 20 6c .((eq.tt.js2-LB).......;;.skip.l
66140 65 66 74 20 62 72 61 63 6b 65 74 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 eft.bracket.token.......(js2-get
66160 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 -token).......(setq.pn.(js2-pars
66180 65 2d 65 6c 65 6d 65 6e 74 2d 67 65 74 20 70 6e 29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 e-element-get.pn)))......((and.(
661a0 65 71 20 74 74 20 6a 73 32 2d 4c 50 29 20 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 29 eq.tt.js2-LP).allow-call-syntax)
661c0 0a 20 20 20 20 20 20 3b 3b 20 75 6e 67 65 74 20 6f 70 74 69 6f 6e 61 6c 20 63 68 61 69 6e 69 6e .......;;.unget.optional.chainin
661e0 67 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 3b 3b 20 73 6f 20 63 75 72 72 65 6e 74 20 74 g.operator.......;;.so.current.t
66200 6f 6b 65 6e 20 69 73 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 63 6f 75 6c 64 20 oken.is.function.name.and.could.
66220 62 65 20 68 69 67 68 6c 69 67 68 74 65 64 0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d be.highlighted.......(js2-unget-
66240 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 token).......(setq.pn.(js2-parse
66260 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 70 6e 20 74 29 29 29 0a 20 20 20 20 20 28 74 0a 20 -function-call.pn.t)))......(t..
66280 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e .....(js2-report-error."msg.bad.
662a0 6f 70 74 69 6f 6e 61 6c 2e 63 68 61 69 6e 69 6e 67 22 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a optional.chaining"))).....pn))..
662c0 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 74 61 69 (defun.js2-parse-member-expr-tai
662e0 6c 20 28 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 20 70 6e 29 0a 20 20 22 50 61 72 73 l.(allow-call-syntax.pn)..."Pars
66300 65 20 61 20 63 68 61 69 6e 20 6f 66 20 70 72 6f 70 65 72 74 79 2f 61 72 72 61 79 20 61 63 63 65 e.a.chain.of.property/array.acce
66320 73 73 65 73 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 2e 0a 49 6e 63 6c 75 64 65 73 sses.or.function.calls..Includes
66340 20 70 61 72 73 69 6e 67 20 66 6f 72 20 45 34 58 20 6f 70 65 72 61 74 6f 72 73 20 6c 69 6b 65 20 .parsing.for.E4X.operators.like.
66360 60 2e 2e 27 20 61 6e 64 20 60 2e 40 27 2e 0a 49 66 20 41 4c 4c 4f 57 2d 43 41 4c 4c 2d 53 59 4e `..'.and.`.@'..If.ALLOW-CALL-SYN
66380 54 41 58 20 69 73 20 6e 69 6c 2c 20 73 74 6f 70 73 20 77 68 65 6e 20 77 65 20 65 6e 63 6f 75 6e TAX.is.nil,.stops.when.we.encoun
663a0 74 65 72 20 61 20 6c 65 66 74 2d 70 61 72 65 6e 2e 0a 52 65 74 75 72 6e 73 20 61 6e 20 65 78 70 ter.a.left-paren..Returns.an.exp
663c0 72 65 73 73 69 6f 6e 20 74 72 65 65 20 74 68 61 74 20 69 6e 63 6c 75 64 65 73 20 50 4e 2c 20 74 ression.tree.that.includes.PN,.t
663e0 68 65 20 70 61 72 65 6e 74 20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 74 74 0a 20 20 20 20 he.parent.node."...(let.(tt.....
66400 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e ....(continue.t)).....(while.con
66420 74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f tinue.......(setq.tt.(js2-get-to
66440 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d ken)).......(cond........((or.(=
66460 20 74 74 20 6a 73 32 2d 44 4f 54 29 20 28 3d 20 74 74 20 6a 73 32 2d 44 4f 54 44 4f 54 29 29 0a .tt.js2-DOT).(=.tt.js2-DOTDOT)).
66480 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f 70 ........(setq.pn.(js2-parse-prop
664a0 65 72 74 79 2d 61 63 63 65 73 73 20 74 74 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 erty-access.tt.pn)))........((=.
664c0 74 74 20 6a 73 32 2d 4f 50 54 49 4f 4e 41 4c 2d 43 48 41 49 4e 49 4e 47 29 0a 20 20 20 20 20 20 tt.js2-OPTIONAL-CHAINING).......
664e0 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f 70 74 69 6f 6e 61 6c 2d 63 ..(setq.pn.(js2-parse-optional-c
66500 68 61 69 6e 69 6e 67 2d 6f 70 65 72 61 74 6f 72 20 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 haining-operator.allow-call-synt
66520 61 78 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 6e 20 28 73 65 74 71 ax.pn)).........(unless.pn.(setq
66540 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a .continue.nil)))........((=.tt.j
66560 73 32 2d 44 4f 54 51 55 45 52 59 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a s2-DOTQUERY).........(setq.pn.(j
66580 73 32 2d 70 61 72 73 65 2d 64 6f 74 2d 71 75 65 72 79 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 s2-parse-dot-query.pn)))........
665a0 28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 ((=.tt.js2-LB).........(setq.pn.
665c0 28 6a 73 32 2d 70 61 72 73 65 2d 65 6c 65 6d 65 6e 74 2d 67 65 74 20 70 6e 29 29 29 0a 20 20 20 (js2-parse-element-get.pn)))....
665e0 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d ....((=.tt.js2-LP).........(js2-
66600 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 61 6c 6c 6f 77 2d 63 unget-token).........(if.allow-c
66620 61 6c 6c 2d 73 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 all-syntax.............(setq.pn.
66640 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 70 6e 29 29 0a 20 20 (js2-parse-function-call.pn))...
66660 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 ........(setq.continue.nil)))...
66680 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 54 45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20 .....((=.tt.js2-TEMPLATE_HEAD)..
666a0 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 74 61 67 67 65 .......(setq.pn.(js2-parse-tagge
666c0 64 2d 74 65 6d 70 6c 61 74 65 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 74 65 6d 70 6c 61 74 d-template.pn.(js2-parse-templat
666e0 65 2d 6c 69 74 65 72 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d e-literal))))........((=.tt.js2-
66700 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 45 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 NO_SUBS_TEMPLATE).........(setq.
66720 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 20 70 6e pn.(js2-parse-tagged-template.pn
66740 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 74 79 70 65 20 74 74 29 .(make-js2-string-node.:type.tt)
66760 29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 )))........(t.........(js2-unget
66780 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e -token).........(setq.continue.n
667a0 69 6c 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 il))).......(if.(>=.js2-highligh
667c0 74 2d 6c 65 76 65 6c 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d t-level.2)...........(js2-parse-
667e0 68 69 67 68 6c 69 67 68 74 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 6e 6f 64 65 20 70 6e 29 29 29 highlight-member-expr-node.pn)))
66800 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 74 61 67 67 .....pn))..(defun.js2-parse-tagg
66820 65 64 2d 74 65 6d 70 6c 61 74 65 20 28 74 61 67 2d 6e 6f 64 65 20 74 70 6c 2d 6e 6f 64 65 29 0a ed-template.(tag-node.tpl-node).
66840 20 20 22 50 61 72 73 65 20 74 61 67 67 65 64 20 74 65 6d 70 6c 61 74 65 20 65 78 70 72 65 73 73 .."Parse.tagged.template.express
66860 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f ion."...(let*.((pos.(js2-node-po
66880 73 20 74 61 67 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d s.tag-node))..........(pn.(make-
668a0 6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f js2-tagged-template-node.:pos.po
668c0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
668e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 ..............:len.(-.(js2-curre
66900 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-token-end).pos)..............
66920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
66940 74 61 67 20 74 61 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tag.tag-node....................
66960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 6c 61 .........................:templa
66980 74 65 20 74 70 6c 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 te.tpl-node))).....(js2-node-add
669a0 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 74 61 67 2d 6e 6f 64 65 20 74 70 6c 2d 6e 6f 64 65 29 0a -children.pn.tag-node.tpl-node).
669c0 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64 6f 74 2d 71 ....pn))..(defun.js2-parse-dot-q
669e0 75 65 72 79 20 28 70 6e 29 0a 20 20 22 50 61 72 73 65 20 61 20 64 6f 74 2d 71 75 65 72 79 20 65 uery.(pn)..."Parse.a.dot-query.e
66a00 78 70 72 65 73 73 69 6f 6e 2c 20 65 2e 67 2e 20 66 6f 6f 2e 62 61 72 2e 28 40 6e 61 6d 65 20 3d xpression,.e.g..foo.bar.(@name.=
66a20 3d 20 32 29 0a 4c 61 73 74 20 74 6f 6b 65 6e 20 70 61 72 73 65 64 20 6d 75 73 74 20 62 65 20 60 =.2).Last.token.parsed.must.be.`
66a40 6a 73 32 2d 44 4f 54 51 55 45 52 59 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 js2-DOTQUERY'."...(let.((pos.(js
66a60 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 6f 70 2d 70 6f 73 20 65 2-node-pos.pn)).........op-pos.e
66a80 78 70 72 20 65 6e 64 29 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78 6d 6c 29 xpr.end).....(js2-must-have-xml)
66aa0 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69 6f .....(js2-set-requires-activatio
66ac0 6e 29 0a 20 20 20 20 28 73 65 74 71 20 6f 70 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 n).....(setq.op-pos.(js2-current
66ae0 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 28 6a 73 32 2d -token-beg)...........expr.(js2-
66b00 70 61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e parse-expr)...........end.(js2-n
66b20 6f 64 65 2d 65 6e 64 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b 65 ode-end.expr)...........pn.(make
66b40 2d 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 20 3a 6c 65 66 74 20 70 6e -js2-xml-dot-query-node.:left.pn
66b60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
66b80 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...........:pos.pos.............
66ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f ..............................:o
66bc0 70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p-pos.op-pos....................
66be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 65 78 .......................:right.ex
66c00 70 72 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 pr)).....(js2-node-add-children.
66c20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a pn............................(j
66c40 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 6c 65 66 74 20 70 6e 29 0a 20 s2-xml-dot-query-node-left.pn)..
66c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 78 ..........................(js2-x
66c80 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 72 69 67 68 74 20 70 6e 29 29 0a 20 20 20 ml-dot-query-node-right.pn))....
66ca0 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 .(if.(js2-must-match.js2-RP."msg
66cc0 2e 6e 6f 2e 70 61 72 65 6e 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 78 .no.paren").........(setf.(js2-x
66ce0 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d 63 75 ml-dot-query-node-rp.pn).(js2-cu
66d00 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 rrent-token-beg)...............e
66d20 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 nd.(js2-current-token-end)))....
66d40 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 65 6e 64 20 .(setf.(js2-node-len.pn).(-.end.
66d60 70 6f 73 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 pos)).....pn))..(defun.js2-parse
66d80 2d 65 6c 65 6d 65 6e 74 2d 67 65 74 20 28 70 6e 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 65 6c -element-get.(pn)..."Parse.an.el
66da0 65 6d 65 6e 74 2d 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 65 2e 67 2e 20 66 6f 6f 5b 62 ement-get.expression,.e.g..foo[b
66dc0 61 72 5d 2e 0a 4c 61 73 74 20 74 6f 6b 65 6e 20 70 61 72 73 65 64 20 6d 75 73 74 20 62 65 20 60 ar]..Last.token.parsed.must.be.`
66de0 6a 73 32 2d 52 42 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 62 20 28 6a 73 32 2d 63 75 72 72 65 js2-RB'."...(let.((lb.(js2-curre
66e00 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 nt-token-beg)).........(pos.(js2
66e20 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 72 62 20 65 78 70 72 29 0a -node-pos.pn)).........rb.expr).
66e40 20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 ....(setq.expr.(js2-parse-expr))
66e60 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42 20 .....(if.(js2-must-match.js2-RB.
66e80 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e 69 6e 64 65 78 22 29 0a 20 20 20 20 20 20 20 20 "msg.no.bracket.index").........
66ea0 28 73 65 74 71 20 72 62 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 (setq.rb.(js2-current-token-beg)
66ec0 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 6c 65 6d 2d 67 )).....(setq.pn.(make-js2-elem-g
66ee0 65 74 2d 6e 6f 64 65 20 3a 74 61 72 67 65 74 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 et-node.:target.pn..............
66f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 ........................:pos.pos
66f20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
66f40 20 20 20 20 20 20 3a 65 6c 65 6d 65 6e 74 20 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......:element.expr.............
66f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 62 20 28 6a 73 .........................:lb.(js
66f80 32 2d 72 65 6c 70 6f 73 20 6c 62 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-relpos.lb.pos)................
66fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 62 20 28 6a 73 32 2d 72 ......................:rb.(js2-r
66fc0 65 6c 70 6f 73 20 72 62 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 elpos.rb.pos)...................
66fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d ...................:len.(-.(js2-
67000 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a current-token-end).pos))).....(j
67020 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 0a 20 20 20 20 20 20 20 20 s2-node-add-children.pn.........
67040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 ...................(js2-elem-get
67060 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-target.pn)................
67080 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 65 ............(js2-elem-get-node-e
670a0 6c 65 6d 65 6e 74 20 70 6e 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 lement.pn)).....pn))..(defun.js2
670c0 2d 68 69 67 68 6c 69 67 68 74 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 28 74 6f 6b 65 6e 29 -highlight-function-call.(token)
670e0 0a 20 20 28 77 68 65 6e 20 28 65 71 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f 6b ...(when.(eq.(js2-token-type.tok
67100 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 en).js2-NAME).....(js2-record-fa
67120 63 65 20 27 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 74 6f 6b 65 6e 29 29 29 0a 0a ce.'js2-function-call.token)))..
67140 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 28 (defun.js2-parse-function-call.(
67160 70 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 75 73 65 2d 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e 69 pn.&optional.use-optional-chaini
67180 6e 67 2d 70 29 0a 20 20 28 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 66 75 6e 63 74 69 6f 6e 2d ng-p)...(js2-highlight-function-
671a0 63 61 6c 6c 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 28 6a 73 32 call.(js2-current-token))...(js2
671c0 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 28 6c 65 74 20 28 61 72 67 73 0a 20 20 20 20 20 20 20 -get-token)...(let.(args........
671e0 20 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 29 0a 20 20 20 20 28 77 .(pos.(js2-node-pos.pn))).....(w
67200 68 65 6e 20 75 73 65 2d 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e 69 6e 67 2d 70 0a 20 20 20 20 hen.use-optional-chaining-p.....
67220 20 20 3b 3b 20 73 6b 69 70 20 6f 70 74 69 6f 6e 61 6c 20 63 68 61 69 6e 69 6e 67 20 6f 70 65 72 ..;;.skip.optional.chaining.oper
67240 61 74 6f 72 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 ator.......(js2-get-token)).....
67260 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 3a 70 6f (setq.pn.(make-js2-call-node.:po
67280 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.pos...........................
672a0 20 20 20 20 20 20 20 3a 74 61 72 67 65 74 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......:target.pn...............
672c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 70 20 28 2d 20 28 6a 73 32 2d 63 ...................:lp.(-.(js2-c
672e0 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a 73 urrent-token-beg).pos))).....(js
67300 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 28 6a 73 32 2d 63 61 6c 6c 2-node-add-children.pn.(js2-call
67320 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 6e 29 29 0a 20 20 20 20 3b 3b 20 41 64 64 20 74 68 65 -node-target.pn)).....;;.Add.the
67340 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 6e 2c 20 69 66 20 61 6e 79 20 61 72 65 20 73 75 70 .arguments.to.pn,.if.any.are.sup
67360 70 6c 69 65 64 2e 0a 20 20 20 20 28 73 65 74 66 20 61 72 67 73 20 28 6e 72 65 76 65 72 73 65 20 plied......(setf.args.(nreverse.
67380 28 6a 73 32 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 (js2-parse-argument-list))......
673a0 20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 72 70 20 70 6e 29 20 28 2d 20 28 6a .....(js2-call-node-rp.pn).(-.(j
673c0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20 20 20 s2-current-token-beg).pos)......
673e0 20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 70 6e 29 20 61 72 67 .....(js2-call-node-args.pn).arg
67400 73 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 s).....(apply.#'js2-node-add-chi
67420 6c 64 72 65 6e 20 70 6e 20 61 72 67 73 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f ldren.pn.args).....(setf.(js2-no
67440 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 de-len.pn).(-.js2-ts-cursor.pos)
67460 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f ).....pn))..(defun.js2-parse-pro
67480 70 65 72 74 79 2d 61 63 63 65 73 73 20 28 74 74 20 70 6e 29 0a 20 20 22 50 61 72 73 65 20 61 20 perty-access.(tt.pn)..."Parse.a.
674a0 70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 2c 20 58 4d 4c 20 64 65 73 63 65 6e 64 61 6e 74 73 property.access,.XML.descendants
674c0 20 61 63 63 65 73 73 2c 20 6f 72 20 58 4d 4c 20 61 74 74 72 20 61 63 63 65 73 73 2e 22 0a 20 20 .access,.or.XML.attr.access."...
674e0 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 2d 74 79 70 65 2d 66 6c 61 67 73 20 30 29 0a 20 20 20 20 (let.((member-type-flags.0).....
67500 20 20 20 20 28 64 6f 74 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d ....(dot-pos.(js2-current-token-
67520 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 74 2d 6c 65 6e 20 28 69 66 20 28 3d 20 74 74 beg)).........(dot-len.(if.(=.tt
67540 20 6a 73 32 2d 44 4f 54 44 4f 54 29 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 0a .js2-DOTDOT).2.1)).........name.
67560 20 20 20 20 20 20 20 20 72 65 66 20 20 3b 20 72 69 67 68 74 20 73 69 64 65 20 6f 66 20 2e 20 6f ........ref..;.right.side.of...o
67580 72 20 2e 2e 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a 20 20 r....operator.........result)...
675a0 20 20 28 77 68 65 6e 20 28 3d 20 74 74 20 6a 73 32 2d 44 4f 54 44 4f 54 29 0a 20 20 20 20 20 20 ..(when.(=.tt.js2-DOTDOT).......
675c0 28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78 6d 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 (js2-must-have-xml).......(setq.
675e0 6d 65 6d 62 65 72 2d 74 79 70 65 2d 66 6c 61 67 73 20 6a 73 32 2d 64 65 73 63 65 6e 64 61 6e 74 member-type-flags.js2-descendant
67600 73 2d 66 6c 61 67 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 6a 73 32 2d 63 6f 6d 70 69 6c s-flag)).....(if.(not.js2-compil
67620 65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e er-xml-available).........(progn
67640 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 70 72 6f 70 2d ...........(js2-must-match-prop-
67660 6e 61 6d 65 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 64 6f 74 22 29 0a 20 20 name."msg.no.name.after.dot")...
67680 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e ........(setq.name.(js2-create-n
676a0 61 6d 65 2d 6e 6f 64 65 20 74 20 6a 73 32 2d 47 45 54 50 52 4f 50 29 0a 20 20 20 20 20 20 20 20 ame-node.t.js2-GETPROP).........
676c0 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 70 72 6f 70 2d 67 65 ........result.(make-js2-prop-ge
676e0 74 2d 6e 6f 64 65 20 3a 6c 65 66 74 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-node.:left.pn.................
67700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
67720 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 pos.(js2-current-token-beg).....
67740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
67760 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 ...........:right.name..........
67780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
677a0 20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 ......:len.(js2-current-token-le
677c0 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 n)))...........(js2-node-add-chi
677e0 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 70 6e 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 ldren.result.pn.name)...........
67800 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 6c 6f 6f 6b 20 result).......;;.otherwise.look.
67820 66 6f 72 20 58 4d 4c 20 6f 70 65 72 61 74 6f 72 73 0a 20 20 20 20 20 20 28 73 65 74 66 20 72 65 for.XML.operators.......(setf.re
67840 73 75 6c 74 20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 44 4f 54 29 0a 20 20 20 20 20 20 20 20 sult.(if.(=.tt.js2-DOT).........
67860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 70 72 6f 70 2d 67 65 ...............(make-js2-prop-ge
67880 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 t-node)......................(ma
678a0 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 44 4f 54 44 ke-js2-infix-node.:type.js2-DOTD
678c0 4f 54 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 72 OT)).............(js2-node-pos.r
678e0 65 73 75 6c 74 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 0a 20 20 20 20 20 20 20 esult).(js2-node-pos.pn)........
67900 20 20 20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6f 70 2d 70 6f 73 20 72 65 73 75 .....(js2-infix-node-op-pos.resu
67920 6c 74 29 20 64 6f 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 66 lt).dot-pos.............(js2-inf
67940 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 72 65 73 75 6c 74 29 20 70 6e 20 20 3b 20 64 6f 20 74 68 ix-node-left.result).pn..;.do.th
67960 69 73 20 61 66 74 65 72 20 73 65 74 74 69 6e 67 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 is.after.setting.position.......
67980 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 ......tt.(js2-get-prop-name-toke
679a0 6e 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 n)).......(cond........;;.handle
679c0 73 3a 20 6e 61 6d 65 2c 20 6e 73 3a 3a 6e 61 6d 65 2c 20 6e 73 3a 3a 2a 2c 20 6e 73 3a 3a 5b 65 s:.name,.ns::name,.ns::*,.ns::[e
679e0 78 70 72 5d 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 xpr]........((or.(=.tt.js2-NAME)
67a00 20 28 3d 20 74 74 20 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 .(=.tt.js2-PRIVATE_NAME)).......
67a20 20 20 28 73 65 74 71 20 72 65 66 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d ..(setq.ref.(js2-parse-property-
67a40 6e 61 6d 65 20 2d 31 20 6e 69 6c 20 6d 65 6d 62 65 72 2d 74 79 70 65 2d 66 6c 61 67 73 29 29 29 name.-1.nil.member-type-flags)))
67a60 0a 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 3a 20 2a 2c 20 2a 3a 3a 6e 61 6d 65 2c 20 ........;;.handles:.*,.*::name,.
67a80 2a 3a 3a 2a 2c 20 2a 3a 3a 5b 65 78 70 72 5d 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 *::*,.*::[expr]........((=.tt.js
67aa0 32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 66 20 28 6a 73 32 2d 70 61 2-MUL).........(setq.ref.(js2-pa
67ac0 72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 6e 69 6c 20 22 2a 22 20 6d 65 6d 62 65 72 rse-property-name.nil."*".member
67ae0 2d 74 79 70 65 2d 66 6c 61 67 73 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 -type-flags)))........;;.handles
67b00 3a 20 27 40 61 74 74 72 27 2c 20 27 40 6e 73 3a 3a 61 74 74 72 27 2c 20 27 40 6e 73 3a 3a 2a 27 :.'@attr',.'@ns::attr',.'@ns::*'
67b20 2c 20 27 40 6e 73 3a 3a 5b 65 78 70 72 5d 27 2c 20 65 74 63 2e 0a 20 20 20 20 20 20 20 28 28 3d ,.'@ns::[expr]',.etc.........((=
67b40 20 74 74 20 6a 73 32 2d 58 4d 4c 41 54 54 52 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 .tt.js2-XMLATTR).........(setq.r
67b60 65 73 75 6c 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 esult.(js2-parse-attribute-acces
67b80 73 29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f s)))........(t.........(js2-repo
67ba0 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 64 6f 74 22 rt-error."msg.no.name.after.dot"
67bc0 20 6e 69 6c 20 64 6f 74 2d 70 6f 73 20 64 6f 74 2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 28 69 .nil.dot-pos.dot-len))).......(i
67be0 66 20 72 65 66 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d f.ref...........(setf.(js2-node-
67c00 6c 65 6e 20 72 65 73 75 6c 74 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 72 65 66 len.result).(-.(js2-node-end.ref
67c20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
67c40 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 72 65 73 75 6c 74 29 ...........(js2-node-pos.result)
67c60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 ).................(js2-infix-nod
67c80 65 2d 72 69 67 68 74 20 72 65 73 75 6c 74 29 20 72 65 66 29 29 0a 20 20 20 20 20 20 28 69 66 20 e-right.result).ref)).......(if.
67ca0 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 (js2-infix-node-p.result).......
67cc0 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 73 75 6c ....(js2-node-add-children.resul
67ce0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
67d00 20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 72 65 73 75 6c 74 29 0a ...(js2-infix-node-left.result).
67d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
67d40 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 72 65 73 75 6c 74 29 29 29 .(js2-infix-node-right.result)))
67d60 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 .......result)))..(defun.js2-par
67d80 73 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 73 20 28 29 0a 20 20 22 50 61 72 73 65 20 se-attribute-access.()..."Parse.
67da0 61 6e 20 45 34 58 20 58 4d 4c 20 61 74 74 72 69 62 75 74 65 20 65 78 70 72 65 73 73 69 6f 6e 2e an.E4X.XML.attribute.expression.
67dc0 0a 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 66 20 74 68 .This.includes.expressions.of.th
67de0 65 20 66 6f 72 6d 73 3a 0a 0a 20 20 40 61 74 74 72 20 20 20 20 20 20 40 6e 73 3a 3a 61 74 74 72 e.forms:....@attr......@ns::attr
67e00 20 20 20 20 20 40 6e 73 3a 3a 2a 0a 20 20 40 2a 20 20 20 20 20 20 20 20 20 40 2a 3a 3a 61 74 74 .....@ns::*...@*.........@*::att
67e20 72 20 20 20 20 20 20 40 2a 3a 3a 2a 0a 20 20 40 5b 65 78 70 72 5d 20 20 20 20 40 2a 3a 3a 5b 65 r......@*::*...@[expr]....@*::[e
67e40 78 70 72 5d 20 20 20 20 40 6e 73 3a 3a 5b 65 78 70 72 5d 0a 0a 43 61 6c 6c 65 64 20 69 66 20 77 xpr]....@ns::[expr]..Called.if.w
67e60 65 20 70 65 65 6b 65 64 20 61 6e 20 60 40 27 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 e.peeked.an.`@'.token."...(let.(
67e80 28 74 74 20 28 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 0a 20 (tt.(js2-get-prop-name-token))..
67ea0 20 20 20 20 20 20 20 28 61 74 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 .......(at-pos.(js2-current-toke
67ec0 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c n-beg))).....(cond......;;.handl
67ee0 65 73 3a 20 40 6e 61 6d 65 2c 20 40 6e 73 3a 3a 6e 61 6d 65 2c 20 40 6e 73 3a 3a 2a 2c 20 40 6e es:.@name,.@ns::name,.@ns::*,.@n
67f00 73 3a 3a 5b 65 78 70 72 5d 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a s::[expr]......((=.tt.js2-NAME).
67f20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 61 ......(js2-parse-property-name.a
67f40 74 2d 70 6f 73 20 6e 69 6c 20 30 29 29 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 3a 20 40 t-pos.nil.0))......;;.handles:.@
67f60 2a 2c 20 40 2a 3a 3a 6e 61 6d 65 2c 20 40 2a 3a 3a 2a 2c 20 40 2a 3a 3a 5b 65 78 70 72 5d 0a 20 *,.@*::name,.@*::*,.@*::[expr]..
67f80 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 ....((=.tt.js2-MUL).......(js2-p
67fa0 61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d arse-property-name.(js2-current-
67fc0 74 6f 6b 65 6e 2d 62 65 67 29 20 22 2a 22 20 30 29 29 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c token-beg)."*".0))......;;.handl
67fe0 65 73 20 40 5b 65 78 70 72 5d 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 es.@[expr]......((=.tt.js2-LB)..
68000 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 20 61 74 2d .....(js2-parse-xml-elem-ref.at-
68020 70 6f 73 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d pos))......(t.......(js2-report-
68040 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 78 6d 6c 41 74 74 72 error."msg.no.name.after.xmlAttr
68060 22 29 0a 20 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 63 61 73 63 61 64 65 64 20 65 72 72 6f 72 ").......;;.Avoid.cascaded.error
68080 73 20 74 68 61 74 20 68 61 70 70 65 6e 20 69 66 20 77 65 20 6d 61 6b 65 20 61 6e 20 65 72 72 6f s.that.happen.if.we.make.an.erro
680a0 72 20 6e 6f 64 65 20 68 65 72 65 2e 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 r.node.here........(js2-parse-pr
680c0 6f 70 65 72 74 79 2d 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 operty-name.(js2-current-token-b
680e0 65 67 29 20 22 22 20 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d eg)."".0)))))..(defun.js2-parse-
68100 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 28 61 74 2d 70 6f 73 20 73 20 6d 65 6d 62 65 72 2d 74 property-name.(at-pos.s.member-t
68120 79 70 65 2d 66 6c 61 67 73 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 3a 3a 20 66 6f 6c 6c 6f 77 ype-flags)..."Check.if.::.follow
68140 73 20 6e 61 6d 65 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 62 65 63 6f 6d 65 73 20 s.name.in.which.case.it.becomes.
68160 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 2e 0a 0a 41 54 2d 50 4f 53 20 69 73 20 61 20 6e 61 74 qualified.name...AT-POS.is.a.nat
68180 75 72 61 6c 20 6e 75 6d 62 65 72 20 69 66 20 77 65 20 6a 75 73 74 20 72 65 61 64 20 61 6e 20 60 ural.number.if.we.just.read.an.`
681a0 40 27 20 74 6f 6b 65 6e 2c 20 65 6c 73 65 20 6e 69 6c 2e 0a 53 20 69 73 20 74 68 65 20 6e 61 6d @'.token,.else.nil..S.is.the.nam
681c0 65 20 6f 72 20 73 74 72 69 6e 67 20 74 68 61 74 20 77 61 73 20 6d 61 74 63 68 65 64 3a 20 20 61 e.or.string.that.was.matched:..a
681e0 6e 20 69 64 65 6e 74 69 66 69 65 72 2c 20 60 74 68 72 6f 77 27 20 6f 72 20 60 2a 27 2e 0a 4d 45 n.identifier,.`throw'.or.`*'..ME
68200 4d 42 45 52 2d 54 59 50 45 2d 46 4c 41 47 53 20 69 73 20 61 20 62 69 74 20 73 65 74 20 74 72 61 MBER-TYPE-FLAGS.is.a.bit.set.tra
68220 63 6b 69 6e 67 20 77 68 65 74 68 65 72 20 77 65 27 72 65 20 61 20 60 2e 27 20 6f 72 20 60 2e 2e cking.whether.we're.a.`.'.or.`..
68240 27 20 63 68 69 6c 64 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 72 65 66 '.child...Returns.a.`js2-xml-ref
68260 2d 6e 6f 64 65 27 20 69 66 20 69 74 27 73 20 61 6e 20 61 74 74 72 69 62 75 74 65 20 61 63 63 65 -node'.if.it's.an.attribute.acce
68280 73 73 2c 20 61 20 63 68 69 6c 64 20 6f 66 20 61 20 60 2e 2e 27 0a 6f 70 65 72 61 74 6f 72 2c 20 ss,.a.child.of.a.`..'.operator,.
682a0 6f 72 20 74 68 65 20 6e 61 6d 65 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 3a 3a 2e 20 20 or.the.name.is.followed.by.::...
682c0 46 6f 72 20 61 20 70 6c 61 69 6e 20 6e 61 6d 65 2c 20 72 65 74 75 72 6e 73 20 61 0a 60 6a 73 32 For.a.plain.name,.returns.a.`js2
682e0 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 20 20 52 65 74 75 72 6e 73 20 61 20 60 6a 73 32 2d 65 72 72 -name-node'...Returns.a.`js2-err
68300 6f 72 2d 6e 6f 64 65 27 20 66 6f 72 20 6d 61 6c 66 6f 72 6d 65 64 20 58 4d 4c 20 65 78 70 72 65 or-node'.for.malformed.XML.expre
68320 73 73 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6f 72 20 61 74 2d 70 6f 73 ssions."...(let.((pos.(or.at-pos
68340 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 .(js2-current-token-beg)))......
68360 20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 6a 73 32 2d ...colon-pos.........(name.(js2-
68380 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d create-name-node.t.(js2-current-
683a0 74 6f 6b 65 6e 2d 74 79 70 65 29 20 73 29 29 0a 20 20 20 20 20 20 20 20 6e 73 20 74 74 20 70 6e token-type).s)).........ns.tt.pn
683c0 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28 77 68 65 6e ).....(catch.'return.......(when
683e0 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 4f 4c 4f 4e 43 4f 4c 4f 4e .(js2-match-token.js2-COLONCOLON
68400 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 ).........(setq.ns.name.........
68420 20 20 20 20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ......colon-pos.(js2-current-tok
68440 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65 en-beg)...............tt.(js2-ge
68460 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e t-prop-name-token)).........(con
68480 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 20 6e 61 6d 65 3a 3a 6e 61 6d 65 d..........;;.handles.name::name
684a0 0a 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 ..........((=.tt.js2-NAME)......
684c0 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 .....(setq.name.(js2-create-name
684e0 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 20 6e 61 6d -node)))..........;;.handles.nam
68500 65 3a 3a 2a 0a 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4d 55 4c 29 0a 20 20 e::*..........((=.tt.js2-MUL)...
68520 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e ........(setq.name.(js2-create-n
68540 61 6d 65 2d 6e 6f 64 65 20 6e 69 6c 20 6e 69 6c 20 22 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 ame-node.nil.nil."*"))).........
68560 20 3b 3b 20 68 61 6e 64 6c 65 73 20 6e 61 6d 65 3a 3a 5b 65 78 70 72 5d 0a 20 20 20 20 20 20 20 .;;.handles.name::[expr]........
68580 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f ..((=.tt.js2-LB)...........(thro
685a0 77 20 27 72 65 74 75 72 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 w.'return.(js2-parse-xml-elem-re
685c0 66 20 61 74 2d 70 6f 73 20 6e 73 20 63 6f 6c 6f 6e 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 f.at-pos.ns.colon-pos)))........
685e0 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 ..(t...........(js2-report-error
68600 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e 63 6f 6c 6f 6e 63 6f 6c 6f 6e 22 29 ."msg.no.name.after.coloncolon")
68620 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75 6c 6c 20 6e 73 29 20 28 7a 65 ))).......(if.(and.(null.ns).(ze
68640 72 6f 70 20 6d 65 6d 62 65 72 2d 74 79 70 65 2d 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 rop.member-type-flags)).........
68660 20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 20 20 ..name.........(prog1...........
68680 20 20 28 73 65 74 71 20 70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 ..(setq.pn...................(ma
686a0 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f ke-js2-xml-prop-ref-node.:pos.po
686c0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
686e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 ................:len.(-.(js2-nod
68700 65 2d 65 6e 64 20 6e 61 6d 65 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-end.name).pos)................
68720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
68740 61 74 2d 70 6f 73 20 61 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 at-pos.at-pos...................
68760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6c ............................:col
68780 6f 6e 2d 70 6f 73 20 63 6f 6c 6f 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on-pos.colon-pos................
687a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ...............................:
687c0 70 72 6f 70 6e 61 6d 65 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e propname.name))...........(js2-n
687e0 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6e 61 6d 65 29 29 29 29 29 29 0a 0a ode-add-children.pn.name))))))..
68800 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 20 28 61 (defun.js2-parse-xml-elem-ref.(a
68820 74 2d 70 6f 73 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 61 6d 65 73 70 61 63 65 20 63 6f 6c 6f 6e 2d t-pos.&optional.namespace.colon-
68840 70 6f 73 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 5b 65 78 70 72 5d 20 70 6f 72 74 69 6f 6e pos)..."Parse.the.[expr].portion
68860 20 6f 66 20 61 6e 20 78 6d 6c 20 65 6c 65 6d 65 6e 74 20 72 65 66 65 72 65 6e 63 65 2e 0a 46 6f .of.an.xml.element.reference..Fo
68880 72 20 69 6e 73 74 61 6e 63 65 2c 20 40 5b 65 78 70 72 5d 2c 20 40 2a 3a 3a 5b 65 78 70 72 5d 2c r.instance,.@[expr],.@*::[expr],
688a0 20 6f 72 20 6e 73 3a 3a 5b 65 78 70 72 5d 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 62 20 28 6a .or.ns::[expr]."...(let*.((lb.(j
688c0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 s2-current-token-beg))..........
688e0 28 70 6f 73 20 28 6f 72 20 61 74 2d 70 6f 73 20 6c 62 29 29 0a 20 20 20 20 20 20 20 20 20 72 62 (pos.(or.at-pos.lb))..........rb
68900 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 ..........(expr.(js2-parse-expr)
68920 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 78 )..........(end.(js2-node-end.ex
68940 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d pr))..........pn).....(if.(js2-m
68960 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 ust-match.js2-RB."msg.no.bracket
68980 2e 69 6e 64 65 78 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 62 20 28 6a 73 32 2d 63 .index").........(setq.rb.(js2-c
689a0 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-token-beg)...............
689c0 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 end.(js2-current-token-end)))...
689e0 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 0a 20 20 20 20 20 20 ..(prog1.........(setq.pn.......
68a00 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e ........(make-js2-xml-elem-ref-n
68a20 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode.:pos.pos....................
68a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 .......................:len.(-.e
68a60 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.pos).........................
68a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d ..................:namespace.nam
68aa0 65 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 espace..........................
68ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6c 6f 6e 2d 70 6f 73 20 63 6f 6c 6f .................:colon-pos.colo
68ae0 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-pos...........................
68b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 74 2d 70 6f 73 20 61 74 2d 70 6f 73 0a 20 ................:at-pos.at-pos..
68b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68b40 20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........:expr.expr.............
68b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c ..............................:l
68b80 62 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 6c 62 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 b.(js2-relpos.lb.pos)...........
68ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68bc0 3a 72 62 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 72 62 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 :rb.(js2-relpos.rb.pos))).......
68be0 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6e 61 6d 65 73 70 (js2-node-add-children.pn.namesp
68c00 61 63 65 20 65 78 70 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64 ace.expr))))..(defun.js2-parse-d
68c20 65 73 74 72 75 63 74 2d 70 72 69 6d 61 72 79 2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 estruct-primary-expr.()...(let.(
68c40 28 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 74 29 29 0a 20 20 20 (js2-is-in-destructuring.t))....
68c60 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d 61 72 79 2d 65 78 70 72 29 29 29 0a 0a 28 64 65 .(js2-parse-primary-expr)))..(de
68c80 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d 61 72 79 2d 65 78 70 72 20 28 29 0a 20 20 fun.js2-parse-primary-expr.()...
68ca0 22 50 61 72 73 65 20 61 20 6c 69 74 65 72 61 6c 20 28 6c 65 61 66 29 20 65 78 70 72 65 73 73 69 "Parse.a.literal.(leaf).expressi
68cc0 6f 6e 20 6f 66 20 73 6f 6d 65 20 73 6f 72 74 2e 0a 49 6e 63 6c 75 64 65 73 20 63 6f 6d 70 6c 65 on.of.some.sort..Includes.comple
68ce0 78 20 6c 69 74 65 72 61 6c 73 20 73 75 63 68 20 61 73 20 66 75 6e 63 74 69 6f 6e 73 2c 20 6f 62 x.literals.such.as.functions,.ob
68d00 6a 65 63 74 2d 6c 69 74 65 72 61 6c 73 2c 0a 61 72 72 61 79 2d 6c 69 74 65 72 61 6c 73 2c 20 61 ject-literals,.array-literals,.a
68d20 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 20 61 6e 64 20 72 65 67 75 6c 61 72 20 rray.comprehensions.and.regular.
68d40 65 78 70 72 65 73 73 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 74 74 20 6e 6f 64 65 20 61 73 expressions."...(let.(tt.node.as
68d60 79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 63 75 72 72 65 ync-pos).....(setq.tt.(js2-curre
68d80 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 nt-token-type)).....(cond......(
68da0 28 3d 20 74 74 20 6a 73 32 2d 43 4c 41 53 53 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 (=.tt.js2-CLASS).......(js2-pars
68dc0 65 2d 63 6c 61 73 73 2d 65 78 70 72 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 46 e-class-expr))......((=.tt.js2-F
68de0 55 4e 43 54 49 4f 4e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 UNCTION).......(js2-parse-functi
68e00 6f 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 28 28 73 65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20 on-expr))......((setq.async-pos.
68e20 28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 (js2-match-async-function)).....
68e40 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72 20 61 73 79 6e 63 ..(js2-parse-function-expr.async
68e60 2d 70 6f 73 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 -pos))......((=.tt.js2-LB)......
68e80 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 63 6f 6d 70 2d 6f 72 2d 6c 69 74 65 72 61 .(js2-parse-array-comp-or-litera
68ea0 6c 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 28 6a l))......((=.tt.js2-LC).......(j
68ec0 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 29 29 0a 20 20 20 20 20 28 s2-parse-object-literal))......(
68ee0 28 3d 20 74 74 20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d (=.tt.js2-LET).......(js2-parse-
68f00 6c 65 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 let.(js2-current-token-beg)))...
68f20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 ...((=.tt.js2-LP).......(js2-par
68f40 73 65 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6f 72 2d 67 65 6e 65 72 61 74 6f 72 2d 63 6f 6d 70 29 se-paren-expr-or-generator-comp)
68f60 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 41 54 54 52 29 0a 20 20 20 20 20 )......((=.tt.js2-XMLATTR)......
68f80 20 28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78 6d 6c 29 0a 20 20 20 20 20 20 28 6a 73 32 2d .(js2-must-have-xml).......(js2-
68fa0 70 61 72 73 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73 73 29 29 0a 20 20 20 20 20 28 28 parse-attribute-access))......((
68fc0 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d =.tt.js2-NAME).......(js2-parse-
68fe0 6e 61 6d 65 20 74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 49 4d 50 4f 52 54 name.tt))......((=.tt.js2-IMPORT
69000 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6e 69 ).......(js2-create-name-node.ni
69020 6c 20 6e 69 6c 20 22 69 6d 70 6f 72 74 22 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 l.nil."import"))......((=.tt.js2
69040 2d 4e 55 4d 42 45 52 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6d 61 6b 65 2d -NUMBER).......(setq.node.(make-
69060 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 js2-number-node)).......(when.(a
69080 6e 64 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20 nd.js2-in-use-strict-directive..
690a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e ................(=.(js2-number-n
690c0 6f 64 65 2d 6e 75 6d 2d 62 61 73 65 20 6e 6f 64 65 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 ode-num-base.node).8)...........
690e0 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 6c 65 67 61 63 79 2d 6f .......(js2-number-node-legacy-o
69100 63 74 61 6c 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 ctal-p.node)).........(js2-repor
69120 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 6f 63 74 61 6c 2e 73 74 72 69 63 74 22 29 29 0a t-error."msg.no.octal.strict")).
69140 20 20 20 20 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d ......node)......((or.(=.tt.js2-
69160 53 54 52 49 4e 47 29 20 28 3d 20 74 74 20 6a 73 32 2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 STRING).(=.tt.js2-NO_SUBS_TEMPLA
69180 54 45 29 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 TE)).......(make-js2-string-node
691a0 20 3a 74 79 70 65 20 74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 54 45 4d 50 .:type.tt))......((=.tt.js2-TEMP
691c0 4c 41 54 45 5f 48 45 41 44 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 74 65 6d 70 LATE_HEAD).......(js2-parse-temp
691e0 6c 61 74 65 2d 6c 69 74 65 72 61 6c 29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a late-literal))......((or.(=.tt.j
69200 73 32 2d 44 49 56 29 20 28 3d 20 74 74 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56 29 29 0a 20 s2-DIV).(=.tt.js2-ASSIGN_DIV))..
69220 20 20 20 20 20 3b 3b 20 47 6f 74 20 2f 20 6f 72 20 2f 3d 20 77 68 69 63 68 20 69 6e 20 74 68 69 .....;;.Got./.or./=.which.in.thi
69240 73 20 63 6f 6e 74 65 78 74 20 6d 65 61 6e 73 20 61 20 72 65 67 65 78 70 20 6c 69 74 65 72 61 6c s.context.means.a.regexp.literal
69260 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 78 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 .......(let*.((px-pos.(js2-curre
69280 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 61 nt-token-beg))..............(fla
692a0 67 73 20 28 6a 73 32 2d 72 65 61 64 2d 72 65 67 65 78 70 20 74 74 20 70 78 2d 70 6f 73 29 29 0a gs.(js2-read-regexp.tt.px-pos)).
692c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 .............(end.(js2-current-t
692e0 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 oken-end))).........(prog1......
69300 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65 20 3a 70 6f .......(make-js2-regexp-node.:po
69320 73 20 70 78 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.px-pos........................
69340 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 78 2d 70 6f 73 29 0a 20 ...........:len.(-.end.px-pos)..
69360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
69380 20 3a 76 61 6c 75 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e .:value.(js2-current-token-strin
693a0 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g)..............................
693c0 20 20 20 20 20 3a 66 6c 61 67 73 20 66 6c 61 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 .....:flags.flags)...........(js
693e0 32 2d 73 65 74 2d 66 61 63 65 20 70 78 2d 70 6f 73 20 65 6e 64 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2-set-face.px-pos.end.'font-lock
69400 2d 73 74 72 69 6e 67 2d 66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29 0a 20 20 20 20 20 28 28 -string-face.'record))))......((
69420 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4c 4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 or.(=.tt.js2-NULL)...........(=.
69440 74 74 20 6a 73 32 2d 54 48 49 53 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 tt.js2-THIS)...........(=.tt.js2
69460 2d 53 55 50 45 52 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 46 41 4c 53 -SUPER)...........(=.tt.js2-FALS
69480 45 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 54 52 55 45 29 29 0a 20 20 E)...........(=.tt.js2-TRUE))...
694a0 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74 79 70 65 ....(make-js2-keyword-node.:type
694c0 20 74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 29 .tt))......((=.tt.js2-TRIPLEDOT)
694e0 0a 20 20 20 20 20 20 3b 3b 20 4c 69 6b 65 77 69 73 65 2c 20 6f 6e 6c 79 20 76 61 6c 69 64 20 69 .......;;.Likewise,.only.valid.i
69500 6e 20 61 6e 20 61 72 72 6f 77 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 72 65 73 74 20 n.an.arrow.function.with.a.rest.
69520 70 61 72 61 6d 2e 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 param........(if.(and.(js2-match
69540 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -token.js2-NAME)................
69560 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 52 50 29 0a 20 20 20 20 20 20 20 (js2-match-token.js2-RP)........
69580 20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 ........(eq.(js2-peek-token).js2
695a0 2d 41 52 52 4f 57 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 -ARROW))...........(progn.......
695c0 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 20 20 3b 20 50 75 74 20 62 ......(js2-unget-token)..;.Put.b
695e0 61 63 6b 20 74 68 65 20 72 69 67 68 74 20 70 61 72 65 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 ack.the.right.paren.............
69600 20 3b 3b 20 53 65 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63 61 73 65 2e 0a 20 20 20 20 20 .;;.See.the.previous.case.......
69620 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74 .......(make-js2-keyword-node.:t
69640 79 70 65 20 6a 73 32 2d 4e 55 4c 4c 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f ype.js2-NULL)).........(js2-repo
69660 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28 rt-error."msg.syntax").........(
69680 6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 28 3d 20 make-js2-error-node)))......((=.
696a0 74 74 20 6a 73 32 2d 52 45 53 45 52 56 45 44 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f tt.js2-RESERVED).......(js2-repo
696c0 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 72 65 73 65 72 76 65 64 2e 69 64 22 29 0a 20 20 20 20 rt-error."msg.reserved.id").....
696e0 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 3d ..(make-js2-name-node))......((=
69700 20 74 74 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 73 63 61 6e .tt.js2-ERROR).......;;.the.scan
69720 6e 65 72 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 73 75 62 72 6f 75 74 69 6e 65 73 20 72 65 ner.or.one.of.its.subroutines.re
69740 70 6f 72 74 65 64 20 74 68 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 ported.the.error........(make-js
69760 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 45 2-error-node))......((=.tt.js2-E
69780 4f 46 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 78 2d 70 6f 73 20 28 70 6f 69 6e 74 2d OF).......(let*.((px-pos.(point-
697a0 61 74 2d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73 at-bol))..............(len.(-.js
697c0 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 78 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 2-ts-cursor.px-pos))).........(j
697e0 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75 6e 65 78 70 65 63 74 65 64 2e s2-report-error."msg.unexpected.
69800 65 6f 66 22 20 6e 69 6c 20 70 78 2d 70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 28 6d 61 6b eof".nil.px-pos.len)).......(mak
69820 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 20 3a 70 6f 73 20 28 31 2d 20 6a 73 32 2d 74 73 e-js2-error-node.:pos.(1-.js2-ts
69840 2d 63 75 72 73 6f 72 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 -cursor)))......(t.......(js2-re
69860 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 28 port-error."msg.syntax").......(
69880 6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e make-js2-error-node)))))..(defun
698a0 20 6a 73 32 2d 70 61 72 73 65 2d 74 65 6d 70 6c 61 74 65 2d 6c 69 74 65 72 61 6c 20 28 29 0a 20 .js2-parse-template-literal.()..
698c0 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 .(let.((beg.(js2-current-token-b
698e0 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 6b 69 64 73 20 28 6c 69 73 74 20 28 6d 61 6b 65 2d 6a eg)).........(kids.(list.(make-j
69900 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 54 45 4d 50 4c 41 54 s2-string-node.:type.js2-TEMPLAT
69920 45 5f 48 45 41 44 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 74 20 6a 73 32 2d 54 45 4d 50 4c 41 E_HEAD))).........(tt.js2-TEMPLA
69940 54 45 5f 48 45 41 44 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 65 71 20 74 74 20 6a 73 32 2d TE_HEAD)).....(while.(eq.tt.js2-
69960 54 45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6a 73 32 2d TEMPLATE_HEAD).......(push.(js2-
69980 70 61 72 73 65 2d 65 78 70 72 29 20 6b 69 64 73 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 parse-expr).kids).......(js2-mus
699a0 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 t-match.js2-RC."msg.syntax")....
699c0 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 20 27 54 45 4d 50 ...(setq.tt.(js2-get-token.'TEMP
699e0 4c 41 54 45 5f 54 41 49 4c 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6d 61 6b 65 2d 6a 73 LATE_TAIL)).......(push.(make-js
69a00 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 74 79 70 65 20 74 74 29 20 6b 69 64 73 29 29 0a 20 2-string-node.:type.tt).kids))..
69a20 20 20 20 28 73 65 74 71 20 6b 69 64 73 20 28 6e 72 65 76 65 72 73 65 20 6b 69 64 73 29 29 0a 20 ...(setq.kids.(nreverse.kids))..
69a40 20 20 20 28 6c 65 74 20 28 28 74 70 6c 20 28 6d 61 6b 65 2d 6a 73 32 2d 74 65 6d 70 6c 61 74 65 ...(let.((tpl.(make-js2-template
69a60 2d 6e 6f 64 65 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node.:pos.beg..................
69a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a ......................:len.(-.(j
69aa0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20 s2-current-token-end).beg)......
69ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
69ae0 20 20 3a 6b 69 64 73 20 6b 69 64 73 29 29 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a ..:kids.kids))).......(apply.#'j
69b00 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 74 70 6c 20 6b 69 64 73 29 0a 20 s2-node-add-children.tpl.kids)..
69b20 20 20 20 20 20 74 70 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6e 61 .....tpl)))..(defun.js2-parse-na
69b40 6d 65 20 28 5f 74 74 29 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72 me.(_tt)...(let.((name.(js2-curr
69b60 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 29 ent-token-string)).........node)
69b80 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 69 66 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 .....(setq.node.(if.js2-compiler
69ba0 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -xml-available..................
69bc0 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 6e 69 6c 20 6e ..(js2-parse-property-name.nil.n
69be0 61 6d 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 72 65 ame.0)..................(js2-cre
69c00 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69 6f 6e 20 ate-name-node.'check-activation.
69c20 6e 69 6c 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 68 69 67 nil.name))).....(if.(and.js2-hig
69c40 68 6c 69 67 68 74 2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 20 20 hlight-external-variables.......
69c60 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 68 61 74 27 73 20 54 52 54 20 66 6f 72 20 .......;;.FIXME:.What's.TRT.for.
69c80 60 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 27 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 `js2-xml-ref-node'?.............
69ca0 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 .(js2-name-node-p.node))........
69cc0 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 0a 20 20 .(js2-record-name-node.node))...
69ce0 20 20 6e 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d ..node))..(defun.js2-parse-warn-
69d00 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 20 28 6d 73 67 20 70 6f 73 20 65 6c 65 6d 73 20 63 6f trailing-comma.(msg.pos.elems.co
69d20 6d 6d 61 2d 70 6f 73 29 0a 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 mma-pos)...(js2-add-strict-warni
69d40 6e 67 0a 20 20 20 6d 73 67 20 6e 69 6c 0a 20 20 20 3b 3b 20 62 61 63 6b 20 75 70 20 66 72 6f 6d ng....msg.nil....;;.back.up.from
69d60 20 63 6f 6d 6d 61 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 20 6f 72 20 61 .comma.to.beginning.of.line.or.a
69d80 72 72 61 79 2f 6f 62 6a 6c 69 74 0a 20 20 20 28 6d 61 78 20 28 69 66 20 65 6c 65 6d 73 0a 20 20 rray/objlit....(max.(if.elems...
69da0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 28 63 61 72 20 65 6c 65 ..........(js2-node-pos.(car.ele
69dc0 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 ms))...........pos).........(sav
69de0 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 e-excursion...........(goto-char
69e00 20 63 6f 6d 6d 61 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 .comma-pos)...........(back-to-i
69e20 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a ndentation)...........(point))).
69e40 20 20 20 63 6f 6d 6d 61 2d 70 6f 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 ...comma-pos))..(defun.js2-parse
69e60 2d 61 72 72 61 79 2d 63 6f 6d 70 2d 6f 72 2d 6c 69 74 65 72 61 6c 20 28 29 0a 20 20 28 6c 65 74 -array-comp-or-literal.()...(let
69e80 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 .((pos.(js2-current-token-beg)))
69ea0 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 .....(if.(and.(>=.js2-language-v
69ec0 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 ersion.200)..............(js2-ma
69ee0 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 4f 52 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 tch-token.js2-FOR)).........(js2
69f00 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 63 6f 6d 70 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6a 73 -parse-array-comp.pos).......(js
69f20 32 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 6c 69 74 65 72 61 6c 20 70 6f 73 29 29 29 29 0a 0a 28 2-parse-array-literal.pos))))..(
69f40 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 6c 69 74 65 72 61 6c 20 28 70 defun.js2-parse-array-literal.(p
69f60 6f 73 29 0a 20 20 28 6c 65 74 20 28 28 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 20 74 os)...(let.((after-lb-or-comma.t
69f80 29 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 74 74 20 65 6c 65 6d 73 20 70 ).........after-comma.tt.elems.p
69fa0 6e 20 77 61 73 2d 72 65 73 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29 n.was-rest.........(continue.t))
69fc0 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 .....(unless.js2-is-in-destructu
69fe0 72 69 6e 67 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 28 6d 61 6b 65 ring.......(js2-push-scope.(make
6a000 2d 6a 73 32 2d 73 63 6f 70 65 29 29 29 20 3b 20 66 6f 72 20 74 68 65 20 6c 65 67 61 63 79 20 61 -js2-scope))).;.for.the.legacy.a
6a020 72 72 61 79 20 63 6f 6d 70 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 rray.comp.....(while.continue...
6a040 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 ....(setq.tt.(js2-get-token))...
6a060 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 65 6e 64 20 6f 66 20 61 72 72 61 79 ....(cond........;;.end.of.array
6a080 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 52 42 29 0a 20 20 20 20 20 ........((or.(=.tt.js2-RB)......
6a0a0 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 46 29 29 20 20 3b 20 70 72 65 76 65 6e .......(=.tt.js2-EOF))..;.preven
6a0c0 74 20 69 6e 66 69 6e 69 74 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 74 t.infinite.loop.........(if.(=.t
6a0e0 74 20 6a 73 32 2d 45 4f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f t.js2-EOF).............(js2-repo
6a100 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e 61 72 67 22 20 6e 69 rt-error."msg.no.bracket.arg".ni
6a120 6c 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 61 66 74 65 72 l.pos)).........(when.(and.after
6a140 2d 63 6f 6d 6d 61 20 28 3c 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31 -comma.(<.js2-language-version.1
6a160 37 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d 74 70))...........(js2-parse-warn-t
6a180 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 20 22 6d 73 67 2e 61 72 72 61 79 2e 74 72 61 69 6c 69 6e railing-comma."msg.array.trailin
6a1a0 67 2e 63 6f 6d 6d 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.comma"........................
6a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 20 28 72 65 6d 6f 76 65 20 6e 69 ..................pos.(remove.ni
6a1e0 6c 20 65 6c 65 6d 73 29 20 61 66 74 65 72 2d 63 6f 6d 6d 61 29 29 0a 20 20 20 20 20 20 20 20 28 l.elems).after-comma)).........(
6a200 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 setq.continue.nil...............
6a220 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 pn.(make-js2-array-node.:pos.pos
6a240 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6a260 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 .......:len.(-.js2-ts-cursor.pos
6a280 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
6a2a0 20 20 20 20 20 20 20 20 3a 65 6c 65 6d 73 20 28 6e 72 65 76 65 72 73 65 20 65 6c 65 6d 73 29 29 ........:elems.(nreverse.elems))
6a2c0 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d ).........(apply.#'js2-node-add-
6a2e0 63 68 69 6c 64 72 65 6e 20 70 6e 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d children.pn.(js2-array-node-elem
6a300 73 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 61 6e 79 74 68 69 6e 67 20 61 66 74 65 72 s.pn)))........;;.anything.after
6a320 20 72 65 73 74 20 65 6c 65 6d 65 6e 74 20 28 2e 2e 2e 66 6f 6f 29 0a 20 20 20 20 20 20 20 28 77 .rest.element.(...foo)........(w
6a340 61 73 2d 72 65 73 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f as-rest.........(js2-report-erro
6a360 72 20 22 6d 73 67 2e 70 61 72 61 6d 2e 61 66 74 65 72 2e 72 65 73 74 22 29 29 0a 20 20 20 20 20 r."msg.param.after.rest"))......
6a380 20 20 3b 3b 20 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4d ..;;.comma........((=.tt.js2-COM
6a3a0 4d 41 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 28 6a MA).........(setq.after-comma.(j
6a3c0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28 s2-current-token-end)).........(
6a3e0 69 66 20 28 6e 6f 74 20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 29 0a 20 20 20 20 20 if.(not.after-lb-or-comma)......
6a400 20 20 20 20 20 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 20 74 .......(setq.after-lb-or-comma.t
6a420 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 69 6c 20 65 6c 65 6d 73 29 29 29 0a 20 )...........(push.nil.elems)))..
6a440 20 20 20 20 20 20 3b 3b 20 61 72 72 61 79 20 63 6f 6d 70 0a 20 20 20 20 20 20 20 28 28 61 6e 64 ......;;.array.comp........((and
6a460 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31 37 30 29 0a 20 .(>=.js2-language-version.170)..
6a480 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72 ............(not.js2-is-in-destr
6a4a0 75 63 74 75 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 ucturing)..............(=.tt.js2
6a4c0 2d 46 4f 52 29 20 20 20 20 20 20 20 20 20 20 3b 20 63 68 65 63 6b 20 66 6f 72 20 61 72 72 61 79 -FOR)..........;.check.for.array
6a4e0 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 .comprehension..............(not
6a500 20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 29 20 3b 20 22 66 6f 72 22 20 63 61 6e 27 .after-lb-or-comma).;."for".can'
6a520 74 20 66 6f 6c 6c 6f 77 20 61 20 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c t.follow.a.comma..............el
6a540 65 6d 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 75 73 74 20 68 61 76 ems...................;.must.hav
6a560 65 20 61 74 20 6c 65 61 73 74 20 31 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 e.at.least.1.element............
6a580 20 20 28 6e 6f 74 20 28 63 64 72 20 65 6c 65 6d 73 29 29 29 20 20 20 20 20 20 3b 20 62 75 74 20 ..(not.(cdr.elems)))......;.but.
6a5a0 6e 6f 20 32 6e 64 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 no.2nd.element.........(js2-unge
6a5c0 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 63 6f 6e 74 69 6e 75 65 20 t-token).........(setf.continue.
6a5e0 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d nil...............pn.(js2-parse-
6a600 6c 65 67 61 63 79 2d 61 72 72 61 79 2d 63 6f 6d 70 20 28 63 61 72 20 65 6c 65 6d 73 29 20 70 6f legacy-array-comp.(car.elems).po
6a620 73 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 61 6e 6f 74 68 65 72 20 65 6c 65 6d 65 6e 74 0a 20 s)))........;;.another.element..
6a640 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 61 66 74 65 72 2d 6c ......(t.........(unless.after-l
6a660 62 2d 6f 72 2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 b-or-comma...........(js2-report
6a680 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e 61 72 67 22 29 29 0a 20 20 -error."msg.no.bracket.arg"))...
6a6a0 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 54 52 49 50 4c 45 44 ......(if.(and.(=.tt.js2-TRIPLED
6a6c0 4f 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e OT)..................(>=.js2-lan
6a6e0 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 guage-version.200)).............
6a700 3b 3b 20 72 65 73 74 2f 73 70 72 65 61 64 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 ;;.rest/spread.operator.........
6a720 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 ....(progn...............(push.(
6a740 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 6e 69 6c 20 74 74 20 27 6a 73 32 2d 70 61 72 73 65 js2-make-unary.nil.tt.'js2-parse
6a760 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -assign-expr)...................
6a780 20 20 65 6c 65 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 69 ..elems)...............(if.js2-i
6a7a0 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s-in-destructuring..............
6a7c0 20 20 20 20 20 28 73 65 74 71 20 77 61 73 2d 72 65 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 .....(setq.was-rest.t)))........
6a7e0 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 ...(js2-unget-token)...........(
6a800 70 75 73 68 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 20 65 6c 65 push.(js2-parse-assign-expr).ele
6a820 6d 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 ms)).........(setq.after-lb-or-c
6a840 6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66 74 65 72 2d 63 6f 6d omma.nil...............after-com
6a860 6d 61 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 69 73 2d 69 6e ma.nil)))).....(unless.js2-is-in
6a880 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63 -destructuring.......(js2-pop-sc
6a8a0 6f 70 65 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 ope)).....pn))..(defun.js2-parse
6a8c0 2d 6c 65 67 61 63 79 2d 61 72 72 61 79 2d 63 6f 6d 70 20 28 65 78 70 72 20 70 6f 73 29 0a 20 20 -legacy-array-comp.(expr.pos)...
6a8e0 22 50 61 72 73 65 20 61 20 6c 65 67 61 63 79 20 61 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 "Parse.a.legacy.array.comprehens
6a900 69 6f 6e 20 28 4a 61 76 61 53 63 72 69 70 74 20 31 2e 37 29 2e 0a 45 58 50 52 20 69 73 20 74 68 ion.(JavaScript.1.7)..EXPR.is.th
6a920 65 20 66 69 72 73 74 20 65 78 70 72 65 73 73 69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 6f 70 65 e.first.expression.after.the.ope
6a940 6e 69 6e 67 20 6c 65 66 74 2d 62 72 61 63 6b 65 74 2e 0a 50 4f 53 20 69 73 20 74 68 65 20 62 65 ning.left-bracket..POS.is.the.be
6a960 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c 42 20 74 6f 6b 65 6e 20 70 72 65 63 65 64 69 6e ginning.of.the.LB.token.precedin
6a980 67 20 45 58 50 52 2e 0a 57 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 6a 75 73 74 20 70 61 72 73 g.EXPR..We.should.have.just.pars
6a9a0 65 64 20 74 68 65 20 60 66 6f 72 27 20 6b 65 79 77 6f 72 64 20 62 65 66 6f 72 65 20 63 61 6c 6c ed.the.`for'.keyword.before.call
6a9c0 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72 ing.this.function."...(let.((cur
6a9e0 72 65 6e 74 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 rent-scope.js2-current-scope)...
6aa00 20 20 20 20 20 20 6c 6f 6f 70 73 20 66 69 72 73 74 20 66 69 6c 74 65 72 20 72 65 73 75 6c 74 29 ......loops.first.filter.result)
6aa20 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 .....(unwind-protect.........(pr
6aa40 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d ogn...........(while.(js2-match-
6aa60 74 6f 6b 65 6e 20 6a 73 32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 token.js2-FOR).............(let.
6aa80 28 28 6c 6f 6f 70 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 ((loop.(make-js2-comp-loop-node)
6aaa0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 ))...............(js2-push-scope
6aac0 20 6c 6f 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6c 6f 6f 70 20 .loop)...............(push.loop.
6aae0 6c 6f 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d loops)...............(js2-parse-
6ab00 63 6f 6d 70 2d 6c 6f 6f 70 20 6c 6f 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 comp-loop.loop)))...........;;.F
6ab20 69 72 73 74 20 6c 6f 6f 70 20 74 61 6b 65 73 20 65 78 70 72 20 73 63 6f 70 65 27 73 20 70 61 72 irst.loop.takes.expr.scope's.par
6ab40 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d ent............(setf.(js2-scope-
6ab60 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 28 73 65 74 71 20 66 69 72 73 74 20 28 63 61 72 20 28 6c parent-scope.(setq.first.(car.(l
6ab80 61 73 74 20 6c 6f 6f 70 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ast.loops)))).................(j
6aba0 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 63 75 72 72 65 6e 74 2d 73 63 s2-scope-parent-scope.current-sc
6abc0 6f 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 65 78 70 72 20 73 63 6f 70 ope))...........;;.Set.expr.scop
6abe0 65 27 73 20 70 61 72 65 6e 74 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6c 6f 6f 70 2e 0a 20 20 20 e's.parent.to.the.last.loop.....
6ac00 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 .......(setf.(js2-scope-parent-s
6ac20 63 6f 70 65 20 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 29 20 28 63 61 72 20 6c 6f 6f 70 73 29 29 cope.current-scope).(car.loops))
6ac40 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 ...........(if.(/=.(js2-get-toke
6ac60 6e 29 20 6a 73 32 2d 49 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e n).js2-IF)...............(js2-un
6ac80 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c get-token).............(setq.fil
6aca0 74 65 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 ter.(js2-parse-condition))))....
6acc0 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6c 6f 6f 70 73 ...(dotimes.(_.(1-.(length.loops
6ace0 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29 29 0a 20 20 ))).........(js2-pop-scope)))...
6ad00 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42 20 22 6d 73 67 2e 6e 6f ..(js2-must-match.js2-RB."msg.no
6ad20 2e 62 72 61 63 6b 65 74 2e 61 72 67 22 20 70 6f 73 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73 .bracket.arg".pos).....(setq.res
6ad40 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 ult.(make-js2-comp-node.:pos.pos
6ad60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6ad80 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 ......:len.(-.js2-ts-cursor.pos)
6ada0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6adc0 20 20 20 20 20 20 3a 72 65 73 75 6c 74 20 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......:result.expr..............
6ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 6f 6f 70 73 20 28 ........................:loops.(
6ae00 6e 72 65 76 65 72 73 65 20 6c 6f 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nreverse.loops).................
6ae20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 69 6c 74 65 72 73 20 28 61 .....................:filters.(a
6ae40 6e 64 20 66 69 6c 74 65 72 20 28 6c 69 73 74 20 28 63 61 72 20 66 69 6c 74 65 72 29 29 29 0a 20 nd.filter.(list.(car.filter)))..
6ae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6ae80 20 20 20 20 3a 66 6f 72 6d 20 27 4c 45 47 41 43 59 5f 41 52 52 41 59 29 29 0a 20 20 20 20 3b 3b ....:form.'LEGACY_ARRAY)).....;;
6aea0 20 53 65 74 20 63 6f 6d 70 20 6c 6f 6f 70 27 73 20 70 61 72 65 6e 74 20 74 6f 20 74 68 65 20 6c .Set.comp.loop's.parent.to.the.l
6aec0 61 73 74 20 6c 6f 6f 70 2e 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 47 65 74 20 72 69 64 20 6f ast.loop......;;.TODO:.Get.rid.o
6aee0 66 20 74 68 65 20 62 6f 67 75 73 20 65 78 70 72 20 73 63 6f 70 65 2e 0a 20 20 20 20 28 73 65 74 f.the.bogus.expr.scope......(set
6af00 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 72 65 73 75 6c 74 f.(js2-scope-parent-scope.result
6af20 29 20 66 69 72 73 74 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 ).first).....(apply.#'js2-node-a
6af40 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 65 78 70 72 20 28 63 61 72 20 66 69 6c dd-children.result.expr.(car.fil
6af60 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 6c ter)............(js2-comp-node-l
6af80 6f 6f 70 73 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 oops.result)).....result))..(def
6afa0 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 63 6f 6d 70 20 28 70 6f 73 29 0a 20 20 un.js2-parse-array-comp.(pos)...
6afc0 22 50 61 72 73 65 20 61 6e 20 45 53 36 20 61 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f "Parse.an.ES6.array.comprehensio
6afe0 6e 2e 0a 50 4f 53 20 69 73 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c n..POS.is.the.beginning.of.the.L
6b000 42 20 74 6f 6b 65 6e 2e 0a 57 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 6a 75 73 74 20 70 61 72 B.token..We.should.have.just.par
6b020 73 65 64 20 74 68 65 20 60 66 6f 72 27 20 6b 65 79 77 6f 72 64 20 62 65 66 6f 72 65 20 63 61 6c sed.the.`for'.keyword.before.cal
6b040 6c 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6e ling.this.function."...(let.((pn
6b060 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 20 70 6f 73 20 27 41 .(js2-parse-comprehension.pos.'A
6b080 52 52 41 59 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d RRAY))).....(js2-must-match.js2-
6b0a0 52 42 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e 61 72 67 22 20 70 6f 73 29 0a 20 20 20 RB."msg.no.bracket.arg".pos)....
6b0c0 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 67 65 6e 65 72 61 74 6f .pn))..(defun.js2-parse-generato
6b0e0 72 2d 63 6f 6d 70 20 28 70 6f 73 29 0a 20 20 28 6c 65 74 2a 20 28 28 6a 73 32 2d 6e 65 73 74 69 r-comp.(pos)...(let*.((js2-nesti
6b100 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 20 28 31 2b 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f ng-of-function.(1+.js2-nesting-o
6b120 66 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 f-function))..........(js2-curre
6b140 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d nt-script-or-fn...........(make-
6b160 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 3a 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 js2-function-node.:generator-typ
6b180 65 20 27 43 4f 4d 50 52 45 48 45 4e 53 49 4f 4e 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6e 20 e.'COMPREHENSION))..........(pn.
6b1a0 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 20 70 6f 73 20 27 53 54 (js2-parse-comprehension.pos.'ST
6b1c0 41 52 5f 47 45 4e 45 52 41 54 4f 52 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 AR_GENERATOR))).....(js2-must-ma
6b1e0 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 22 20 70 6f 73 29 0a 20 tch.js2-RP."msg.no.paren".pos)..
6b200 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 72 65 ...pn))..(defun.js2-parse-compre
6b220 68 65 6e 73 69 6f 6e 20 28 70 6f 73 20 66 6f 72 6d 29 0a 20 20 28 6c 65 74 20 28 6c 6f 6f 70 73 hension.(pos.form)...(let.(loops
6b240 20 66 69 6c 74 65 72 73 20 65 78 70 72 20 72 65 73 75 6c 74 20 6c 61 73 74 29 0a 20 20 20 20 28 .filters.expr.result.last).....(
6b260 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 unwind-protect.........(progn...
6b280 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 ........(js2-unget-token).......
6b2a0 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d ....(while.(js2-match-token.js2-
6b2c0 46 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 6f 6f 70 20 28 6d 61 FOR).............(let.((loop.(ma
6b2e0 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 ke-js2-comp-loop-node)))........
6b300 20 20 20 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65 20 6c 6f 6f 70 29 0a 20 20 20 .......(js2-push-scope.loop)....
6b320 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6c 6f 6f 70 20 6c 6f 6f 70 73 29 0a 20 20 20 ...........(push.loop.loops)....
6b340 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 2d 6c 6f 6f 70 20 ...........(js2-parse-comp-loop.
6b360 6c 6f 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61 loop)))...........(while.(js2-ma
6b380 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 49 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 tch-token.js2-IF).............(p
6b3a0 75 73 68 20 28 63 61 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 29 20 ush.(car.(js2-parse-condition)).
6b3c0 66 69 6c 74 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 filters))...........(setq.expr.(
6b3e0 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 js2-parse-assign-expr)).........
6b400 20 20 28 73 65 74 71 20 6c 61 73 74 20 28 63 61 72 20 6c 6f 6f 70 73 29 29 29 0a 20 20 20 20 20 ..(setq.last.(car.loops)))......
6b420 20 28 64 6f 6c 69 73 74 20 28 5f 20 6c 6f 6f 70 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d .(dolist.(_.loops).........(js2-
6b440 70 6f 70 2d 73 63 6f 70 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 6d pop-scope))).....(setq.result.(m
6b460 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 ake-js2-comp-node.:pos.pos......
6b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6b4a0 3a 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 0a 20 20 20 20 20 :len.(-.js2-ts-cursor.pos)......
6b4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6b4e0 3a 72 65 73 75 6c 74 20 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :result.expr....................
6b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 6f 6f 70 73 20 28 6e 72 65 76 65 72 ..................:loops.(nrever
6b520 73 65 20 6c 6f 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 se.loops).......................
6b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 69 6c 74 65 72 73 20 28 6e 72 65 76 65 72 73 ...............:filters.(nrevers
6b560 65 20 66 69 6c 74 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.filters)......................
6b580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 20 66 6f 72 6d 29 29 0a 20 20 20 ................:form.form))....
6b5a0 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 .(apply.#'js2-node-add-children.
6b5c0 72 65 73 75 6c 74 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 6c 6f 6f 70 73 20 72 65 73 75 result.(js2-comp-node-loops.resu
6b5e0 6c 74 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 lt)).....(apply.#'js2-node-add-c
6b600 68 69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 65 78 70 72 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f hildren.result.expr.(js2-comp-no
6b620 64 65 2d 66 69 6c 74 65 72 73 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a de-filters.result)).....(setf.(j
6b640 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 72 65 73 75 6c 74 29 20 6c 61 s2-scope-parent-scope.result).la
6b660 73 74 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 st).....result))..(defun.js2-par
6b680 73 65 2d 63 6f 6d 70 2d 6c 6f 6f 70 20 28 70 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 6e 6c 79 2d se-comp-loop.(pn.&optional.only-
6b6a0 6f 66 2d 70 29 0a 20 20 22 50 61 72 73 65 20 61 20 60 66 6f 72 20 5b 65 61 63 68 5d 20 28 66 6f of-p)..."Parse.a.`for.[each].(fo
6b6c0 6f 20 5b 69 6e 7c 6f 66 5d 20 62 61 72 29 27 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 61 6e o.[in|of].bar)'.expression.in.an
6b6e0 20 41 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 2e 0a 54 68 65 20 63 75 72 72 65 6e .Array.comprehension..The.curren
6b700 74 20 74 6f 6b 65 6e 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 69 6e 69 74 69 61 6c 20 46 4f t.token.should.be.the.initial.FO
6b720 52 2e 0a 49 66 20 4f 4e 4c 59 2d 4f 46 2d 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 6e 6c 79 R..If.ONLY-OF-P.is.non-nil,.only
6b740 20 74 68 65 20 60 66 6f 72 20 28 66 6f 6f 20 6f 66 20 62 61 72 29 27 20 66 6f 72 6d 20 69 73 20 .the.`for.(foo.of.bar)'.form.is.
6b760 61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 6f 6d 70 allowed."...(let.((pos.(js2-comp
6b780 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20 74 74 20 69 -loop-node-pos.pn)).........tt.i
6b7a0 74 65 72 20 6f 62 6a 20 66 6f 72 65 61 63 68 2d 70 20 66 6f 72 6f 66 2d 70 20 69 6e 2d 70 6f 73 ter.obj.foreach-p.forof-p.in-pos
6b7c0 20 65 61 63 68 2d 70 6f 73 20 6c 70 20 72 70 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 .each-pos.lp.rp).....(when.(and.
6b7e0 28 6e 6f 74 20 6f 6e 6c 79 2d 6f 66 2d 70 29 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e (not.only-of-p).(js2-match-token
6b800 20 6a 73 32 2d 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28 .js2-NAME)).......(if.(string=.(
6b820 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 20 22 65 61 63 68 22 js2-current-token-string)."each"
6b840 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 )...........(progn.............(
6b860 73 65 74 71 20 66 6f 72 65 61 63 68 2d 70 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 setq.foreach-p.t................
6b880 20 20 20 65 61 63 68 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 ...each-pos.(-.(js2-current-toke
6b8a0 6e 2d 62 65 67 29 20 70 6f 73 29 29 20 3b 20 72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 20 20 n-beg).pos)).;.relative.........
6b8c0 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d ....(js2-record-face.'font-lock-
6b8e0 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f keyword-face)).........(js2-repo
6b900 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 29 29 29 0a 20 rt-error."msg.no.paren.for")))..
6b920 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d ...(if.(js2-must-match.js2-LP."m
6b940 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 sg.no.paren.for").........(setq.
6b960 6c 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f lp.(-.(js2-current-token-beg).po
6b980 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 s))).....(setq.tt.(js2-peek-toke
6b9a0 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 n)).....(cond......((or.(=.tt.js
6b9c0 32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 4c 43 29 29 0a 20 2-LB)...........(=.tt.js2-LC))..
6b9e0 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71 .....(js2-get-token).......(setq
6ba00 20 69 74 65 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d 61 72 .iter.(js2-parse-destruct-primar
6ba20 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 64 65 73 74 72 y-expr)).......(js2-define-destr
6ba40 75 63 74 2d 73 79 6d 62 6f 6c 73 20 69 74 65 72 20 6a 73 32 2d 4c 45 54 0a 20 20 20 20 20 20 20 uct-symbols.iter.js2-LET........
6ba60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e ............................'fon
6ba80 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 20 74 29 29 0a 20 20 t-lock-variable-name-face.t))...
6baa0 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 ...((js2-match-token.js2-NAME)..
6bac0 20 20 20 20 20 28 73 65 74 71 20 69 74 65 72 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 .....(setq.iter.(js2-create-name
6bae0 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f -node)))......(t.......(js2-repo
6bb00 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 76 61 72 22 29 29 29 0a 20 20 20 20 3b 3b rt-error."msg.bad.var"))).....;;
6bb20 20 44 65 66 69 6e 65 20 61 73 20 61 20 6c 65 74 20 73 69 6e 63 65 20 77 65 20 77 61 6e 74 20 74 .Define.as.a.let.since.we.want.t
6bb40 68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 74 6f 0a 20 20 20 20 he.scope.of.the.variable.to.....
6bb60 3b 3b 20 62 65 20 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 65 20 61 72 72 61 79 20 63 6f ;;.be.restricted.to.the.array.co
6bb80 6d 70 72 65 68 65 6e 73 69 6f 6e 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f mprehension.....(if.(js2-name-no
6bba0 64 65 2d 70 20 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 de-p.iter).........(js2-define-s
6bbc0 79 6d 62 6f 6c 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d ymbol.js2-LET.(js2-name-node-nam
6bbe0 65 20 69 74 65 72 29 20 70 6e 20 74 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 61 6e 64 20 e.iter).pn.t)).....(if.(or.(and.
6bc00 28 6e 6f 74 20 6f 6e 6c 79 2d 6f 66 2d 70 29 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e (not.only-of-p).(js2-match-token
6bc20 20 6a 73 32 2d 49 4e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 6a .js2-IN)).............(and.(>=.j
6bc40 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 s2-language-version.200)........
6bc60 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d ..........(js2-match-contextual-
6bc80 6b 77 64 20 22 6f 66 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 kwd."of")..................(setq
6bca0 20 66 6f 72 6f 66 2d 70 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 2d 70 .forof-p.t))).........(setq.in-p
6bcc0 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f os.(-.(js2-current-token-beg).po
6bce0 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 s)).......(js2-report-error."msg
6bd00 2e 69 6e 2e 61 66 74 65 72 2e 66 6f 72 2e 6e 61 6d 65 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 .in.after.for.name")).....(setq.
6bd20 6f 62 6a 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 28 69 66 20 28 6a obj.(js2-parse-expr)).....(if.(j
6bd40 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 s2-must-match.js2-RP."msg.no.par
6bd60 65 6e 2e 66 6f 72 2e 63 74 72 6c 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 70 20 28 en.for.ctrl").........(setq.rp.(
6bd80 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 -.(js2-current-token-beg).pos)))
6bda0 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 20 70 6f 73 .....(setf.(js2-node-pos.pn).pos
6bdc0 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 ...........(js2-node-len.pn).(-.
6bde0 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 js2-ts-cursor.pos)...........(js
6be00 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 70 6e 29 20 69 74 2-comp-loop-node-iterator.pn).it
6be20 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 er...........(js2-comp-loop-node
6be40 2d 6f 62 6a 65 63 74 20 70 6e 29 20 6f 62 6a 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 -object.pn).obj...........(js2-c
6be60 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 6e 2d 70 6f 73 20 70 6e 29 20 69 6e 2d 70 6f 73 0a omp-loop-node-in-pos.pn).in-pos.
6be80 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 65 61 ..........(js2-comp-loop-node-ea
6bea0 63 68 2d 70 6f 73 20 70 6e 29 20 65 61 63 68 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 28 6a ch-pos.pn).each-pos...........(j
6bec0 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 66 6f 72 65 61 63 68 2d 70 20 70 6e 29 20 s2-comp-loop-node-foreach-p.pn).
6bee0 66 6f 72 65 61 63 68 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f foreach-p...........(js2-comp-lo
6bf00 6f 70 2d 6e 6f 64 65 2d 66 6f 72 6f 66 2d 70 20 70 6e 29 20 66 6f 72 6f 66 2d 70 0a 20 20 20 20 op-node-forof-p.pn).forof-p.....
6bf20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 6c 70 20 70 6e 29 ......(js2-comp-loop-node-lp.pn)
6bf40 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 .lp...........(js2-comp-loop-nod
6bf60 65 2d 72 70 20 70 6e 29 20 72 70 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 e-rp.pn).rp).....(js2-node-add-c
6bf80 68 69 6c 64 72 65 6e 20 70 6e 20 69 74 65 72 20 6f 62 6a 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 hildren.pn.iter.obj).....pn))..(
6bfa0 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73 74 6d 74 20 28 29 0a 20 20 defun.js2-parse-class-stmt.()...
6bfc0 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 (let.((pos.(js2-current-token-be
6bfe0 67 29 29 0a 20 20 20 20 20 20 20 20 28 5f 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 6e g)).........(_.(js2-must-match-n
6c000 61 6d 65 20 22 6d 73 67 2e 75 6e 6e 61 6d 65 64 2e 63 6c 61 73 73 2e 73 74 6d 74 22 29 29 0a 20 ame."msg.unnamed.class.stmt"))..
6c020 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f .......(name.(js2-create-name-no
6c040 64 65 20 74 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6a 73 32 2d 6e de.t))).....(js2-set-face.(js2-n
6c060 6f 64 65 2d 70 6f 73 20 6e 61 6d 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 6e 61 6d 65 ode-pos.name).(js2-node-end.name
6c080 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 74 )...................'font-lock-t
6c0a0 79 70 65 2d 66 61 63 65 20 27 72 65 63 6f 72 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 ype-face.'record).....(let.((nod
6c0c0 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 20 70 6f 73 20 27 43 4c 41 53 53 5f 53 54 e.(js2-parse-class.pos.'CLASS_ST
6c0e0 41 54 45 4d 45 4e 54 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 ATEMENT.name))).......(js2-recor
6c100 64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 64 65 20 6e 61 6d 65 29 0a 20 20 20 d-imenu-functions.node.name)....
6c120 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d 46 55 4e 43 54 49 ...(js2-define-symbol.js2-FUNCTI
6c140 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 ON..........................(js2
6c160 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 -name-node-name.name)...........
6c180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 6e 6f 64 65 29 ...............node).......node)
6c1a0 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 65 78 70 72 20 ))..(defun.js2-parse-class-expr.
6c1c0 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b ()...(let.((pos.(js2-current-tok
6c1e0 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 29 0a 20 20 20 20 28 77 68 65 6e en-beg)).........name).....(when
6c200 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 .(js2-match-token.js2-NAME).....
6c220 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f ..(setq.name.(js2-create-name-no
6c240 64 65 20 74 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 20 70 6f 73 de.t))).....(js2-parse-class.pos
6c260 20 27 43 4c 41 53 53 5f 45 58 50 52 45 53 53 49 4f 4e 20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 .'CLASS_EXPRESSION.name)))..(def
6c280 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 20 28 70 6f 73 20 66 6f 72 6d 20 6e 61 6d un.js2-parse-class.(pos.form.nam
6c2a0 65 29 0a 20 20 3b 3b 20 63 6c 61 73 73 20 58 20 5b 65 78 74 65 6e 64 73 20 2e 2e 2e 5d 20 7b 0a e)...;;.class.X.[extends....].{.
6c2c0 20 20 28 6c 65 74 20 28 70 6e 20 65 6c 65 6d 73 20 65 78 74 65 6e 64 73 29 0a 20 20 20 20 28 69 ..(let.(pn.elems.extends).....(i
6c2e0 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 45 58 54 45 4e 44 53 29 0a f.(js2-match-token.js2-EXTENDS).
6c300 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 ........(if.(=.(js2-peek-token).
6c320 6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d js2-LC).............(js2-report-
6c340 65 72 72 6f 72 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 65 78 74 65 6e 64 73 22 29 0a 20 20 20 error."msg.missing.extends")....
6c360 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 73 64 68 29 3a 20 74 68 69 73 20 73 68 6f 75 6c 64 .......;;.TODO(sdh):.this.should
6c380 20 62 65 20 6c 65 66 74 2d 68 61 6e 64 2d 73 69 64 65 2d 65 78 70 72 2c 20 6e 6f 74 20 61 73 73 .be.left-hand-side-expr,.not.ass
6c3a0 69 67 6e 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 74 65 6e 64 73 ign-expr...........(setq.extends
6c3c0 20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 .(js2-parse-assign-expr)).......
6c3e0 20 20 20 20 28 69 66 20 28 6e 6f 74 20 65 78 74 65 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 ....(if.(not.extends)...........
6c400 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 65 ....(js2-report-error."msg.bad.e
6c420 78 74 65 6e 64 73 22 29 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 xtends")))).....(js2-must-match.
6c440 6a 73 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 63 6c 61 73 73 22 29 0a 20 20 20 js2-LC."msg.no.brace.class")....
6c460 20 28 73 65 74 71 20 65 6c 65 6d 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d 6c .(setq.elems.(js2-parse-object-l
6c480 69 74 65 72 61 6c 2d 65 6c 65 6d 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 iteral-elems.t)...........pn.(ma
6c4a0 6b 65 2d 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 ke-js2-class-node.:pos.pos......
6c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 .............................:le
6c4e0 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 n.(-.js2-ts-cursor.pos).........
6c500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 20 ..........................:form.
6c520 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 form............................
6c540 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......:name.name...............
6c560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 74 65 6e 64 73 20 65 78 74 ....................:extends.ext
6c580 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ends............................
6c5a0 20 20 20 20 20 20 20 3a 65 6c 65 6d 73 20 65 6c 65 6d 73 29 29 0a 20 20 20 20 28 61 70 70 6c 79 .......:elems.elems)).....(apply
6c5c0 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 .#'js2-node-add-children........
6c5e0 20 20 20 20 70 6e 20 6e 61 6d 65 20 65 78 74 65 6e 64 73 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e ....pn.name.extends.(js2-class-n
6c600 6f 64 65 2d 65 6c 65 6d 73 20 70 6e 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 ode-elems.pn)).....pn))..(defun.
6c620 6a 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 28 29 0a 20 20 28 6c js2-parse-object-literal.()...(l
6c640 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 et*.((pos.(js2-current-token-beg
6c660 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6c 65 6d 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f 62 ))..........(elems.(js2-parse-ob
6c680 6a 65 63 74 2d 6c 69 74 65 72 61 6c 2d 65 6c 65 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 ject-literal-elems))..........(r
6c6a0 65 73 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20 3a 70 6f 73 esult.(make-js2-object-node.:pos
6c6c0 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .pos............................
6c6e0 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f ............:len.(-.js2-ts-curso
6c700 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.pos)..........................
6c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6c 65 6d 73 20 65 6c 65 6d 73 29 29 29 0a 20 20 ..............:elems.elems)))...
6c740 20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e ..(apply.#'js2-node-add-children
6c760 20 72 65 73 75 6c 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 72 .result.(js2-object-node-elems.r
6c780 65 73 75 6c 74 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 esult)).....result))..(defun.js2
6c7a0 2d 70 72 6f 70 65 72 74 79 2d 6b 65 79 2d 73 74 72 69 6e 67 20 28 70 72 6f 70 65 72 74 79 2d 6e -property-key-string.(property-n
6c7c0 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6b 65 79 20 6f 66 20 50 52 4f 50 45 52 ode)..."Return.the.key.of.PROPER
6c7e0 54 59 2d 4e 4f 44 45 20 28 61 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 TY-NODE.(a.`js2-object-prop-node
6c800 27 20 6f 72 0a 60 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 27 29 20 61 73 20 61 20 73 74 72 '.or.`js2-method-node').as.a.str
6c820 69 6e 67 2c 20 6f 72 20 6e 69 6c 20 69 66 20 69 74 20 63 61 6e 27 74 20 62 65 0a 72 65 70 72 65 ing,.or.nil.if.it.can't.be.repre
6c840 73 65 6e 74 65 64 20 61 73 20 61 20 73 74 72 69 6e 67 20 28 65 2e 67 2e 2c 20 74 68 65 20 6b 65 sented.as.a.string.(e.g.,.the.ke
6c860 79 20 69 73 20 63 6f 6d 70 75 74 65 64 20 62 79 20 61 6e 0a 65 78 70 72 65 73 73 69 6f 6e 29 2e y.is.computed.by.an.expression).
6c880 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 70 20 "...(cond....((js2-unary-node-p.
6c8a0 70 72 6f 70 65 72 74 79 2d 6e 6f 64 65 29 20 6e 69 6c 29 20 3b 3b 20 7b 2e 2e 2e 66 6f 6f 7d 0a property-node).nil).;;.{...foo}.
6c8c0 20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 6a 73 32 2d 69 6e 66 69 78 2d ...(t.....(let.((key.(js2-infix-
6c8e0 6e 6f 64 65 2d 6c 65 66 74 20 70 72 6f 70 65 72 74 79 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 node-left.property-node)))......
6c900 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e .(when.(js2-computed-prop-name-n
6c920 6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 6a 73 ode-p.key).........(setq.key.(js
6c940 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6b 2-computed-prop-name-node-expr.k
6c960 65 79 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6e ey))).......(cond........((js2-n
6c980 61 6d 65 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d ame-node-p.key).........(js2-nam
6c9a0 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 73 e-node-name.key))........((js2-s
6c9c0 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 tring-node-p.key).........(js2-s
6c9e0 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 28 28 tring-node-value.key))........((
6ca00 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 js2-number-node-p.key).........(
6ca20 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6b 65 79 29 29 29 29 29 29 29 js2-number-node-value.key)))))))
6ca40 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 ..(defun.js2-parse-object-litera
6ca60 6c 2d 65 6c 65 6d 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 61 73 73 2d 70 29 0a 20 20 28 6c l-elems.(&optional.class-p)...(l
6ca80 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 et.((pos.(js2-current-token-beg)
6caa0 29 0a 20 20 20 20 20 20 20 20 28 73 74 61 74 69 63 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 ).........(static.nil).........(
6cac0 63 6f 6e 74 69 6e 75 65 20 74 29 0a 20 20 20 20 20 20 20 20 74 74 20 65 6c 65 6d 73 20 65 6c 65 continue.t).........tt.elems.ele
6cae0 6d 0a 20 20 20 20 20 20 20 20 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 20 70 72 65 76 69 6f m.........elem-key-string.previo
6cb00 75 73 2d 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 us-elem-key-string.........after
6cb20 2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 70 72 65 76 2d 70 6f 73 20 73 74 61 72 2d 70 20 74 -comma.........prev-pos.star-p.t
6cb40 79 70 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a ype-string).....(while.continue.
6cb60 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 6f 75 74 20 61 6e 79 20 6c 6f 6f 6b 61 68 65 61 64 ......;;.Clear.out.any.lookahead
6cb80 20 74 6f 6b 65 6e 73 20 28 70 6f 73 73 69 62 6c 79 20 77 72 6f 6e 67 20 6d 6f 64 69 66 69 65 72 .tokens.(possibly.wrong.modifier
6cba0 29 2e 0a 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 44 65 61 6c 20 77 69 74 68 20 74 68 69 )........;;.FIXME:.Deal.with.thi
6cbc0 73 20 70 72 6f 62 6c 65 6d 20 69 6e 20 61 20 6d 6f 72 65 20 73 79 73 74 65 6d 61 74 69 63 20 66 s.problem.in.a.more.systematic.f
6cbe0 61 73 68 69 6f 6e 2e 0a 20 20 20 20 20 20 3b 3b 20 50 65 72 68 61 70 73 20 62 79 20 6d 61 6b 69 ashion........;;.Perhaps.by.maki
6cc00 6e 67 20 74 68 69 73 20 6d 6f 64 69 66 69 65 72 20 61 66 66 65 63 74 20 6e 6f 74 20 68 6f 77 20 ng.this.modifier.affect.not.how.
6cc20 74 68 65 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 3b 3b 20 73 74 72 75 63 74 20 76 61 6c 75 65 20 the.token.......;;.struct.value.
6cc40 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 2c 20 62 75 74 20 77 68 61 74 20 6a 73 32 2d 67 65 74 is.constructed,.but.what.js2-get
6cc60 2d 74 6f 6b 65 6e 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 20 3b 3b 20 62 61 73 65 64 20 6f 6e -token.returns.......;;.based.on
6cc80 20 69 74 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 .it........(when.(>.js2-ti-looka
6cca0 68 65 61 64 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 6c 6f 6f head.0).........(setq.js2-ti-loo
6ccc0 6b 61 68 65 61 64 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 63 kahead.0).........(setq.js2-ts-c
6cce0 75 72 73 6f 72 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a ursor.(js2-current-token-end))).
6cd00 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d ......(setq.tt.(js2-get-prop-nam
6cd20 65 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 69 63 20 6e 69 6c 0a e-token).............static.nil.
6cd40 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 ............elem.nil............
6cd60 20 70 72 65 76 2d 70 6f 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 2d 70 .prev-pos.nil.............star-p
6cd80 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 2d 73 74 72 69 6e 67 20 6e 69 6c .nil.............type-string.nil
6cda0 29 0a 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 27 73 74 61 74 69 63 27 20 6b 65 79 77 6f ).......;;.Handle.'static'.keywo
6cdc0 72 64 20 6f 6e 6c 79 20 69 66 20 77 65 27 72 65 20 69 6e 20 61 20 63 6c 61 73 73 0a 20 20 20 20 rd.only.if.we're.in.a.class.....
6cde0 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6c 61 73 73 2d 70 20 28 3d 20 6a 73 32 2d 4e 41 4d 45 ..(when.(and.class-p.(=.js2-NAME
6ce00 20 74 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 22 .tt)..................(string=."
6ce20 73 74 61 74 69 63 22 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e static".(js2-current-token-strin
6ce40 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 g))).........(js2-record-face.'f
6ce60 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 ont-lock-keyword-face).........(
6ce80 73 65 74 71 20 73 74 61 74 69 63 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 setq.static.t...............tt.(
6cea0 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 js2-get-prop-name-token)))......
6cec0 20 3b 3b 20 48 61 6e 64 6c 65 20 67 65 74 74 65 72 2c 20 73 65 74 74 65 72 20 61 6e 64 20 61 73 .;;.Handle.getter,.setter.and.as
6cee0 79 6e 63 20 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 20 28 6a ync.methods.......(let.((prop.(j
6cf00 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 s2-current-token-string)))......
6cf20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 ...(when.(and.(>=.js2-language-v
6cf40 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ersion.200)....................(
6cf60 3d 20 6a 73 32 2d 4e 41 4d 45 20 74 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.js2-NAME.tt)..................
6cf80 20 20 28 6d 65 6d 62 65 72 20 70 72 6f 70 20 27 28 22 67 65 74 22 20 22 73 65 74 22 20 22 61 73 ..(member.prop.'("get"."set"."as
6cfa0 79 6e 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 ync"))....................(memq.
6cfc0 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 20 27 4b 45 59 57 4f 52 44 5f 49 53 5f 4e 41 4d 45 (js2-peek-token.'KEYWORD_IS_NAME
6cfe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 20 2c 6a )..........................`(.,j
6d000 73 32 2d 4e 41 4d 45 20 2c 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 20 2c 6a 73 32 2d 53 s2-NAME.,js2-PRIVATE_NAME.,js2-S
6d020 54 52 49 4e 47 20 2c 6a 73 32 2d 4e 55 4d 42 45 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TRING.,js2-NUMBER...............
6d040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6a 73 32 2d 4c 42 20 2c 6a 73 32 2d 4d 55 4c 29 29 ..............,js2-LB.,js2-MUL))
6d060 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f )...........(js2-record-face.'fo
6d080 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 nt-lock-keyword-face)...........
6d0a0 28 73 65 74 71 20 74 79 70 65 2d 73 74 72 69 6e 67 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 (setq.type-string.prop..........
6d0c0 20 20 20 20 20 20 20 70 72 65 76 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b .......prev-pos.(js2-current-tok
6d0e0 65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d en-beg).................tt.(js2-
6d100 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 29 29 0a 20 20 20 20 20 20 3b 3b get-prop-name-token)))).......;;
6d120 20 48 61 6e 64 6c 65 20 67 65 6e 65 72 61 74 6f 72 20 2a 20 62 65 66 6f 72 65 20 74 68 65 20 70 .Handle.generator.*.before.the.p
6d140 72 6f 70 65 72 74 79 20 6e 61 6d 65 20 66 6f 72 20 69 6e 2d 6c 69 6e 65 20 66 75 6e 63 74 69 6f roperty.name.for.in-line.functio
6d160 6e 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 ns.......(when.(and.(>=.js2-lang
6d180 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uage-version.200)...............
6d1a0 20 20 20 28 3d 20 6a 73 32 2d 4d 55 4c 20 74 74 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...(=.js2-MUL.tt)).........(js2-
6d1c0 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 record-face.'font-lock-keyword-f
6d1e0 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 2d 70 20 74 0a 20 20 20 20 ace).........(setq.star-p.t.....
6d200 20 20 20 20 20 20 20 20 20 20 70 72 65 76 2d 70 6f 73 20 28 6f 72 20 70 72 65 76 2d 70 6f 73 20 ..........prev-pos.(or.prev-pos.
6d220 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 (js2-current-token-beg))........
6d240 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b .......tt.(js2-get-prop-name-tok
6d260 65 6e 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 52 65 73 74 en))).......(cond........;;.Rest
6d280 2f 73 70 72 65 61 64 20 28 2e 2e 2e 65 78 70 72 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 /spread.(...expr)........((and.(
6d2a0 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 >=.js2-language-version.200)....
6d2c0 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 63 6c 61 73 73 2d 70 29 20 28 6e 6f 74 20 73 74 61 ..........(not.class-p).(not.sta
6d2e0 74 69 63 29 20 28 6e 6f 74 20 74 79 70 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 tic).(not.type-string)..........
6d300 20 20 20 20 28 3d 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 20 74 74 29 29 0a 20 20 20 20 20 20 ....(=.js2-TRIPLEDOT.tt)).......
6d320 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 ..(setq.after-comma.nil.........
6d340 20 20 20 20 20 20 65 6c 65 6d 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 6e 69 6c 20 6a ......elem.(js2-make-unary.nil.j
6d360 73 32 2d 54 52 49 50 4c 45 44 4f 54 20 27 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 s2-TRIPLEDOT.'js2-parse-assign-e
6d380 78 70 72 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 46 6f 75 6e 64 20 61 20 6b 65 79 2f 76 61 6c xpr)))........;;.Found.a.key/val
6d3a0 75 65 20 70 72 6f 70 65 72 74 79 20 28 6f 66 20 61 6e 79 20 73 6f 72 74 29 0a 20 20 20 20 20 20 ue.property.(of.any.sort).......
6d3c0 20 28 28 6d 65 6d 71 20 74 74 20 60 28 2c 6a 73 32 2d 4e 41 4d 45 20 2c 6a 73 32 2d 50 52 49 56 .((memq.tt.`(,js2-NAME.,js2-PRIV
6d3e0 41 54 45 5f 4e 41 4d 45 20 2c 6a 73 32 2d 53 54 52 49 4e 47 20 2c 6a 73 32 2d 4e 55 4d 42 45 52 ATE_NAME.,js2-STRING.,js2-NUMBER
6d400 20 2c 6a 73 32 2d 4c 42 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 63 .,js2-LB)).........(setq.after-c
6d420 6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 20 28 6a 73 32 omma.nil...............elem.(js2
6d440 2d 70 61 72 73 65 2d 6e 61 6d 65 64 2d 70 72 6f 70 20 74 74 20 70 72 65 76 2d 70 6f 73 20 74 79 -parse-named-prop.tt.prev-pos.ty
6d460 70 65 2d 73 74 72 69 6e 67 20 73 74 61 72 2d 70 20 63 6c 61 73 73 2d 70 29 29 0a 20 20 20 20 20 pe-string.star-p.class-p))......
6d480 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75 6c 6c 20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 ...(if.(and.(null.elem).........
6d4a0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6a 73 32 2d 72 65 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 .........(not.js2-recover-from-p
6d4c0 61 72 73 65 2d 65 72 72 6f 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 arse-errors)).............(setq.
6d4e0 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 42 72 65 61 6b 20 continue.nil)))........;;.Break.
6d500 6f 75 74 20 6f 66 20 6c 6f 6f 70 2c 20 61 6e 64 20 68 61 6e 64 6c 65 20 74 72 61 69 6c 69 6e 67 out.of.loop,.and.handle.trailing
6d520 20 63 6f 6d 6d 61 73 2e 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 52 .commas.........((or.(=.tt.js2-R
6d540 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 46 29 29 0a 20 C).............(=.tt.js2-EOF))..
6d560 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 .......(js2-unget-token)........
6d580 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 69 66 .(setq.continue.nil).........(if
6d5a0 20 61 66 74 65 72 2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 .after-comma.............(js2-pa
6d5c0 72 73 65 2d 77 61 72 6e 2d 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 20 22 6d 73 67 2e 65 78 74 rse-warn-trailing-comma."msg.ext
6d5e0 72 61 2e 74 72 61 69 6c 69 6e 67 2e 63 6f 6d 6d 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ra.trailing.comma"..............
6d600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f ..............................po
6d620 73 20 65 6c 65 6d 73 20 61 66 74 65 72 2d 63 6f 6d 6d 61 29 29 29 0a 20 20 20 20 20 20 20 3b 3b s.elems.after-comma)))........;;
6d640 20 53 6b 69 70 20 73 65 6d 69 63 6f 6c 6f 6e 73 20 69 6e 20 61 20 63 6c 61 73 73 20 62 6f 64 79 .Skip.semicolons.in.a.class.body
6d660 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 63 6c 61 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ........((and.class-p...........
6d680 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 53 45 4d 49 29 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 29 ...(=.tt.js2-SEMI)).........nil)
6d6a0 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 63 6c 61 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 ........((and.class-p...........
6d6c0 20 20 20 28 65 71 20 74 74 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 ...(eq.tt.js2-LC)).........(setq
6d6e0 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 .after-comma.nil...............e
6d700 6c 65 6d 20 28 6a 73 32 2d 70 61 72 73 65 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 28 lem.(js2-parse-block)))........(
6d720 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 t.........(js2-report-error."msg
6d740 2e 62 61 64 2e 70 72 6f 70 22 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d .bad.prop").........(unless.js2-
6d760 72 65 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 recover-from-parse-errors.......
6d780 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 20 20 20 20 20 20 ....(setq.continue.nil))))......
6d7a0 20 20 20 3b 20 65 6e 64 20 73 77 69 74 63 68 0a 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 ...;.end.switch.......;;.Handle.
6d7c0 73 74 61 74 69 63 20 66 6f 72 20 63 6c 61 73 73 65 73 27 20 63 6f 64 65 67 65 6e 2e 0a 20 20 20 static.for.classes'.codegen.....
6d7e0 20 20 20 28 69 66 20 73 74 61 74 69 63 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 6c 65 6d ...(if.static...........(if.elem
6d800 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70 72 6f 70 20 65 6c 65 6d 20 27 53 54 41 54 49 43 .(js2-node-set-prop.elem.'STATIC
6d820 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f .t).............(js2-report-erro
6d840 72 20 22 6d 73 67 2e 75 6e 65 78 70 65 63 74 65 64 2e 73 74 61 74 69 63 22 29 29 29 0a 20 20 20 r."msg.unexpected.static")))....
6d860 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 63 6f 6d 6d 61 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f ...;;.Handle.commas,.depending.o
6d880 6e 20 63 6c 61 73 73 2d 70 2e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6b 20 28 6a 73 32 n.class-p........(let.((tok.(js2
6d8a0 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 -get-prop-name-token))).........
6d8c0 28 69 66 20 28 65 71 20 74 6f 6b 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 20 (if.(eq.tok.js2-COMMA)..........
6d8e0 20 20 20 28 69 66 20 63 6c 61 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...(if.class-p.................(
6d900 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 63 6c 61 73 73 2e 75 6e 65 78 js2-report-error."msg.class.unex
6d920 70 65 63 74 65 64 2e 63 6f 6d 6d 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 pected.comma")...............(se
6d940 74 71 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 tq.after-comma.(js2-current-toke
6d960 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f n-end)))...........(js2-unget-to
6d980 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 63 6c 61 73 73 2d 70 20 28 ken)...........(unless.class-p.(
6d9a0 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 setq.continue.nil)))).......(whe
6d9c0 6e 20 65 6c 65 6d 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d 69 6e n.elem.........(when.(and.js2-in
6d9e0 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 -use-strict-directive...........
6da00 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 20 28 .........(setq.elem-key-string.(
6da20 6a 73 32 2d 70 72 6f 70 65 72 74 79 2d 6b 65 79 2d 73 74 72 69 6e 67 20 65 6c 65 6d 29 29 0a 20 js2-property-key-string.elem))..
6da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 ..................(cl-some......
6da60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 65 76 69 6f 75 73 ...............(lambda.(previous
6da80 2d 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e -elem).......................(an
6daa0 64 20 28 73 65 74 71 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 d.(setq.previous-elem-key-string
6dac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6dae0 20 20 28 6a 73 32 2d 70 72 6f 70 65 72 74 79 2d 6b 65 79 2d 73 74 72 69 6e 67 20 70 72 65 76 69 ..(js2-property-key-string.previ
6db00 6f 75 73 2d 65 6c 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ous-elem))......................
6db20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 69 ......;;.Check.if.the.property.i
6db40 73 20 61 20 64 75 70 6c 69 63 61 74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.a.duplicate...................
6db60 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d ..........(string=.previous-elem
6db80 2d 6b 65 79 2d 73 74 72 69 6e 67 20 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 29 0a 20 20 20 -key-string.elem-key-string)....
6dba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 74 20 6d ........................;;.But.m
6dbc0 61 6b 65 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 66 6f 72 20 67 65 74 74 65 72 20 2f 20 73 65 ake.an.exception.for.getter./.se
6dbe0 74 74 65 72 20 70 61 69 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tter.pairs......................
6dc00 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 .......(not.(and.(js2-method-nod
6dc20 65 2d 70 20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-p.elem).......................
6dc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d ...............(js2-method-node-
6dc60 70 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.previous-elem)................
6dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 79 70 ......................(let.((typ
6dca0 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 28 6a 73 32 2d 6d 65 74 68 6f 64 e.(js2-node-get-prop.(js2-method
6dcc0 2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 6c 65 6d 29 20 27 4d 45 54 48 4f 44 5f 54 59 50 45 29 29 -node-right.elem).'METHOD_TYPE))
6dce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6dd00 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 74 79 70 65 20 28 6a 73 32 2d ............(previous-type.(js2-
6dd20 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 72 node-get-prop.(js2-method-node-r
6dd40 69 67 68 74 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d 29 20 27 4d 45 54 48 4f 44 5f 54 59 50 45 ight.previous-elem).'METHOD_TYPE
6dd60 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))).............................
6dd80 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 74 79 70 65 20 27 28 47 ...........(and.(member.type.'(G
6dda0 45 54 20 53 45 54 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ET.SET))........................
6ddc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 70 72 65 .....................(member.pre
6dde0 76 69 6f 75 73 2d 74 79 70 65 20 27 28 47 45 54 20 53 45 54 29 29 0a 20 20 20 20 20 20 20 20 20 vious-type.'(GET.SET))..........
6de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6de20 20 20 20 28 6e 6f 74 20 28 65 71 20 74 79 70 65 20 70 72 65 76 69 6f 75 73 2d 74 79 70 65 29 29 ...(not.(eq.type.previous-type))
6de40 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 73 )))))).....................elems
6de60 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 ))...........(js2-report-error."
6de80 6d 73 67 2e 64 75 70 2e 6f 62 6a 2e 6c 69 74 2e 70 72 6f 70 2e 73 74 72 69 63 74 22 0a 20 20 20 msg.dup.obj.lit.prop.strict"....
6dea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 2d 6b 65 .........................elem-ke
6dec0 79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y-string........................
6dee0 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 69 6e 66 69 .....(js2-node-abs-pos.(js2-infi
6df00 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 65 6c 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 x-node-left.elem))..............
6df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 28 6a 73 ...............(js2-node-len.(js
6df40 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 65 6c 65 6d 29 29 29 29 0a 20 20 20 20 20 2-infix-node-left.elem))))......
6df60 20 20 20 3b 3b 20 41 70 70 65 6e 64 20 61 6e 79 20 70 61 72 73 65 64 20 65 6c 65 6d 65 6e 74 2e ...;;.Append.any.parsed.element.
6df80 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 65 6c 65 6d 20 65 6c 65 6d 73 29 29 29 20 20 20 20 .........(push.elem.elems)))....
6dfa0 20 20 20 3b 20 65 6e 64 20 6c 6f 6f 70 0a 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 ...;.end.loop.....(js2-must-matc
6dfc0 68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 70 72 6f 70 22 29 0a 20 20 h.js2-RC."msg.no.brace.prop")...
6dfe0 20 20 28 6e 72 65 76 65 72 73 65 20 65 6c 65 6d 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 ..(nreverse.elems)))..(defun.js2
6e000 2d 70 61 72 73 65 2d 6e 61 6d 65 64 2d 70 72 6f 70 20 28 74 74 20 70 6f 73 20 74 79 70 65 2d 73 -parse-named-prop.(tt.pos.type-s
6e020 74 72 69 6e 67 20 73 74 61 72 2d 70 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 61 73 73 2d 70 29 0a tring.star-p.&optional.class-p).
6e040 20 20 22 50 61 72 73 65 20 61 20 6e 61 6d 65 2c 20 73 74 72 69 6e 67 2c 20 6f 72 20 67 65 74 74 .."Parse.a.name,.string,.or.gett
6e060 65 72 2f 73 65 74 74 65 72 20 6f 62 6a 65 63 74 20 70 72 6f 70 65 72 74 79 2e 0a 57 68 65 6e 20 er/setter.object.property..When.
6e080 60 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 27 20 69 73 20 74 2c 20 `js2-is-in-destructuring'.is.t,.
6e0a0 66 6f 72 6d 73 20 6c 69 6b 65 20 7b 61 2c 20 62 2c 20 63 7d 20 77 69 6c 6c 20 62 65 20 70 65 72 forms.like.{a,.b,.c}.will.be.per
6e0c0 6d 69 74 74 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 6a 73 32 2d 70 61 72 73 65 mitted."...(let.((key.(js2-parse
6e0e0 2d 70 72 6f 70 2d 6e 61 6d 65 20 74 74 20 63 6c 61 73 73 2d 70 29 29 29 0a 20 20 20 20 28 63 6f -prop-name.tt.class-p))).....(co
6e100 6e 64 0a 20 20 20 20 20 3b 3b 20 6d 65 74 68 6f 64 20 64 65 66 69 6e 69 74 69 6f 6e 3a 20 7b 66 nd......;;.method.definition:.{f
6e120 28 29 20 7b 2e 2e 2e 7d 7d 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 28 6a 73 32 2d 70 65 65 ().{...}}......((and.(=.(js2-pee
6e140 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 k-token).js2-LP)............(>=.
6e160 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20 js2-language-version.200))......
6e180 20 28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 .(when.(or.(js2-name-node-p.key)
6e1a0 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 29 0a 20 20 20 20 20 20 .(js2-string-node-p.key)).......
6e1c0 20 20 3b 3b 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 70 72 6f ..;;.highlight.function.name.pro
6e1e0 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 perties.........(js2-record-face
6e200 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 .'font-lock-function-name-face))
6e220 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 6d 65 74 68 6f 64 2d 70 72 6f 70 20 70 6f .......(js2-parse-method-prop.po
6e240 73 20 6b 65 79 20 74 79 70 65 2d 73 74 72 69 6e 67 20 73 74 61 72 2d 70 29 29 0a 20 20 20 20 20 s.key.type-string.star-p))......
6e260 3b 3b 20 63 6c 61 73 73 20 66 69 65 6c 64 20 6f 72 20 62 69 6e 64 69 6e 67 20 65 6c 65 6d 65 6e ;;.class.field.or.binding.elemen
6e280 74 20 77 69 74 68 20 69 6e 69 74 69 61 6c 69 7a 65 72 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3d t.with.initializer......((and.(=
6e2a0 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 41 53 53 49 47 4e 29 0a 20 20 .(js2-peek-token).js2-ASSIGN)...
6e2c0 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f .........(>=.js2-language-versio
6e2e0 6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 6f 72 20 63 6c 61 73 73 n.200)).......(if.(not.(or.class
6e300 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 73 2d 69 6e 2d -p....................js2-is-in-
6e320 64 65 73 74 72 75 63 74 75 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 destructuring))...........(js2-r
6e340 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6e 69 74 2e 6e 6f 2e 64 65 73 74 72 75 63 eport-error."msg.init.no.destruc
6e360 74 22 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 65 t")).......(js2-parse-initialize
6e380 64 2d 62 69 6e 64 69 6e 67 20 6b 65 79 29 29 0a 20 20 20 20 20 3b 3b 20 72 65 67 75 6c 61 72 20 d-binding.key))......;;.regular.
6e3a0 70 72 6f 70 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a prop......(t.......(let.((beg.(j
6e3c0 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 s2-current-token-beg))..........
6e3e0 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 ...(end.(js2-current-token-end))
6e400 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 6c .............(expr.(js2-parse-pl
6e420 61 69 6e 2d 70 72 6f 70 65 72 74 79 20 6b 65 79 20 63 6c 61 73 73 2d 70 29 29 29 0a 20 20 20 20 ain-property.key.class-p))).....
6e440 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 ....(when.(and.(=.tt.js2-NAME)..
6e460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6a 73 32 2d 69 73 2d 69 6e ..................(not.js2-is-in
6e480 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -destructuring).................
6e4a0 20 20 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62 ...js2-highlight-external-variab
6e4c0 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 les....................(js2-node
6e4e0 2d 67 65 74 2d 70 72 6f 70 20 65 78 70 72 20 27 53 48 4f 52 54 48 41 4e 44 29 29 0a 20 20 20 20 -get-prop.expr.'SHORTHAND)).....
6e500 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6b 65 79 29 ......(js2-record-name-node.key)
6e520 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 62 65 67 20 65 6e 64 0a ).........(js2-set-face.beg.end.
6e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 66 ......................(if.(js2-f
6e560 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unction-node-p..................
6e580 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d ..........(js2-object-prop-node-
6e5a0 72 69 67 68 74 20 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 right.expr))....................
6e5c0 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d .......'font-lock-function-name-
6e5e0 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 face.........................'js
6e600 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2-object-property)..............
6e620 20 20 20 20 20 20 20 20 20 27 72 65 63 6f 72 64 29 0a 20 20 20 20 20 20 20 20 65 78 70 72 29 29 .........'record).........expr))
6e640 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 65 )))..(defun.js2-parse-initialize
6e660 64 2d 62 69 6e 64 69 6e 67 20 28 6e 61 6d 65 29 0a 20 20 22 50 61 72 73 65 20 61 20 60 53 69 6e d-binding.(name)..."Parse.a.`Sin
6e680 67 6c 65 4e 61 6d 65 42 69 6e 64 69 6e 67 27 20 77 69 74 68 20 69 6e 69 74 69 61 6c 69 7a 65 72 gleNameBinding'.with.initializer
6e6a0 2e 0a 0a 60 6e 61 6d 65 27 20 69 73 20 74 68 65 20 60 42 69 6e 64 69 6e 67 49 64 65 6e 74 69 66 ...`name'.is.the.`BindingIdentif
6e6c0 69 65 72 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 ier'."...(when.(js2-match-token.
6e6e0 6a 73 32 2d 41 53 53 49 47 4e 29 0a 20 20 20 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 js2-ASSIGN).....(js2-make-binary
6e700 20 6a 73 32 2d 41 53 53 49 47 4e 20 6e 61 6d 65 20 27 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 .js2-ASSIGN.name.'js2-parse-assi
6e720 67 6e 2d 65 78 70 72 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 gn-expr.t)))..(defun.js2-parse-p
6e740 72 6f 70 2d 6e 61 6d 65 20 28 74 74 20 61 6c 6c 6f 77 2d 70 72 69 76 61 74 65 29 0a 20 20 28 63 rop-name.(tt.allow-private)...(c
6e760 6f 6e 64 0a 20 20 20 3b 3b 20 4c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 20 6b 65 79 73 3a 20 7b ond....;;.Literal.string.keys:.{
6e780 27 66 6f 6f 27 3a 20 27 62 61 72 27 7d 0a 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 54 52 49 'foo':.'bar'}....((=.tt.js2-STRI
6e7a0 4e 47 29 0a 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 29 29 0a NG).....(make-js2-string-node)).
6e7c0 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 63 6f 6d 70 75 74 65 64 20 6b 65 79 73 3a 20 7b 5b 53 79 ...;;.Handle.computed.keys:.{[Sy
6e7e0 6d 62 6f 6c 2e 69 74 65 72 61 74 6f 72 5d 3a 20 2e 2e 2e 7d 2c 20 2a 5b 31 2b 32 5d 28 29 20 7b mbol.iterator]:....},.*[1+2]().{
6e800 2e 2e 2e 7d 7d 2c 0a 20 20 20 3b 3b 20 7b 5b 66 6f 6f 20 2b 20 62 61 72 5d 28 29 20 7b 20 2e 2e ...}},....;;.{[foo.+.bar]().{...
6e820 2e 20 7d 7d 2c 20 7b 5b 67 65 74 20 5b 27 78 27 20 2b 20 31 5d 28 29 20 7b 2e 2e 2e 7d 7d 0a 20 ..}},.{[get.['x'.+.1]().{...}}..
6e840 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 28 ..((and.(=.tt.js2-LB)..........(
6e860 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 >=.js2-language-version.200))...
6e880 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e ..(make-js2-computed-prop-name-n
6e8a0 6f 64 65 0a 20 20 20 20 20 3a 65 78 70 72 20 28 70 72 6f 67 31 20 28 6a 73 32 2d 70 61 72 73 65 ode......:expr.(prog1.(js2-parse
6e8c0 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d -assign-expr)..............(js2-
6e8e0 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 63 must-match.js2-RB."msg.missing.c
6e900 6f 6d 70 75 74 65 64 2e 72 62 22 29 29 29 29 0a 20 20 20 3b 3b 20 4e 75 6d 65 72 69 63 20 6b 65 omputed.rb"))))....;;.Numeric.ke
6e920 79 73 3a 20 7b 31 32 3a 20 27 66 6f 6f 27 7d 2c 20 7b 31 30 2e 37 3a 20 27 62 61 72 27 7d 0a 20 ys:.{12:.'foo'},.{10.7:.'bar'}..
6e940 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20 20 20 28 6d 61 6b 65 2d 6a ..((=.tt.js2-NUMBER).....(make-j
6e960 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 29 29 0a 20 20 20 3b 3b 20 55 6e 71 75 6f 74 65 64 20 s2-number-node))....;;.Unquoted.
6e980 6e 61 6d 65 73 3a 20 7b 66 6f 6f 3a 20 31 32 7d 0a 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e names:.{foo:.12}....((=.tt.js2-N
6e9a0 41 4d 45 29 0a 20 20 20 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29 29 AME).....(js2-create-name-node))
6e9c0 0a 20 20 20 28 28 61 6e 64 20 61 6c 6c 6f 77 2d 70 72 69 76 61 74 65 0a 20 20 20 20 20 20 20 20 ....((and.allow-private.........
6e9e0 20 28 3d 20 74 74 20 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 29 29 0a 20 20 20 20 28 6a .(=.tt.js2-PRIVATE_NAME)).....(j
6ea00 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29 29 0a 20 20 20 3b 3b 20 41 6e 79 74 s2-create-name-node))....;;.Anyt
6ea20 68 69 6e 67 20 65 6c 73 65 20 69 73 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 28 74 20 28 6a 73 32 hing.else.is.an.error....(t.(js2
6ea40 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 70 72 6f 70 22 29 29 29 29 -report-error."msg.bad.prop"))))
6ea60 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 6c 61 69 6e 2d 70 72 6f 70 65 72 74 ..(defun.js2-parse-plain-propert
6ea80 79 20 28 70 72 6f 70 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 61 73 73 2d 70 29 0a 20 20 22 50 61 y.(prop.&optional.class-p)..."Pa
6eaa0 72 73 65 20 61 20 6e 6f 6e 2d 67 65 74 74 65 72 2f 73 65 74 74 65 72 20 70 72 6f 70 65 72 74 79 rse.a.non-getter/setter.property
6eac0 20 69 6e 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 2e 0a 50 52 4f 50 20 69 73 20 74 .in.an.object.literal..PROP.is.t
6eae0 68 65 20 6e 6f 64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 70 72 6f 70 65 72 74 he.node.representing.the.propert
6eb00 79 3a 20 61 20 6e 75 6d 62 65 72 2c 20 6e 61 6d 65 2c 0a 73 74 72 69 6e 67 20 6f 72 20 65 78 70 y:.a.number,.name,.string.or.exp
6eb20 72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 74 74 0a 20 20 20 20 20 20 20 20 20 28 ression."...(let*.(tt..........(
6eb40 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 pos.(js2-node-pos.prop))........
6eb60 20 20 63 6f 6c 6f 6e 20 65 78 70 72 20 72 65 73 75 6c 74 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 ..colon.expr.result).....(cond..
6eb80 20 20 20 20 3b 3b 20 41 62 62 72 65 76 69 61 74 65 64 20 70 72 6f 70 65 72 74 79 2c 20 61 73 20 ....;;.Abbreviated.property,.as.
6eba0 69 6e 20 7b 66 6f 6f 2c 20 62 61 72 7d 20 6f 72 20 63 6c 61 73 73 20 7b 61 3b 20 62 7d 0a 20 20 in.{foo,.bar}.or.class.{a;.b}...
6ebc0 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f ...((and.(>=.js2-language-versio
6ebe0 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 6c 61 73 73 2d 70 0a 20 20 n.200)............(if.class-p...
6ec00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d .............(and.(setq.tt.(js2-
6ec20 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 peek-token-or-eol)).............
6ec40 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 74 74 20 60 28 2c 6a 73 32 2d 45 4f 4c 20 2c 6a 73 32 ........(memq.tt.`(,js2-EOL.,js2
6ec60 2d 52 43 20 2c 6a 73 32 2d 53 45 4d 49 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 -RC.,js2-SEMI)))..............(a
6ec80 6e 64 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 0a 20 20 nd.(setq.tt.(js2-peek-token))...
6eca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 74 74 20 60 28 2c 6a 73 32 2d ................(memq.tt.`(,js2-
6ecc0 43 4f 4d 4d 41 20 2c 6a 73 32 2d 52 43 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 COMMA.,js2-RC)).................
6ece0 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 70 72 6f 70 29 29 29 29 0a 20 20 20 20 ..(js2-name-node-p.prop)))).....
6ed00 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a 65 63 74 2d ..(setq.result.(make-js2-object-
6ed20 70 72 6f 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 prop-node.....................:p
6ed40 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 os.pos.....................:len.
6ed60 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (js2-node-len.prop).............
6ed80 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........:left.prop..............
6eda0 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .......:right.prop..............
6edc0 20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 .......:op-pos.(-.(js2-current-t
6ede0 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 oken-beg).pos))).......(js2-node
6ee00 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 70 72 6f 70 29 0a 20 20 20 20 20 -add-children.result.prop)......
6ee20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70 72 6f 70 20 72 65 73 75 6c 74 20 27 53 48 4f 52 .(js2-node-set-prop.result.'SHOR
6ee40 54 48 41 4e 44 20 74 29 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 3b 3b 20 4e THAND.t).......result)......;;.N
6ee60 6f 72 6d 61 6c 20 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 73 65 ormal.property......(t.......(se
6ee80 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 69 66 tq.tt.(js2-get-token)).......(if
6eea0 20 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4c 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .(=.tt.js2-COLON)...........(set
6eec0 71 20 63 6f 6c 6f 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 q.colon.(-.(js2-current-token-be
6eee0 67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 28 6a 73 g).pos).................expr.(js
6ef00 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20 28 6a 2-parse-assign-expr)).........(j
6ef20 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e 70 72 s2-report-error."msg.no.colon.pr
6ef40 6f 70 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 6d 61 6b 65 2d 6a 73 op").........(setq.expr.(make-js
6ef60 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 2-error-node))).......(setq.resu
6ef80 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 0a 20 20 lt.(make-js2-object-prop-node...
6efa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 .................:pos.pos.......
6efc0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 6c 61 .............;;.don't.include.la
6efe0 73 74 20 63 6f 6e 73 75 6d 65 64 20 74 6f 6b 65 6e 20 69 6e 20 6c 65 6e 67 74 68 0a 20 20 20 20 st.consumed.token.in.length.....
6f000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 2b 20 28 6a 73 32 2d 6e ...............:len.(-.(+.(js2-n
6f020 6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode-pos.expr)...................
6f040 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 65 78 70 72 29 29 ............(js2-node-len.expr))
6f060 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 29 ............................pos)
6f080 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 70 72 6f 70 0a 20 ....................:left.prop..
6f0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 65 78 70 72 0a 20 20 ..................:right.expr...
6f0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73 20 63 6f 6c 6f 6e 29 29 .................:op-pos.colon))
6f0e0 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 .......(js2-node-add-children.re
6f100 73 75 6c 74 20 70 72 6f 70 20 65 78 70 72 29 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 sult.prop.expr).......result))))
6f120 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6d 65 74 68 6f 64 2d 70 72 6f 70 20 28 ..(defun.js2-parse-method-prop.(
6f140 70 6f 73 20 70 72 6f 70 20 74 79 70 65 2d 73 74 72 69 6e 67 20 73 74 61 72 2d 70 29 0a 20 20 22 pos.prop.type-string.star-p)..."
6f160 50 61 72 73 65 20 6d 65 74 68 6f 64 20 70 72 6f 70 65 72 74 79 20 69 6e 20 61 6e 20 6f 62 6a 65 Parse.method.property.in.an.obje
6f180 63 74 20 6c 69 74 65 72 61 6c 20 6f 72 20 61 20 63 6c 61 73 73 20 62 6f 64 79 2e 0a 4a 61 76 61 ct.literal.or.a.class.body..Java
6f1a0 53 63 72 69 70 74 20 73 79 6e 74 61 78 20 69 73 3a 0a 0a 20 20 7b 20 66 6f 6f 28 2e 2e 2e 29 20 Script.syntax.is:....{.foo(...).
6f1c0 7b 2e 2e 2e 7d 2c 20 67 65 74 20 66 6f 6f 28 29 20 7b 2e 2e 2e 7d 2c 20 73 65 74 20 66 6f 6f 28 {...},.get.foo().{...},.set.foo(
6f1e0 78 29 20 7b 2e 2e 2e 7d 2c 20 2a 66 6f 6f 28 2e 2e 2e 29 20 7b 2e 2e 2e 7d 2c 0a 20 20 20 20 61 x).{...},.*foo(...).{...},.....a
6f200 73 79 6e 63 20 66 6f 6f 28 2e 2e 2e 29 20 7b 2e 2e 2e 7d 20 7d 0a 0a 61 6e 64 20 65 78 70 72 65 sync.foo(...).{...}.}..and.expre
6f220 73 73 69 6f 6e 20 63 6c 6f 73 75 72 65 20 73 74 79 6c 65 20 69 73 20 61 6c 73 6f 20 73 75 70 70 ssion.closure.style.is.also.supp
6f240 6f 72 74 65 64 0a 0a 20 20 7b 20 67 65 74 20 66 6f 6f 28 29 20 78 2c 20 73 65 74 20 66 6f 6f 28 orted....{.get.foo().x,.set.foo(
6f260 78 29 20 5f 78 20 3d 20 78 20 7d 0a 0a 50 4f 53 20 69 73 20 74 68 65 20 73 74 61 72 74 20 70 6f x)._x.=.x.}..POS.is.the.start.po
6f280 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 60 67 65 74 27 20 6f 72 20 60 73 65 74 27 20 6b 65 79 sition.of.the.`get'.or.`set'.key
6f2a0 77 6f 72 64 2c 20 69 66 20 61 6e 79 2e 0a 50 52 4f 50 20 69 73 20 74 68 65 20 60 6a 73 32 2d 6e word,.if.any..PROP.is.the.`js2-n
6f2c0 61 6d 65 2d 6e 6f 64 65 27 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 70 72 6f 70 65 ame-node'.representing.the.prope
6f2e0 72 74 79 20 6e 61 6d 65 2e 0a 54 59 50 45 2d 53 54 52 49 4e 47 20 69 73 20 61 20 73 74 72 69 6e rty.name..TYPE-STRING.is.a.strin
6f300 67 20 60 67 65 74 27 2c 20 60 73 65 74 27 2c 20 60 61 73 79 6e 63 27 2c 20 6f 72 20 6e 69 6c 2e g.`get',.`set',.`async',.or.nil.
6f320 0a 53 54 41 52 54 2d 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 77 68 65 6e 20 6e 61 6d 65 20 69 73 .START-P.is.non-nil.when.name.is
6f340 20 70 72 65 63 65 64 65 64 20 62 79 20 74 68 65 20 73 74 61 72 20 63 68 61 72 61 63 74 65 72 2e .preceded.by.the.star.character.
6f360 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 79 70 65 20 28 6f 72 20 28 63 64 72 20 28 61 73 73 6f 63 "...(let*.((type.(or.(cdr.(assoc
6f380 20 74 79 70 65 2d 73 74 72 69 6e 67 20 27 28 28 22 67 65 74 22 20 2e 20 47 45 54 29 0a 20 20 20 .type-string.'(("get"...GET)....
6f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f3c0 20 20 20 20 20 20 20 20 20 20 28 22 73 65 74 22 20 2e 20 53 45 54 29 0a 20 20 20 20 20 20 20 20 ..........("set"...SET).........
6f3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f400 20 20 20 20 20 28 22 61 73 79 6e 63 22 20 2e 20 41 53 59 4e 43 29 29 29 29 0a 20 20 20 20 20 20 .....("async"...ASYNC)))).......
6f420 20 20 20 20 20 20 20 20 20 20 20 20 20 27 46 55 4e 43 54 49 4f 4e 29 29 0a 20 20 20 20 20 20 20 .............'FUNCTION))........
6f440 20 20 72 65 73 75 6c 74 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6f 72 20 70 ..result.end..........(pos.(or.p
6f460 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 os.(js2-current-token-beg)))....
6f480 20 20 20 20 20 20 28 5f 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 ......(_.(js2-must-match.js2-LP.
6f4a0 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61 72 6d 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 "msg.no.paren.parms"))..........
6f4c0 28 66 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f (fn.(js2-parse-function.'FUNCTIO
6f4e0 4e 5f 45 58 50 52 45 53 53 49 4f 4e 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 N_EXPRESSION.pos................
6f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 2d 70 0a 20 20 20 20 20 20 20 ..................star-p........
6f520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79 ..........................(eq.ty
6f540 70 65 20 27 41 53 59 4e 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe.'ASYNC)......................
6f560 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 ............nil))).....(js2-node
6f580 2d 73 65 74 2d 70 72 6f 70 20 66 6e 20 27 4d 45 54 48 4f 44 5f 54 59 50 45 20 74 79 70 65 29 20 -set-prop.fn.'METHOD_TYPE.type).
6f5a0 20 3b 20 66 6f 72 20 63 6f 64 65 67 65 6e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 20 28 .;.for.codegen.....(unless.pos.(
6f5c0 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 72 6f 70 29 29 29 0a 20 setq.pos.(js2-node-pos.prop)))..
6f5e0 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 66 6e 29 0a 20 ...(setq.end.(js2-node-end.fn)..
6f600 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 6d 65 74 68 6f 64 .........result.(make-js2-method
6f620 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node.:pos.pos..................
6f640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e ......................:len.(-.en
6f660 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.pos)..........................
6f680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 70 72 6f 70 0a 20 20 20 20 20 20 20 ..............:left.prop........
6f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f6c0 3a 72 69 67 68 74 20 66 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 :right.fn)).....(js2-node-add-ch
6f6e0 69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 70 72 6f 70 20 66 6e 29 0a 20 20 20 20 72 65 73 75 6c ildren.result.prop.fn).....resul
6f700 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 t))..(defun.js2-create-name-node
6f720 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69 6f 6e 2d 70 20 74 .(&optional.check-activation-p.t
6f740 6f 6b 65 6e 20 73 74 72 69 6e 67 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6e 61 6d 65 20 6e 6f oken.string)..."Create.a.name.no
6f760 64 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 61 6e 64 2c 20 de.using.the.current.token.and,.
6f780 6f 70 74 69 6f 6e 61 6c 6c 79 2c 20 53 54 52 49 4e 47 2e 0a 41 6e 64 2c 20 69 66 20 43 48 45 43 optionally,.STRING..And,.if.CHEC
6f7a0 4b 2d 41 43 54 49 56 41 54 49 4f 4e 2d 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 74 K-ACTIVATION-P.is.non-nil,.use.t
6f7c0 68 65 20 76 61 6c 75 65 20 6f 66 20 54 4f 4b 45 4e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 65 he.value.of.TOKEN."...(let*.((be
6f7e0 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 g.(js2-current-token-beg))......
6f800 20 20 20 20 28 74 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 ....(tt.(js2-current-token-type)
6f820 29 0a 20 20 20 20 20 20 20 20 20 28 73 20 28 6f 72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 )..........(s.(or.string........
6f840 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 3d 20 6a 73 32 2d 4e 41 4d 45 20 74 74 29 .........(if.(or.(=.js2-NAME.tt)
6f860 20 28 3d 20 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 20 74 74 29 29 0a 20 20 20 20 20 20 .(=.js2-PRIVATE_NAME.tt)).......
6f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e ..............(js2-current-token
6f8a0 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d -string)...................(js2-
6f8c0 74 74 2d 6e 61 6d 65 20 74 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 6e 61 6d 65 29 0a 20 20 tt-name.tt))))..........name)...
6f8e0 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 ..(setq.name.(make-js2-name-node
6f900 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:pos.beg.......................
6f920 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 .............:name.s............
6f940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 6c 65 ........................:len.(le
6f960 6e 67 74 68 20 73 29 29 29 0a 20 20 20 20 28 69 66 20 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69 ngth.s))).....(if.check-activati
6f980 6f 6e 2d 70 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69 on-p.........(js2-check-activati
6f9a0 6f 6e 2d 6e 61 6d 65 20 73 20 28 6f 72 20 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 29 29 0a on-name.s.(or.token.js2-NAME))).
6f9c0 20 20 20 20 6e 61 6d 65 29 29 0a 0a 3b 3b 3b 20 55 73 65 20 41 53 54 20 74 6f 20 65 78 74 72 61 ....name))..;;;.Use.AST.to.extra
6f9e0 63 74 20 73 65 6d 61 6e 74 69 63 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20 ct.semantic.information..(defun.
6fa00 6a 73 32 2d 67 65 74 2d 65 6c 65 6d 65 6e 74 2d 69 6e 64 65 78 2d 66 72 6f 6d 2d 61 72 72 61 79 js2-get-element-index-from-array
6fa20 2d 6e 6f 64 65 20 28 65 6c 65 6d 20 61 72 72 61 79 2d 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c -node.(elem.array-node.&optional
6fa40 20 68 61 72 64 63 6f 64 65 64 2d 61 72 72 61 79 2d 69 6e 64 65 78 29 0a 20 20 22 47 65 74 20 69 .hardcoded-array-index)..."Get.i
6fa60 6e 64 65 78 20 6f 66 20 45 4c 45 4d 20 66 72 6f 6d 20 41 52 52 41 59 2d 4e 4f 44 45 20 6f 72 20 ndex.of.ELEM.from.ARRAY-NODE.or.
6fa80 30 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20 61 73 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 0.and.return.it.as.string."...(l
6faa0 65 74 20 28 28 69 64 78 20 30 29 20 65 6c 65 6d 73 20 28 72 6c 74 20 68 61 72 64 63 6f 64 65 64 et.((idx.0).elems.(rlt.hardcoded
6fac0 2d 61 72 72 61 79 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 6c 65 6d 73 20 28 -array-index)).....(setq.elems.(
6fae0 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 61 72 72 61 79 2d 6e 6f 64 65 29 js2-array-node-elems.array-node)
6fb00 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 65 6c 65 6d 20 28 6e 6f 74 20 68 61 72 64 63 6f 64 ).....(if.(and.elem.(not.hardcod
6fb20 65 64 2d 61 72 72 61 79 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 ed-array-index)).........(setq.r
6fb40 6c 74 20 28 63 61 74 63 68 20 27 6e 74 68 2d 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 lt.(catch.'nth-elt..............
6fb60 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 78 20 65 6c 65 6d 73 29 0a 20 20 20 20 20 20 20 .......(dolist.(x.elems)........
6fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 6b 6e 6f 77 20 74 68 65 20 45 4c ...............;;.We.know.the.EL
6fba0 45 4d 20 64 6f 65 73 20 62 65 6c 6f 6e 67 20 74 6f 20 41 52 52 41 59 2d 4e 4f 44 45 2c 0a 20 20 EM.does.belong.to.ARRAY-NODE,...
6fbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 65 6c 65 6d ....................(if.(eq.elem
6fbe0 20 78 29 20 28 74 68 72 6f 77 20 27 6e 74 68 2d 65 6c 74 20 69 64 78 29 29 0a 20 20 20 20 20 20 .x).(throw.'nth-elt.idx)).......
6fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 64 78 20 28 31 2b 20 69 64 ................(setq.idx.(1+.id
6fc20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 29 29 0a 20 20 x))).....................0)))...
6fc40 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 73 5d 22 20 72 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 ..(format."[%s]".rlt)))..(defun.
6fc60 6a 73 32 2d 70 72 69 6e 74 2d 6a 73 6f 6e 2d 70 61 74 68 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 js2-print-json-path.(&optional.h
6fc80 61 72 64 63 6f 64 65 64 2d 61 72 72 61 79 2d 69 6e 64 65 78 29 0a 20 20 22 50 72 69 6e 74 20 74 ardcoded-array-index)..."Print.t
6fca0 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 4a 53 4f 4e 20 76 61 6c 75 65 20 75 6e 64 65 72 20 he.path.to.the.JSON.value.under.
6fcc0 70 6f 69 6e 74 2c 20 61 6e 64 20 73 61 76 65 20 69 74 20 69 6e 20 74 68 65 20 6b 69 6c 6c 20 72 point,.and.save.it.in.the.kill.r
6fce0 69 6e 67 2e 0a 49 66 20 48 41 52 44 43 4f 44 45 44 2d 41 52 52 41 59 2d 49 4e 44 45 58 20 70 72 ing..If.HARDCODED-ARRAY-INDEX.pr
6fd00 6f 76 69 64 65 64 2c 20 61 72 72 61 79 20 69 6e 64 65 78 20 69 6e 20 4a 53 4f 4e 20 70 61 74 68 ovided,.array.index.in.JSON.path
6fd20 20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 .is.replaced.with.it."...(intera
6fd40 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 0a 20 20 28 6c 65 ctive."P")...(js2-reparse)...(le
6fd60 74 20 28 70 72 65 76 69 6f 75 73 2d 6e 6f 64 65 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 0a 20 20 t.(previous-node.current-node...
6fd80 20 20 20 20 20 20 6b 65 79 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 72 6c 74 29 0a 0a 20 20 20 ......key-name.........rlt).....
6fda0 20 3b 3b 20 54 68 65 20 60 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 27 20 73 74 61 72 .;;.The.`js2-node-at-point'.star
6fdc0 74 73 20 73 63 61 6e 6e 69 6e 67 20 66 72 6f 6d 20 41 53 54 20 72 6f 6f 74 20 6e 6f 64 65 2e 0a ts.scanning.from.AST.root.node..
6fde0 20 20 20 20 3b 3b 20 53 6f 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 79 20 74 6f 20 6f 70 74 ....;;.So.there.is.no.way.to.opt
6fe00 69 6d 69 7a 65 20 69 74 2e 0a 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 imize.it......(setq.current-node
6fe20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 0a 20 20 20 20 28 77 68 69 6c .(js2-node-at-point))......(whil
6fe40 65 20 28 6e 6f 74 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 63 75 72 72 65 6e 74 2d 6e e.(not.(js2-ast-root-p.current-n
6fe60 6f 64 65 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 4a 53 4f 4e ode)).......(cond........;;.JSON
6fe80 20 70 72 6f 70 65 72 74 79 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 .property.node........((js2-obje
6fea0 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 70 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 0a 20 20 20 ct-prop-node-p.current-node)....
6fec0 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 2d 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f .....(setq.key-name.(js2-prop-no
6fee0 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 de-name.(js2-object-prop-node-le
6ff00 66 74 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 72 ft.current-node))).........(if.r
6ff20 6c 74 20 28 73 65 74 71 20 72 6c 74 20 28 63 6f 6e 63 61 74 20 22 2e 22 20 6b 65 79 2d 6e 61 6d lt.(setq.rlt.(concat.".".key-nam
6ff40 65 20 72 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6c 74 20 28 63 6f 6e e.rlt))...........(setq.rlt.(con
6ff60 63 61 74 20 22 2e 22 20 6b 65 79 2d 6e 61 6d 65 29 29 29 29 0a 0a 20 20 20 20 20 20 20 3b 3b 20 cat.".".key-name)))).........;;.
6ff80 41 72 72 61 79 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d 61 72 72 61 Array.node........((or.(js2-arra
6ffa0 79 2d 6e 6f 64 65 2d 70 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 y-node-p.current-node)).........
6ffc0 28 73 65 74 71 20 72 6c 74 20 28 63 6f 6e 63 61 74 20 28 6a 73 32 2d 67 65 74 2d 65 6c 65 6d 65 (setq.rlt.(concat.(js2-get-eleme
6ffe0 6e 74 2d 69 6e 64 65 78 2d 66 72 6f 6d 2d 61 72 72 61 79 2d 6e 6f 64 65 20 70 72 65 76 69 6f 75 nt-index-from-array-node.previou
70000 73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-node..........................
70020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
70040 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 ........current-node............
70060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
70080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 72 64 63 6f 64 65 64 2d ......................hardcoded-
700a0 61 72 72 61 79 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 array-index)....................
700c0 20 20 20 20 20 20 20 72 6c 74 29 29 29 0a 0a 20 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 20 6e .......rlt))).........;;.Other.n
700e0 6f 64 65 73 20 61 72 65 20 69 67 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 28 74 29 29 0a 0a 20 20 odes.are.ignored........(t))....
70100 20 20 20 20 3b 3b 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 20 69 73 20 61 72 63 68 69 76 65 64 0a ....;;.current.node.is.archived.
70120 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 69 6f 75 73 2d 6e 6f 64 65 20 63 75 72 72 65 6e ......(setq.previous-node.curren
70140 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 3b 3b 20 47 65 74 20 70 61 72 65 6e 74 20 6e 6f 64 65 t-node).......;;.Get.parent.node
70160 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 28 73 65 .and.continue.the.loop.......(se
70180 74 71 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 tq.current-node.(js2-node-parent
701a0 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 29 29 0a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 .current-node)))......(cond.....
701c0 20 28 72 6c 74 0a 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 20 74 68 65 20 66 69 6e 61 6c 20 72 .(rlt.......;;.Clean.the.final.r
701e0 65 73 75 6c 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 6c 74 20 28 72 65 70 6c 61 63 65 2d 72 esult.......(setq.rlt.(replace-r
70200 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5e 5c 5c 2e 22 20 22 22 20 72 6c 74 29 29 0a egexp-in-string."^\\."."".rlt)).
70220 20 20 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 72 6c 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 ......(kill-new.rlt).......(mess
70240 61 67 65 20 22 25 73 20 3d 3e 20 6b 69 6c 6c 2d 72 69 6e 67 22 20 72 6c 74 29 29 0a 20 20 20 20 age."%s.=>.kill-ring".rlt)).....
70260 20 28 74 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 4a 53 4f 4e 20 70 61 74 68 .(t.......(message."No.JSON.path
70280 20 66 6f 75 6e 64 21 22 29 29 29 0a 0a 20 20 20 20 72 6c 74 29 29 0a 0a 3b 3b 3b 20 49 6e 64 65 .found!")))......rlt))..;;;.Inde
702a0 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 20 28 62 6f 75 6e 63 69 6e 67 29 0a 0a 3b 3b 20 49 ntation.support.(bouncing)..;;.I
702c0 6e 20 72 65 63 65 6e 74 2d 65 6e 6f 75 67 68 20 45 6d 61 63 73 2c 20 77 65 20 72 65 75 73 65 20 n.recent-enough.Emacs,.we.reuse.
702e0 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 63 6f 64 65 20 66 72 6f 6d 0a 3b 3b 20 60 6a 73 the.indentation.code.from.;;.`js
70300 2d 6d 6f 64 65 27 2e 20 20 54 6f 20 63 6f 6e 74 69 6e 75 65 20 73 75 70 70 6f 72 74 20 66 6f 72 -mode'...To.continue.support.for
70320 20 74 68 65 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 2c 20 73 6f 6d 65 20 63 6f 64 65 0a 3b .the.older.versions,.some.code.;
70340 3b 20 74 68 61 74 20 77 61 73 20 68 65 72 65 20 70 72 65 76 69 6f 75 73 6c 79 20 77 61 73 20 6d ;.that.was.here.previously.was.m
70360 6f 76 65 64 20 74 6f 20 60 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74 2e 65 6c 27 2e 0a 0a 3b 3b oved.to.`js2-old-indent.el'...;;
70380 20 57 68 69 63 68 65 76 65 72 20 69 6e 64 65 6e 74 65 72 20 69 73 20 75 73 65 64 2c 20 69 74 27 .Whichever.indenter.is.used,.it'
703a0 73 20 6f 66 74 65 6e 20 22 77 72 6f 6e 67 22 2c 20 68 6f 77 65 76 65 72 2c 20 61 6e 64 20 6e 65 s.often."wrong",.however,.and.ne
703c0 65 64 73 0a 3b 3b 20 74 6f 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 20 20 54 68 65 20 72 69 eds.;;.to.be.overridden...The.ri
703e0 67 68 74 20 6c 6f 6e 67 2d 74 65 72 6d 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 70 72 6f 62 61 62 ght.long-term.solution.is.probab
70400 6c 79 20 74 6f 0a 3b 3b 20 65 6d 75 6c 61 74 65 20 28 6f 72 20 69 6e 74 65 67 72 61 74 65 20 77 ly.to.;;.emulate.(or.integrate.w
70420 69 74 68 29 20 63 63 2d 65 6e 67 69 6e 65 2c 20 62 75 74 20 69 74 27 73 20 61 20 6e 6f 6e 74 72 ith).cc-engine,.but.it's.a.nontr
70440 69 76 69 61 6c 20 61 6d 6f 75 6e 74 0a 3b 3b 20 6f 66 20 63 6f 64 69 6e 67 2e 20 20 45 76 65 6e ivial.amount.;;.of.coding...Even
70460 20 77 68 65 6e 20 61 20 70 61 72 73 65 20 74 72 65 65 20 66 72 6f 6d 20 60 6a 73 32 2d 70 61 72 .when.a.parse.tree.from.`js2-par
70480 73 65 27 20 69 73 20 70 72 65 73 65 6e 74 2c 0a 3b 3b 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 se'.is.present,.;;.which.is.not.
704a0 74 72 75 65 20 61 74 20 74 68 65 20 6d 6f 6d 65 6e 74 20 74 68 65 20 75 73 65 72 20 69 73 20 74 true.at.the.moment.the.user.is.t
704c0 79 70 69 6e 67 2c 20 63 6f 6d 70 75 74 69 6e 67 0a 3b 3b 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 yping,.computing.;;.indentation.
704e0 69 73 20 73 74 69 6c 6c 20 74 68 6f 75 73 61 6e 64 73 20 6f 66 20 6c 69 6e 65 73 20 6f 66 20 63 is.still.thousands.of.lines.of.c
70500 6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 65 76 65 72 79 0a 3b 3b 20 70 6f 73 73 69 62 6c 65 20 ode.to.handle.every.;;.possible.
70520 73 79 6e 74 61 63 74 69 63 20 65 64 67 65 20 63 61 73 65 2e 0a 0a 3b 3b 20 49 6e 20 74 68 65 20 syntactic.edge.case...;;.In.the.
70540 6d 65 61 6e 74 69 6d 65 2c 20 74 68 65 20 63 6f 6d 70 72 6f 6d 69 73 65 20 73 6f 6c 75 74 69 6f meantime,.the.compromise.solutio
70560 6e 20 69 73 20 74 68 61 74 20 77 65 20 6f 66 66 65 72 20 61 20 22 62 6f 75 6e 63 65 0a 3b 3b 20 n.is.that.we.offer.a."bounce.;;.
70580 69 6e 64 65 6e 74 65 72 22 2c 20 63 6f 6e 66 69 67 75 72 65 64 20 77 69 74 68 20 60 6a 73 32 2d indenter",.configured.with.`js2-
705a0 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 2d 70 27 2c 20 77 68 69 63 68 20 63 79 63 6c 65 73 20 74 bounce-indent-p',.which.cycles.t
705c0 68 65 0a 3b 3b 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 69 6e 64 65 6e 74 20 61 6d 6f 6e 67 20 he.;;.current.line.indent.among.
705e0 76 61 72 69 6f 75 73 20 6c 69 6b 65 6c 79 20 67 75 65 73 73 20 70 6f 69 6e 74 73 2e 20 20 54 68 various.likely.guess.points...Th
70600 69 73 20 61 70 70 72 6f 61 63 68 0a 3b 3b 20 69 73 20 66 61 72 20 66 72 6f 6d 20 70 65 72 66 65 is.approach.;;.is.far.from.perfe
70620 63 74 2c 20 62 75 74 20 73 68 6f 75 6c 64 20 61 74 20 6c 65 61 73 74 20 6d 61 6b 65 20 69 74 20 ct,.but.should.at.least.make.it.
70640 73 6c 69 67 68 74 6c 79 20 65 61 73 69 65 72 20 74 6f 0a 3b 3b 20 6d 6f 76 65 20 74 68 65 20 6c slightly.easier.to.;;.move.the.l
70660 69 6e 65 20 74 6f 77 61 72 64 73 20 69 74 73 20 64 65 73 69 72 65 64 20 69 6e 64 65 6e 74 61 74 ine.towards.its.desired.indentat
70680 69 6f 6e 20 77 68 65 6e 20 6d 61 6e 75 61 6c 6c 79 0a 3b 3b 20 6f 76 65 72 72 69 64 69 6e 67 20 ion.when.manually.;;.overriding.
706a0 4b 61 72 6c 27 73 20 68 65 75 72 69 73 74 69 63 20 6e 65 73 74 69 6e 67 20 67 75 65 73 73 65 72 Karl's.heuristic.nesting.guesser
706c0 2e 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 20 28 29 0a 20 20 ...(defun.js2-backward-sws.()...
706e0 22 4d 6f 76 65 20 62 61 63 6b 77 61 72 64 20 74 68 72 6f 75 67 68 20 77 68 69 74 65 73 70 61 63 "Move.backward.through.whitespac
70700 65 20 61 6e 64 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 e.and.comments."...(interactive)
70720 0a 20 20 28 77 68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e 74 20 2d 31 29 29 29 ...(while.(forward-comment.-1)))
70740 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 20 28 29 0a 20 20 22 4d ..(defun.js2-forward-sws.()..."M
70760 6f 76 65 20 66 6f 72 77 61 72 64 20 74 68 72 6f 75 67 68 20 77 68 69 74 65 73 70 61 63 65 20 61 ove.forward.through.whitespace.a
70780 6e 64 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 nd.comments."...(interactive)...
707a0 28 77 68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e 74 20 31 29 29 29 0a 0a 28 64 (while.(forward-comment.1)))..(d
707c0 65 66 75 6e 20 6a 73 32 2d 61 72 67 6c 69 73 74 2d 63 6c 6f 73 65 20 28 29 0a 20 20 22 52 65 74 efun.js2-arglist-close.()..."Ret
707e0 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 77 65 27 72 65 20 6f 6e 20 61 20 6c 69 6e 65 20 62 urn.non-nil.if.we're.on.a.line.b
70800 65 67 69 6e 6e 69 6e 67 20 77 69 74 68 20 61 20 63 6c 6f 73 65 2d 70 61 72 65 6e 2f 62 72 61 63 eginning.with.a.close-paren/brac
70820 65 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d e."...(save-excursion.....(goto-
70840 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 0a 20 20 20 20 28 6a 73 32 2d 66 6f char.(point-at-bol)).....(js2-fo
70860 72 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5d 29 7d rward-sws).....(looking-at."[])}
70880 5d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 6f 6f 6b 73 2d 6c ]")))..(defun.js2-indent-looks-l
708a0 69 6b 65 2d 6c 61 62 65 6c 2d 70 20 28 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 ike-label-p.()...(goto-char.(poi
708c0 6e 74 2d 61 74 2d 62 6f 6c 29 29 0a 20 20 28 6a 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a nt-at-bol))...(js2-forward-sws).
708e0 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 69 ..(looking-at.(concat.js2-mode-i
70900 64 65 6e 74 69 66 69 65 72 2d 72 65 20 22 3a 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d dentifier-re.":")))..(defun.js2-
70920 69 6e 64 65 6e 74 2d 69 6e 2d 6f 62 6a 6c 69 74 2d 70 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 indent-in-objlit-p.(parse-status
70940 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 69 73 20 6c 6f 6f 6b )..."Return.non-nil.if.this.look
70960 73 20 6c 69 6b 65 20 61 6e 20 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 65 6e 74 72 79 2e 22 s.like.an.object-literal.entry."
70980 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61 ...(let.((start.(nth.1.parse-sta
709a0 74 75 73 29 29 29 0a 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 73 74 61 72 74 0a 20 20 20 20 20 tus))).....(and......start......
709c0 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 28 61 6e 64 20 28 7a 65 72 (save-excursion........(and.(zer
709e0 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 op.(forward-line.-1))...........
70a00 20 20 28 6e 6f 74 20 28 3c 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 29 29 20 20 20 20 20 3b 20 ..(not.(<.(point).start)).....;.
70a20 63 72 6f 73 73 65 64 20 61 20 7b 7d 20 62 6f 75 6e 64 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 crossed.a.{}.boundary...........
70a40 20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 6f 6f 6b 73 2d 6c 69 6b 65 2d 6c 61 62 65 6c 2d 70 ..(js2-indent-looks-like-label-p
70a60 29 29 29 0a 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 )))......(save-excursion........
70a80 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 6f 6f 6b 73 2d 6c 69 6b 65 2d 6c 61 62 65 6c 2d 70 29 29 (js2-indent-looks-like-label-p))
70aa0 29 29 29 0a 0a 3b 3b 20 49 66 20 70 72 65 76 20 6c 69 6e 65 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 )))..;;.If.prev.line.looks.like.
70ac0 66 6f 6f 62 61 72 28 7b 20 74 68 65 6e 20 77 65 27 72 65 20 70 61 73 73 69 6e 67 20 61 6e 20 6f foobar({.then.we're.passing.an.o
70ae0 62 6a 65 63 74 0a 3b 3b 20 6c 69 74 65 72 61 6c 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 bject.;;.literal.to.a.function.c
70b00 61 6c 6c 2c 20 61 6e 64 20 70 65 6f 70 6c 65 20 70 72 65 74 74 79 20 6d 75 63 68 20 61 6c 77 61 all,.and.people.pretty.much.alwa
70b20 79 73 20 77 61 6e 74 20 74 6f 0a 3b 3b 20 64 65 2d 64 65 6e 74 20 62 61 63 6b 20 74 6f 20 74 68 ys.want.to.;;.de-dent.back.to.th
70b40 65 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 2c 20 73 6f 20 6d 6f 76 65 20 74 68 65 20 27 62 61 e.previous.line,.so.move.the.'ba
70b60 73 69 63 2d 6f 66 66 73 65 74 27 0a 3b 3b 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 66 sic-offset'.;;.position.to.the.f
70b80 72 6f 6e 74 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 62 6a 6c 69 74 2d 61 ront..(defun.js2-indent-objlit-a
70ba0 72 67 2d 70 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 rg-p.(parse-status)...(save-excu
70bc0 72 73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a rsion.....(back-to-indentation).
70be0 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 28 61 6e 64 20 ....(js2-backward-sws).....(and.
70c00 28 65 71 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 20 28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 (eq.(1-.(point)).(nth.1.parse-st
70c20 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 atus))..........(eq.(char-before
70c40 29 20 3f 7b 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 ).?{)..........(progn...........
70c60 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 .(forward-char.-1)............(s
70c80 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 kip-chars-backward.".\t").......
70ca0 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c 28 29 29 29 29 29 0a .....(eq.(char-before).?\())))).
70cc0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 63 61 73 65 2d 62 6c 6f 63 6b 2d 70 20 .(defun.js2-indent-case-block-p.
70ce0 28 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 ()...(save-excursion.....(back-t
70d00 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 o-indentation).....(js2-backward
70d20 2d 73 77 73 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62 -sws).....(goto-char.(point-at-b
70d40 6f 6c 29 29 0a 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c ol)).....(skip-chars-forward.".\
70d60 74 22 29 0a 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 61 73 65 5c 5c 73 2d 2e 2b 3a t").....(looking-at."case\\s-.+:
70d80 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 20 28 ")))..(defun.js2-bounce-indent.(
70da0 6e 6f 72 6d 61 6c 2d 63 6f 6c 20 70 61 72 73 65 2d 73 74 61 74 75 73 20 26 6f 70 74 69 6f 6e 61 normal-col.parse-status.&optiona
70dc0 6c 20 62 61 63 6b 77 61 72 64 29 0a 20 20 22 43 79 63 6c 65 20 61 6d 6f 6e 67 20 61 6c 74 65 72 l.backward)..."Cycle.among.alter
70de0 6e 61 74 65 20 63 6f 6d 70 75 74 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 6f 73 69 74 69 nate.computed.indentation.positi
70e00 6f 6e 73 2e 0a 50 41 52 53 45 2d 53 54 41 54 55 53 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 ons..PARSE-STATUS.is.the.result.
70e20 6f 66 20 60 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 27 20 66 72 6f 6d 20 74 68 65 of.`parse-partial-sexp'.from.the
70e40 20 62 65 67 69 6e 6e 69 6e 67 0a 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 .beginning.of.the.buffer.to.the.
70e60 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 20 20 4e 4f 52 4d 41 4c 2d 43 4f 4c 20 69 73 20 74 68 current.point...NORMAL-COL.is.th
70e80 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 63 6f 6c 75 6d 6e 20 63 6f 6d 70 75 74 65 64 20 62 79 e.indentation.column.computed.by
70ea0 20 74 68 65 20 68 65 75 72 69 73 74 69 63 20 67 75 65 73 73 65 72 20 62 61 73 65 64 20 6f 6e 20 .the.heuristic.guesser.based.on.
70ec0 63 75 72 72 65 6e 74 20 70 61 72 65 6e 2c 0a 62 72 61 63 6b 65 74 2c 20 62 72 61 63 65 20 61 6e current.paren,.bracket,.brace.an
70ee0 64 20 73 74 61 74 65 6d 65 6e 74 20 6e 65 73 74 69 6e 67 2e 20 20 49 66 20 42 41 43 4b 57 41 52 d.statement.nesting...If.BACKWAR
70f00 44 53 2c 20 63 79 63 6c 65 20 70 6f 73 69 74 69 6f 6e 73 0a 69 6e 20 72 65 76 65 72 73 65 2e 22 DS,.cycle.positions.in.reverse."
70f20 0a 20 20 28 6c 65 74 20 28 28 63 75 72 2d 69 6e 64 65 6e 74 20 28 63 75 72 72 65 6e 74 2d 69 6e ...(let.((cur-indent.(current-in
70f40 64 65 6e 74 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 6f 6c 64 2d 62 75 66 66 65 72 2d dentation)).........(old-buffer-
70f60 75 6e 64 6f 2d 6c 69 73 74 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 29 0a 20 20 20 20 undo-list.buffer-undo-list).....
70f80 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 32 31 20 6f 6e 6c 79 20 68 61 73 20 60 63 6f 75 6e 74 2d ....;;.Emacs.21.only.has.`count-
70fa0 6c 69 6e 65 73 27 2c 20 6e 6f 74 20 60 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 27 lines',.not.`line-number-at-pos'
70fc0 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 28 73 61 76 65 2d 65 78 63 .........(current-line.(save-exc
70fe0 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ursion.........................(
71000 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 20 20 3b 20 6d 6f 76 65 20 74 6f 20 62 6f 6c 0a 20 forward-line.0)..;.move.to.bol..
71020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 63 6f 75 6e .......................(1+.(coun
71040 74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 29 29 29 29 0a t-lines.(point-min).(point))))).
71060 20 20 20 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 73 20 70 6f 73 20 6d 61 69 6e 2d 70 6f 73 20 61 ........positions.pos.main-pos.a
71080 6e 63 68 6f 72 20 61 72 67 6c 69 73 74 2d 63 6f 6e 74 20 73 61 6d 65 2d 69 6e 64 65 6e 74 0a 20 nchor.arglist-cont.same-indent..
710a0 20 20 20 20 20 20 20 62 61 73 69 63 2d 6f 66 66 73 65 74 20 63 6f 6d 70 75 74 65 64 2d 70 6f 73 .......basic-offset.computed-pos
710c0 29 0a 20 20 20 20 3b 3b 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 64 6f 6e 27 74 20 72 65 63 6f 72 ).....;;.temporarily.don't.recor
710e0 64 20 75 6e 64 6f 20 69 6e 66 6f 2c 20 69 66 20 75 73 65 72 20 72 65 71 75 65 73 74 65 64 20 74 d.undo.info,.if.user.requested.t
71100 68 69 73 0a 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 64 65 6e 74 2d 69 6e his.....(when.js2-mode-indent-in
71120 68 69 62 69 74 2d 75 6e 64 6f 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e hibit-undo.......(setq.buffer-un
71140 64 6f 2d 6c 69 73 74 20 74 29 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a do-list.t)).....(unwind-protect.
71160 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 72 73 ........(progn...........;;.Firs
71180 74 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 69 6e 64 65 6e 74 20 66 72 6f 6d 20 62 65 67 t.likely.point:..indent.from.beg
711a0 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 63 6f 64 65 20 6c 69 6e 65 0a 20 20 20 inning.of.previous.code.line....
711c0 20 20 20 20 20 20 20 28 70 75 73 68 20 28 73 65 74 71 20 62 61 73 69 63 2d 6f 66 66 73 65 74 0a .......(push.(setq.basic-offset.
711e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 73 61 76 65 2d 65 ......................(+.(save-e
71200 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xcursion........................
71220 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 ....(back-to-indentation).......
71240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 .....................(js2-backwa
71260 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rd-sws).........................
71280 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 ...(back-to-indentation)........
712a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c ....................(current-col
712c0 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a umn))..........................j
712e0 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-basic-offset))...............
71300 20 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 46 69 72 73 ..positions)............;;.(Firs
71320 74 20 2b 20 65 70 73 69 6c 6f 6e 29 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 69 6e 64 65 t.+.epsilon).likely.point:..inde
71340 6e 74 20 32 78 20 66 72 6f 6d 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 0a 20 20 20 20 20 20 20 20 nt.2x.from.beginning.of.........
71360 20 20 3b 3b 20 70 72 65 76 69 6f 75 73 20 63 6f 64 65 20 6c 69 6e 65 2e 20 20 47 6f 6f 67 6c 65 ..;;.previous.code.line...Google
71380 20 64 6f 65 73 20 69 74 20 74 68 69 73 20 77 61 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 .does.it.this.way............(pu
713a0 73 68 20 28 73 65 74 71 20 62 61 73 69 63 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 sh.(setq.basic-offset...........
713c0 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 ............(+.(save-excursion..
713e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d ..........................(back-
71400 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 to-indentation).................
71420 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 ...........(js2-backward-sws)...
71440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 .........................(back-t
71460 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o-indentation)..................
71480 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 ..........(current-column)).....
714a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 32 20 6a 73 32 2d 62 61 .....................(*.2.js2-ba
714c0 73 69 63 2d 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f sic-offset))).................po
714e0 73 69 74 69 6f 6e 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 63 6f 6e 64 20 6c 69 sitions)............;;.Second.li
71500 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 69 6e 64 65 6e 74 20 66 72 6f 6d 20 61 73 73 69 67 6e 2d kely.point:..indent.from.assign-
71520 65 78 70 72 20 52 48 53 2e 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 expr.RHS...This...........;;.is.
71540 6a 75 73 74 20 61 20 63 72 75 64 65 20 67 75 65 73 73 20 62 61 73 65 64 20 6f 6e 20 66 69 6e 64 just.a.crude.guess.based.on.find
71560 69 6e 67 20 22 20 3d 20 22 20 6f 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 20 ing.".=.".on.the.previous.......
71580 20 20 20 20 3b 3b 20 6c 69 6e 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 63 74 75 61 6c 20 63 6f ....;;.line.containing.actual.co
715a0 64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 73 61 76 65 2d 65 78 de............(setq.pos.(save-ex
715c0 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 cursion.......................(f
715e0 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orward-line.-1).................
71600 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 ......(goto-char.(point-at-bol))
71620 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 .......................(when.(re
71640 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 73 2d 2b 5c 5c 28 3d 5c 5c 29 5c 5c 73 -search-forward."\\s-+\\(=\\)\\s
71660 2d 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -+".............................
71680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c ...................(point-at-eol
716a0 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f ).t).........................(go
716c0 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 to-char.(match-end.1))..........
716e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 ...............(skip-chars-forwa
71700 72 64 20 22 20 5c 74 5c 72 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rd.".\t\r\n")...................
71720 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20 ......(current-column)))).......
71740 20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e ....(when.pos.............(cl-in
71760 63 66 20 70 6f 73 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 cf.pos.js2-basic-offset)........
71780 20 20 20 20 20 28 70 75 73 68 20 70 6f 73 20 70 6f 73 69 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 .....(push.pos.positions))......
717a0 20 20 20 20 20 20 3b 3b 20 54 68 69 72 64 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 73 61 ......;;.Third.likely.point:..sa
717c0 6d 65 20 69 6e 64 65 6e 74 20 61 73 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 6f 66 20 63 6f me.indent.as.previous.line.of.co
717e0 64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 69 74 20 74 68 65 20 66 69 72 de............;;.Make.it.the.fir
71800 73 74 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 20 69 66 20 77 65 27 72 65 20 6e 6f 74 20 6f 6e 20 st.likely.point.if.we're.not.on.
71820 61 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 72 67 6c 69 73 74 2d 63 6c 6f 73 65 20 6c 69 an...........;;.arglist-close.li
71840 6e 65 20 61 6e 64 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 65 6e 64 73 20 69 6e 20 61 20 63 ne.and.previous.line.ends.in.a.c
71860 6f 6d 6d 61 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 6f 74 68 20 74 68 69 73 20 omma,.or...........;;.both.this.
71880 6c 69 6e 65 20 61 6e 64 20 70 72 65 76 20 6c 69 6e 65 20 6c 6f 6f 6b 20 6c 69 6b 65 20 6f 62 6a line.and.prev.line.look.like.obj
718a0 65 63 74 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6c 65 6d 65 6e 74 ect-literal...........;;.element
718c0 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 73 61 76 65 2d 65 78 63 s............(setq.pos.(save-exc
718e0 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f ursion.......................(go
71900 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 to-char.(point-at-bol)).........
71920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 ..............(js2-backward-sws)
71940 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d .......................(back-to-
71960 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 indentation)....................
71980 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(prog1.......................
719a0 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 ....(current-column)............
719c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 68 69 6c 65 20 77 65 27 72 65 20 68 65 72 65 .............;;.while.we're.here
719e0 2c 20 6c 6f 6f 6b 20 66 6f 72 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 0a 20 20 20 20 20 20 ,.look.for.trailing.comma.......
71a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 61 76 65 2d 65 78 63 75 ..................(if.(save-excu
71a20 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion...........................
71a40 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 29 0a 20 ....(goto-char.(point-at-eol))..
71a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 .............................(js
71a80 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-backward-sws).................
71aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 ..............(eq.(char-before).
71ac0 3f 2c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ?,))............................
71ae0 20 28 73 65 74 71 20 61 72 67 6c 69 73 74 2d 63 6f 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 .(setq.arglist-cont.(1-.(point))
71b00 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20 20 20 20 20 )))))...........(when.pos.......
71b20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 61 72 67 6c 69 73 74 2d 63 6f 6e 74 0a ......(if.(and.(or.arglist-cont.
71b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e .........................(js2-in
71b60 64 65 6e 74 2d 69 6e 2d 6f 62 6a 6c 69 74 2d 70 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a dent-in-objlit-p.parse-status)).
71b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 61 .....................(not.(js2-a
71ba0 72 67 6c 69 73 74 2d 63 6c 6f 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rglist-close))).................
71bc0 28 73 65 74 71 20 73 61 6d 65 2d 69 6e 64 65 6e 74 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 (setq.same-indent.pos)).........
71be0 20 20 20 20 28 70 75 73 68 20 70 6f 73 20 70 6f 73 69 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 20 ....(push.pos.positions)).......
71c00 20 20 20 20 20 3b 3b 20 46 6f 75 72 74 68 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 66 69 .....;;.Fourth.likely.point:..fi
71c20 72 73 74 20 70 72 65 63 65 64 69 6e 67 20 63 6f 64 65 20 77 69 74 68 20 6c 65 73 73 20 69 6e 64 rst.preceding.code.with.less.ind
71c40 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 6e 20 74 68 65 20 entation............;;.than.the.
71c60 69 6d 6d 65 64 69 61 74 65 6c 79 20 70 72 65 63 65 64 69 6e 67 20 63 6f 64 65 20 6c 69 6e 65 2e immediately.preceding.code.line.
71c80 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 73 61 76 65 2d 65 78 63 75 72 ...........(setq.pos.(save-excur
71ca0 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b sion.......................(back
71cc0 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -to-indentation)................
71ce0 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 .......(js2-backward-sws).......
71d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 ................(back-to-indenta
71d20 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 tion).......................(set
71d40 71 20 61 6e 63 68 6f 72 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 q.anchor.(current-column))......
71d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 7a 65 .................(while.(and.(ze
71d80 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 rop.(forward-line.-1))..........
71da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 28 70 72 .........................(>=.(pr
71dc0 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ogn.............................
71de0 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e ............(back-to-indentation
71e00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
71e20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 ..........(current-column)).....
71e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
71e60 20 20 61 6e 63 68 6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..anchor))).....................
71e80 20 20 28 73 65 74 71 20 70 6f 73 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a ..(setq.pos.(current-column)))).
71ea0 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 6f 73 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a ..........(push.pos.positions)..
71ec0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 73 74 69 6e 67 2d 68 65 75 72 69 73 74 69 63 20 70 ..........;;.nesting-heuristic.p
71ee0 6f 73 69 74 69 6f 6e 2c 20 6d 61 69 6e 20 62 79 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 osition,.main.by.default........
71f00 20 20 20 28 70 75 73 68 20 28 73 65 74 71 20 6d 61 69 6e 2d 70 6f 73 20 6e 6f 72 6d 61 6c 2d 63 ...(push.(setq.main-pos.normal-c
71f20 6f 6c 29 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 6c ol).positions)............;;.del
71f40 65 74 65 20 64 75 70 6c 69 63 61 74 65 73 20 61 6e 64 20 73 6f 72 74 20 70 6f 73 69 74 69 6f 6e ete.duplicates.and.sort.position
71f60 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 73 s.list...........(setq.positions
71f80 20 28 73 6f 72 74 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 6f 73 69 74 69 6f 6e 73 29 20 27 .(sort.(delete-dups.positions).'
71fa0 3c 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6d 6d 61 2d 6c 69 73 74 20 63 6f 6e <))............;;.comma-list.con
71fc0 74 69 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 73 3a 20 20 70 72 65 76 20 6c 69 6e 65 20 69 6e 64 65 tinuation.lines:..prev.line.inde
71fe0 6e 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 nt.takes.precedence...........(i
72000 66 20 73 61 6d 65 2d 69 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 f.same-indent...............(set
72020 71 20 6d 61 69 6e 2d 70 6f 73 20 73 61 6d 65 2d 69 6e 64 65 6e 74 29 29 0a 0a 20 20 20 20 20 20 q.main-pos.same-indent))........
72040 20 20 20 20 3b 3b 20 63 6f 6d 6d 6f 6e 20 73 70 65 63 69 61 6c 20 63 61 73 65 73 20 77 68 65 72 ....;;.common.special.cases.wher
72060 65 20 77 65 20 77 61 6e 74 20 74 6f 20 69 6e 64 65 6e 74 20 69 6e 20 66 72 6f 6d 20 70 72 65 76 e.we.want.to.indent.in.from.prev
72080 69 6f 75 73 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32 ious.line...........(if.(or.(js2
720a0 2d 69 6e 64 65 6e 74 2d 63 61 73 65 2d 62 6c 6f 63 6b 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 -indent-case-block-p)...........
720c0 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 62 6a 6c 69 74 2d 61 72 67 2d 70 ........(js2-indent-objlit-arg-p
720e0 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 .parse-status))...............(s
72100 65 74 71 20 6d 61 69 6e 2d 70 6f 73 20 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 0a 0a 20 20 20 etq.main-pos.basic-offset)).....
72120 20 20 20 20 20 20 20 3b 3b 20 69 66 20 62 6f 75 6e 63 69 6e 67 20 62 61 63 6b 77 61 72 64 2c 20 .......;;.if.bouncing.backward,.
72140 72 65 76 65 72 73 65 20 70 6f 73 69 74 69 6f 6e 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 reverse.positions.list..........
72160 20 28 69 66 20 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .(if.backward...............(set
72180 71 20 70 6f 73 69 74 69 6f 6e 73 20 28 72 65 76 65 72 73 65 20 70 6f 73 69 74 69 6f 6e 73 29 29 q.positions.(reverse.positions))
721a0 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 63 6f 72 64 20 77 68 65 74 68 65 72 20 77 )............;;.record.whether.w
721c0 65 27 72 65 20 61 6c 72 65 61 64 79 20 73 69 74 74 69 6e 67 20 6f 6e 20 6f 6e 65 20 6f 66 20 74 e're.already.sitting.on.one.of.t
721e0 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 he.alternatives...........(setq.
72200 70 6f 73 20 28 6d 65 6d 62 65 72 20 63 75 72 2d 69 6e 64 65 6e 74 20 70 6f 73 69 74 69 6f 6e 73 pos.(member.cur-indent.positions
72220 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b ))............(cond............;
72240 3b 20 63 61 73 65 20 30 3a 20 20 77 65 27 72 65 20 6f 6e 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 ;.case.0:..we're.one.one.of.the.
72260 61 6c 74 65 72 6e 61 74 69 76 65 73 20 61 6e 64 20 74 68 69 73 20 69 73 20 74 68 65 0a 20 20 20 alternatives.and.this.is.the....
72280 20 20 20 20 20 20 20 20 3b 3b 20 66 69 72 73 74 20 74 69 6d 65 20 74 68 65 79 27 76 65 20 70 72 ........;;.first.time.they've.pr
722a0 65 73 73 65 64 20 54 41 42 20 6f 6e 20 74 68 69 73 20 6c 69 6e 65 20 28 62 65 73 74 2d 67 75 65 essed.TAB.on.this.line.(best-gue
722c0 73 73 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 69 ss).............((and.js2-mode-i
722e0 6e 64 65 6e 74 2d 69 67 6e 6f 72 65 2d 66 69 72 73 74 2d 74 61 62 0a 20 20 20 20 20 20 20 20 20 ndent-ignore-first-tab..........
72300 20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ........pos..................;;.
72320 66 69 72 73 74 20 74 69 6d 65 20 70 72 65 73 73 69 6e 67 20 54 41 42 20 6f 6e 20 74 68 69 73 20 first.time.pressing.TAB.on.this.
72340 6c 69 6e 65 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 line?..................(not.(eq.
72360 6a 73 32 2d 6d 6f 64 65 2d 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65 20 63 75 72 72 js2-mode-last-indented-line.curr
72380 65 6e 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 20 6e 6f ent-line))).............;;.do.no
723a0 74 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 75 74 65 64 thing.............(setq.computed
723c0 2d 70 6f 73 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a -pos.nil))............;;.case.1:
723e0 20 20 6f 6e 6c 79 20 6f 6e 65 20 63 6f 6d 70 75 74 65 64 20 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 ..only.one.computed.position.=>.
72400 75 73 65 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 28 63 64 72 20 70 6f use.it............((null.(cdr.po
72420 73 69 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 sitions)).............(setq.comp
72440 75 74 65 64 2d 70 6f 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 uted-pos.0))............;;.case.
72460 32 3a 20 20 6e 6f 74 20 6f 6e 20 61 6e 79 20 6f 66 20 74 68 65 20 63 6f 6d 70 75 74 65 64 20 73 2:..not.on.any.of.the.computed.s
72480 70 6f 74 73 20 3d 3e 20 75 73 65 20 6d 61 69 6e 20 73 70 6f 74 0a 20 20 20 20 20 20 20 20 20 20 pots.=>.use.main.spot...........
724a0 20 28 28 6e 6f 74 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f .((not.pos).............(setq.co
724c0 6d 70 75 74 65 64 2d 70 6f 73 20 28 6a 73 32 2d 70 6f 73 69 74 69 6f 6e 20 6d 61 69 6e 2d 70 6f mputed-pos.(js2-position.main-po
724e0 73 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 s.positions)))............;;.cas
72500 65 20 33 3a 20 20 6f 6e 20 6c 61 73 74 20 70 6f 73 69 74 69 6f 6e 3a 20 20 63 79 63 6c 65 20 74 e.3:..on.last.position:..cycle.t
72520 6f 20 66 69 72 73 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 o.first.position............((nu
72540 6c 6c 20 28 63 64 72 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 ll.(cdr.pos)).............(setq.
72560 63 6f 6d 70 75 74 65 64 2d 70 6f 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 computed-pos.0))............;;.c
72580 61 73 65 20 34 3a 20 20 6f 6e 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 70 6f 73 69 74 69 6f 6e ase.4:..on.intermediate.position
725a0 3a 20 20 63 79 63 6c 65 20 74 6f 20 6e 65 78 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 :..cycle.to.next.position.......
725c0 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 75 74 .....(t.............(setq.comput
725e0 65 64 2d 70 6f 73 20 28 6a 73 32 2d 70 6f 73 69 74 69 6f 6e 20 28 63 6c 2d 73 65 63 6f 6e 64 20 ed-pos.(js2-position.(cl-second.
72600 70 6f 73 29 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b pos).positions))))............;;
72620 20 73 65 65 20 69 66 20 61 6e 79 20 68 6f 6f 6b 73 20 77 61 6e 74 20 74 6f 20 69 6e 64 65 6e 74 .see.if.any.hooks.want.to.indent
72640 3b 20 6f 74 68 65 72 77 69 73 65 20 77 65 20 64 6f 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 28 ;.otherwise.we.do.it...........(
72660 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 72 65 73 75 6c 74 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 cl-loop.with.result.=.nil.......
72680 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 68 6f 6f 6b 20 69 6e 20 6a 73 32 2d 69 6e 64 .............for.hook.in.js2-ind
726a0 65 6e 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c ent-hook....................whil
726c0 65 20 28 6e 75 6c 6c 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.(null.result).................
726e0 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 ...do....................(setq.r
72700 65 73 75 6c 74 20 28 66 75 6e 63 61 6c 6c 20 68 6f 6f 6b 20 70 6f 73 69 74 69 6f 6e 73 20 63 6f esult.(funcall.hook.positions.co
72720 6d 70 75 74 65 64 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mputed-pos))....................
72740 66 69 6e 61 6c 6c 79 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 finally.do....................(u
72760 6e 6c 65 73 73 20 28 6f 72 20 72 65 73 75 6c 74 20 28 6e 75 6c 6c 20 63 6f 6d 70 75 74 65 64 2d nless.(or.result.(null.computed-
72780 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 pos))......................(inde
727a0 6e 74 2d 6c 69 6e 65 2d 74 6f 20 28 6e 74 68 20 63 6f 6d 70 75 74 65 64 2d 70 6f 73 20 70 6f 73 nt-line-to.(nth.computed-pos.pos
727c0 69 74 69 6f 6e 73 29 29 29 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 0a 20 20 itions)))))........;;.finally...
727e0 20 20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 64 65 6e 74 2d 69 6e 68 69 62 69 74 2d ....(if.js2-mode-indent-inhibit-
72800 75 6e 64 6f 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f undo...........(setq.buffer-undo
72820 2d 6c 69 73 74 20 6f 6c 64 2d 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 29 29 0a 20 20 20 -list.old-buffer-undo-list))....
72840 20 20 20 3b 3b 20 73 65 65 20 63 6f 6d 6d 65 6e 74 61 72 79 20 66 6f 72 20 60 6a 73 32 2d 6d 6f ...;;.see.commentary.for.`js2-mo
72860 64 65 2d 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65 27 0a 20 20 20 20 20 20 28 73 65 de-last-indented-line'.......(se
72880 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65 20 63 tq.js2-mode-last-indented-line.c
728a0 75 72 72 65 6e 74 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 31 2d 6c 69 urrent-line))))..(defun.js2-1-li
728c0 6e 65 2d 63 6f 6d 6d 65 6e 74 2d 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 2d 70 20 28 29 0a 20 20 22 ne-comment-continuation-p.()..."
728e0 52 65 74 75 72 6e 20 74 20 69 66 20 77 65 27 72 65 20 69 6e 20 61 20 31 2d 6c 69 6e 65 20 63 6f Return.t.if.we're.in.a.1-line.co
72900 6d 6d 65 6e 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 2e 0a 49 66 20 73 6f 2c 20 77 65 20 64 6f mment.continuation..If.so,.we.do
72920 6e 27 74 20 65 76 65 72 20 77 61 6e 74 20 74 6f 20 75 73 65 20 62 6f 75 6e 63 65 2d 69 6e 64 65 n't.ever.want.to.use.bounce-inde
72940 6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 61 6e 64 20 nt."...(save-excursion.....(and.
72960 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 (progn............(forward-line.
72980 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73 2d 2a 0)............(looking-at."\\s-*
729a0 2f 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 //"))..........(progn...........
729c0 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 .(forward-line.-1)............(f
729e0 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 orward-line.0)............(when.
72a00 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73 2d 2a 24 22 29 0a 20 20 20 20 20 20 20 20 20 20 (looking-at."\\s-*$")...........
72a20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 ...(js2-backward-sws)...........
72a40 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(forward-line.0))............
72a60 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73 2d 2a 2f 2f 22 29 29 29 29 29 0a 0a 28 64 65 66 (looking-at."\\s-*//")))))..(def
72a80 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 un.js2-indent-bounce.(&optional.
72aa0 62 61 63 6b 77 61 72 64 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 backward)..."Indent.the.current.
72ac0 6c 69 6e 65 2c 20 62 6f 75 6e 63 69 6e 67 20 62 65 74 77 65 65 6e 20 73 65 76 65 72 61 6c 20 70 line,.bouncing.between.several.p
72ae0 6f 73 69 74 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 ositions."...(interactive)...(le
72b00 74 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 20 6f 66 66 73 65 74 20 69 6e 64 65 6e 74 2d 63 6f t.(parse-status.offset.indent-co
72b20 6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20 65 l.........;;.Don't.whine.about.e
72b40 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e 74 rrors/warnings.when.we're.indent
72b60 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20 73 ing..........;;.This.has.to.be.s
72b80 65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d et.before.calling.parse-partial-
72ba0 73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 70 6f 69 sexp.below..........(inhibit-poi
72bc0 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 61 nt-motion-hooks.t)).....(setq.pa
72be0 72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 rse-status.(save-excursion......
72c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 73 ....................(syntax-ppss
72c20 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 .(point-at-bol)))...........offs
72c40 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 et.(-.(point).(save-excursion...
72c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 ............................(bac
72c80 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k-to-indentation)...............
72ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 3b ................(point)))).....;
72cc0 3b 20 44 6f 6e 27 74 20 74 6f 75 63 68 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 73 2e ;.Don't.touch.multiline.strings.
72ce0 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6e 74 68 20 33 20 70 61 72 73 65 2d 73 74 61 74 75 73 .....(unless.(nth.3.parse-status
72d00 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 63 6f 6c 20 28 6a 73 32 2d 70 72 ).......(setq.indent-col.(js2-pr
72d20 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a oper-indentation.parse-status)).
72d40 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 49 74 20 64 6f 65 73 6e 27 74 ......(cond........;;.It.doesn't
72d60 20 77 6f 72 6b 20 77 65 6c 6c 20 6f 6e 20 66 69 72 73 74 20 6c 69 6e 65 20 6f 66 20 62 75 66 66 .work.well.on.first.line.of.buff
72d80 65 72 2e 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20 28 6e 74 68 20 34 20 70 61 72 er.........((and.(not.(nth.4.par
72da0 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a se-status))..............(not.(j
72dc0 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 s2-same-line.(point-min)))......
72de0 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 31 2d 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 ........(not.(js2-1-line-comment
72e00 2d 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 2d 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d -continuation-p))).........(js2-
72e20 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 20 69 6e 64 65 6e 74 2d 63 6f 6c 20 70 61 72 73 65 2d 73 bounce-indent.indent-col.parse-s
72e40 74 61 74 75 73 20 62 61 63 6b 77 61 72 64 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 6a 75 73 74 20 tatus.backward))........;;.just.
72e60 69 6e 64 65 6e 74 20 74 6f 20 74 68 65 20 67 75 65 73 73 65 72 27 73 20 6c 69 6b 65 6c 79 20 73 indent.to.the.guesser's.likely.s
72e80 70 6f 74 0a 20 20 20 20 20 20 20 28 74 20 28 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 74 6f 20 69 6e pot........(t.(indent-line-to.in
72ea0 64 65 6e 74 2d 63 6f 6c 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 dent-col))).......(when.(cl-plus
72ec0 70 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 p.offset).........(forward-char.
72ee0 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 offset)))))..(defun.js2-indent-b
72f00 6f 75 6e 63 65 2d 62 61 63 6b 77 61 72 64 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 ounce-backward.()..."Indent.the.
72f20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2c 20 62 6f 75 6e 63 69 6e 67 20 62 65 74 77 65 65 6e 20 70 current.line,.bouncing.between.p
72f40 6f 73 69 74 69 6f 6e 73 20 69 6e 20 72 65 76 65 72 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ositions.in.reverse."...(interac
72f60 74 69 76 65 29 0a 20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63 65 20 74 29 29 0a 0a tive)...(js2-indent-bounce.t))..
72f80 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 20 28 73 74 61 72 74 20 (defun.js2-indent-region.(start.
72fa0 65 6e 64 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 72 65 67 69 6f 6e 2c 20 62 75 74 20 64 end)..."Indent.the.region,.but.d
72fc0 6f 6e 27 74 20 75 73 65 20 62 6f 75 6e 63 65 20 69 6e 64 65 6e 74 69 6e 67 2e 22 0a 20 20 28 6c on't.use.bounce.indenting."...(l
72fe0 65 74 20 28 28 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 2d 70 20 6e 69 6c 29 0a 20 20 et.((js2-bounce-indent-p.nil)...
73000 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 ......(indent-region-function.ni
73020 6c 29 0a 20 20 20 20 20 20 20 20 28 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f l).........(after-change-functio
73040 6e 73 20 28 72 65 6d 71 20 27 6a 73 32 2d 6d 6f 64 65 2d 65 64 69 74 0a 20 20 20 20 20 20 20 20 ns.(remq.'js2-mode-edit.........
73060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66 ..............................af
73080 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 28 69 6e 64 ter-change-functions))).....(ind
730a0 65 6e 74 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 20 65 6e 64 20 6e 69 6c 29 20 3b 20 6e 69 6c 20 ent-region.start.end.nil).;.nil.
730c0 66 6f 72 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d for.byte-compiler.....(js2-mode-
730e0 65 64 69 74 20 73 74 61 72 74 20 65 6e 64 20 28 2d 20 65 6e 64 20 73 74 61 72 74 29 29 29 29 0a edit.start.end.(-.end.start)))).
73100 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c .(defvar.js2-minor-mode-map...(l
73120 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a et.((map.(make-sparse-keymap))).
73140 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d ....(define-key.map.(kbd."C-c.C-
73160 60 22 29 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65 72 72 6f 72 29 0a 20 20 20 20 6d 61 70 29 0a 20 `").#'js2-next-error).....map)..
73180 20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 77 68 65 6e 20 60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f ."Keymap.used.when.`js2-minor-mo
731a0 64 65 27 20 69 73 20 61 63 74 69 76 65 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 de'.is.active.")..;;;###autoload
731c0 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f .(define-minor-mode.js2-minor-mo
731e0 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 6a 73 32 de..."Minor.mode.for.running.js2
73200 20 61 73 20 61 20 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 6e 74 65 72 2e 0a 54 68 69 73 20 61 6c .as.a.background.linter..This.al
73220 6c 6f 77 73 20 79 6f 75 20 74 6f 20 75 73 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 6d 61 6a 6f lows.you.to.use.a.different.majo
73240 72 20 6d 6f 64 65 20 66 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 2c 0a 73 r.mode.for.JavaScript.editing,.s
73260 75 63 68 20 61 73 20 60 6a 73 2d 6d 6f 64 65 27 2c 20 77 68 69 6c 65 20 72 65 74 61 69 6e 69 6e uch.as.`js-mode',.while.retainin
73280 67 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 65 72 72 6f 72 2f 77 61 72 6e 69 6e 67 g.the.asynchronous.error/warning
732a0 0a 68 69 67 68 6c 69 67 68 74 69 6e 67 20 66 65 61 74 75 72 65 73 20 6f 66 20 60 6a 73 32 2d 6d .highlighting.features.of.`js2-m
732c0 6f 64 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 6c 69 67 ode'."...:group.'js2-mode...:lig
732e0 68 74 65 72 20 22 20 6a 73 2d 6c 69 6e 74 22 0a 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d hter.".js-lint"...(if.(derived-m
73300 6f 64 65 2d 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 ode-p.'js2-mode).......(setq.js2
73320 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 20 20 28 69 66 20 6a 73 32 2d 6d 69 6e -minor-mode.nil).....(if.js2-min
73340 6f 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d or-mode.........(js2-minor-mode-
73360 65 6e 74 65 72 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69 enter).......(js2-minor-mode-exi
73380 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 6e 74 t))))..(defun.js2-minor-mode-ent
733a0 65 72 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 6f 72 20 60 6a 73 32 er.()..."Initialization.for.`js2
733c0 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 -minor-mode'."...(set.(make-loca
733e0 6c 2d 76 61 72 69 61 62 6c 65 20 27 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 29 l-variable.'max-lisp-eval-depth)
73400 0a 20 20 20 20 20 20 20 28 6d 61 78 20 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 ........(max.max-lisp-eval-depth
73420 20 33 30 30 30 29 29 0a 20 20 28 73 65 74 71 20 6e 65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74 .3000))...(setq.next-error-funct
73440 69 6f 6e 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65 72 72 6f 72 29 0a 20 20 3b 3b 20 45 78 70 65 72 ion.#'js2-next-error)...;;.Exper
73460 69 6d 65 6e 74 3a 20 20 6d 61 6b 65 20 72 65 70 61 72 73 65 2d 64 65 6c 61 79 20 6c 6f 6e 67 65 iment:..make.reparse-delay.longe
73480 72 20 66 6f 72 20 6c 6f 6e 67 65 72 20 66 69 6c 65 73 2e 0a 20 20 28 69 66 20 28 63 6c 2d 70 6c r.for.longer.files....(if.(cl-pl
734a0 75 73 70 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a 75 73 usp.js2-dynamic-idle-timer-adjus
734c0 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 t).......(setq.js2-idle-timer-de
734e0 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 lay.............(*.js2-idle-time
73500 72 2d 64 65 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 70 6f 69 6e 74 r-delay................(/.(point
73520 2d 6d 61 78 29 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a -max).js2-dynamic-idle-timer-adj
73540 75 73 74 29 29 29 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d ust))))...(setq.js2-mode-buffer-
73560 64 69 72 74 79 2d 70 20 74 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 69 dirty-p.t.........js2-mode-parsi
73580 6e 67 20 6e 69 6c 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 ng.nil)...(set.(make-local-varia
735a0 62 6c 65 20 27 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 29 20 30 29 20 3b 20 6e ble.'js2-highlight-level).0).;.n
735c0 6f 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 28 73 65 74 20 28 6d 61 o.syntax.highlighting...(set.(ma
735e0 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e ke-local-variable.'js2-mode-chan
73600 67 65 2d 73 79 6e 74 61 78 2d 70 29 20 6e 69 6c 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 ge-syntax-p).nil)...(add-hook.'a
73620 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 6a 73 32 2d 6d 69 6e 6f fter-change-functions.#'js2-mino
73640 72 2d 6d 6f 64 65 2d 65 64 69 74 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 r-mode-edit.nil.t)...(add-hook.'
73660 63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d 6d 69 6e change-major-mode-hook.#'js2-min
73680 6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20 6e 69 6c 20 74 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d or-mode-exit.nil.t)...(when.js2-
736a0 69 6e 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 0a 20 20 20 20 28 61 64 64 2d include-jslint-globals.....(add-
736c0 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27 hook.'js2-post-parse-callbacks.'
736e0 6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 6e 69 6c 20 74 29 29 js2-apply-jslint-globals.nil.t))
73700 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c ...(when.js2-include-jslint-decl
73720 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a aration-externs.....(add-hook.'j
73740 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70 s2-post-parse-callbacks.'js2-app
73760 6c 79 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 6e 69 ly-jslint-declaration-externs.ni
73780 6c 20 74 29 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 2d 69 6e 69 74 2d 68 6f 6f l.t))...(run-hooks.'js2-init-hoo
737a0 6b 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d k)...(js2-reparse))..(defun.js2-
737c0 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 66 66 20 60 minor-mode-exit.()..."Turn.off.`
737e0 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 73 65 74 71 20 6e 65 78 74 2d 65 js2-minor-mode'."...(setq.next-e
73800 72 72 6f 72 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f rror-function.nil)...(remove-hoo
73820 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 6a 73 32 2d k.'after-change-functions.#'js2-
73840 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 64 69 74 20 74 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f minor-mode-edit.t)...(remove-hoo
73860 6b 20 27 63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d k.'change-major-mode-hook.#'js2-
73880 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20 74 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d minor-mode-exit.t)...(when.js2-m
738a0 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 ode-node-overlay.....(delete-ove
738c0 72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 29 0a 20 20 20 20 rlay.js2-mode-node-overlay).....
738e0 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 20 6e 69 6c 29 (setq.js2-mode-node-overlay.nil)
73900 29 0a 20 20 28 6a 73 32 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 28 72 65 6d )...(js2-remove-overlays)...(rem
73920 6f 76 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 ove-hook.'js2-post-parse-callbac
73940 6b 73 20 27 6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 74 29 0a ks.'js2-apply-jslint-globals.t).
73960 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 ..(remove-hook.'js2-post-parse-c
73980 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 allbacks.'js2-apply-jslint-decla
739a0 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 74 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f ration-externs.t)...(setq.js2-mo
739c0 64 65 2d 61 73 74 20 6e 69 6c 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 73 6f 75 72 63 65 de-ast.nil))..(defvar.js2-source
739e0 2d 62 75 66 66 65 72 20 6e 69 6c 20 22 4c 69 6e 6b 65 64 20 73 6f 75 72 63 65 20 62 75 66 66 65 -buffer.nil."Linked.source.buffe
73a00 72 20 66 6f 72 20 64 69 61 67 6e 6f 73 74 69 63 73 20 76 69 65 77 22 29 0a 28 6d 61 6b 65 2d 76 r.for.diagnostics.view").(make-v
73a20 61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6a 73 32 2d 73 6f 75 72 63 65 ariable-buffer-local.'js2-source
73a40 2d 62 75 66 66 65 72 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 6a 73 32 2d 64 69 73 70 6c 61 79 2d -buffer)..(cl-defun.js2-display-
73a60 65 72 72 6f 72 2d 6c 69 73 74 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 61 20 6e 61 76 69 67 error-list.()..."Display.a.navig
73a80 61 62 6c 65 20 62 75 66 66 65 72 20 6c 69 73 74 69 6e 67 20 70 61 72 73 65 20 65 72 72 6f 72 73 able.buffer.listing.parse.errors
73aa0 2f 77 61 72 6e 69 6e 67 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 /warnings."...(interactive)...(u
73ac0 6e 6c 65 73 73 20 28 6a 73 32 2d 68 61 76 65 2d 65 72 72 6f 72 73 2d 70 29 0a 20 20 20 20 28 6d nless.(js2-have-errors-p).....(m
73ae0 65 73 73 61 67 65 20 22 4e 6f 20 65 72 72 6f 72 73 22 29 0a 20 20 20 20 28 63 6c 2d 72 65 74 75 essage."No.errors").....(cl-retu
73b00 72 6e 2d 66 72 6f 6d 20 6a 73 32 2d 64 69 73 70 6c 61 79 2d 65 72 72 6f 72 2d 6c 69 73 74 29 29 rn-from.js2-display-error-list))
73b20 0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 20 28 28 61 6e 6e 6f 74 61 74 65 2d 6c 69 73 74 0a 20 20 ...(cl-labels.((annotate-list...
73b40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 73 74 20 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 .............(lst.type).........
73b60 20 20 20 20 20 20 20 22 41 64 64 20 64 69 61 67 6e 6f 73 74 69 63 20 54 59 50 45 20 61 6e 64 20 ......."Add.diagnostic.TYPE.and.
73b80 6c 69 6e 65 20 6e 75 6d 62 65 72 20 74 6f 20 65 72 72 73 20 6c 69 73 74 22 0a 20 20 20 20 20 20 line.number.to.errs.list".......
73ba0 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65 72 72 29 0a 20 .........(mapcar.(lambda.(err)..
73bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 72 ........................(list.er
73be0 72 20 74 79 70 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 6e 74 68 20 r.type.(line-number-at-pos.(nth.
73c00 31 20 65 72 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1.err)))).......................
73c20 20 6c 73 74 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 73 72 63 62 75 66 20 28 63 75 72 72 .lst))).....(let*.((srcbuf.(curr
73c40 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 62 75 66 20 ent-buffer))............(errbuf.
73c60 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 6a 73 2d 6c 69 6e 74 2a 22 29 29 (get-buffer-create."*js-lint*"))
73c80 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 73 20 28 61 6e 6e 6f 74 61 74 65 2d 6c 69 ............(errors.(annotate-li
73ca0 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 st.....................(when.js2
73cc0 2d 6d 6f 64 65 2d 61 73 74 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a -mode-ast.(js2-ast-root-errors.j
73ce0 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-mode-ast))...................
73d00 20 20 27 6a 73 32 2d 65 72 72 6f 72 29 29 20 20 3b 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 ..'js2-error))..;.must.be.a.vali
73d20 64 20 66 61 63 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 61 72 6e 69 6e 67 73 d.face.name............(warnings
73d40 20 28 61 6e 6e 6f 74 61 74 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(annotate-list.................
73d60 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 28 6a 73 32 2d 61 73 ......(when.js2-mode-ast.(js2-as
73d80 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 t-root-warnings.js2-mode-ast))..
73da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 77 61 72 6e 69 6e .....................'js2-warnin
73dc0 67 29 29 20 20 3b 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 66 61 63 65 20 6e 61 6d 65 g))..;.must.be.a.valid.face.name
73de0 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 65 72 72 73 20 28 73 6f 72 74 20 28 61 70 70 ............(all-errs.(sort.(app
73e00 65 6e 64 20 65 72 72 6f 72 73 20 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 end.errors.warnings)............
73e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 31 20 65 32 29 20 ................(lambda.(e1.e2).
73e40 28 3c 20 28 63 6c 2d 63 61 64 61 72 20 65 31 29 20 28 63 6c 2d 63 61 64 61 72 20 65 32 29 29 29 (<.(cl-cadar.e1).(cl-cadar.e2)))
73e60 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65 ))).......(with-current-buffer.e
73e80 72 72 62 75 66 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 rrbuf.........(let.((inhibit-rea
73ea0 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 d-only.t))...........(erase-buff
73ec0 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 72 72 20 61 6c 6c 2d 65 er)...........(dolist.(err.all-e
73ee0 72 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 rrs).............(cl-destructuri
73f00 6e 67 2d 62 69 6e 64 20 28 28 6d 73 67 2d 6b 65 79 20 62 65 67 20 5f 65 6e 64 20 26 72 65 73 74 ng-bind.((msg-key.beg._end.&rest
73f20 20 72 65 73 74 29 20 74 79 70 65 20 6c 69 6e 65 29 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 .rest).type.line).err...........
73f40 20 20 20 20 28 69 6e 73 65 72 74 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 ....(insert-text-button.........
73f60 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 6c 69 6e 65 20 25 64 3a 20 25 73 22 20 6c 69 6e .......(format."line.%d:.%s".lin
73f80 65 20 28 6a 73 32 2d 67 65 74 2d 6d 73 67 20 6d 73 67 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 20 e.(js2-get-msg.msg-key))........
73fa0 20 20 20 20 20 20 20 20 27 66 61 63 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........'face.type..............
73fc0 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 22 5c 43 2d 6d 22 0a 20 20 20 20 20 20 20 20 20 20 ..'follow-link."\C-m"...........
73fe0 20 20 20 20 20 27 61 63 74 69 6f 6e 20 27 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6a .....'action.'js2-error-buffer-j
74000 75 6d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6d 73 67 20 28 6a 73 32 ump................'js2-msg.(js2
74020 2d 67 65 74 2d 6d 73 67 20 6d 73 67 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -get-msg.msg-key)...............
74040 20 27 6a 73 32 2d 70 6f 73 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e .'js2-pos.beg)...............(in
74060 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 72 72 6f 72 sert."\n")))).........(js2-error
74080 2d 62 75 66 66 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d -buffer-mode).........(setq.js2-
740a0 73 6f 75 72 63 65 2d 62 75 66 66 65 72 20 73 72 63 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 70 source-buffer.srcbuf).........(p
740c0 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 65 72 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 67 6f op-to-buffer.errbuf).........(go
740e0 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e to-char.(point-min)).........(un
74100 6c 65 73 73 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65 72 72 6f 72 less.(eobp)...........(js2-error
74120 2d 62 75 66 66 65 72 2d 76 69 65 77 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d -buffer-view))))))..(defvar.js2-
74140 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d error-buffer-mode-map...(let.((m
74160 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 ap.(make-sparse-keymap))).....(d
74180 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 6e 22 20 23 27 6a 73 32 2d 65 72 72 6f 72 2d 62 75 efine-key.map."n".#'js2-error-bu
741a0 66 66 65 72 2d 6e 65 78 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 ffer-next).....(define-key.map."
741c0 70 22 20 23 27 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 70 72 65 76 29 0a 20 20 20 20 p".#'js2-error-buffer-prev).....
741e0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20 23 27 6a 73 (define-key.map.(kbd."RET").#'js
74200 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6a 75 6d 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2-error-buffer-jump).....(define
74220 2d 6b 65 79 20 6d 61 70 20 22 6f 22 20 23 27 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d -key.map."o".#'js2-error-buffer-
74240 76 69 65 77 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 71 22 20 23 27 view).....(define-key.map."q".#'
74260 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 71 75 69 74 29 0a 20 20 20 20 6d 61 70 29 0a js2-error-buffer-quit).....map).
74280 20 20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 66 6f 72 20 6a 73 32 20 64 69 61 67 6e 6f 73 74 69 .."Keymap.used.for.js2.diagnosti
742a0 63 73 20 62 75 66 66 65 72 73 2e 22 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d cs.buffers.")..(define-derived-m
742c0 6f 64 65 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6d 6f 64 65 20 73 70 65 63 69 61 ode.js2-error-buffer-mode.specia
742e0 6c 2d 6d 6f 64 65 20 22 4a 53 20 4c 69 6e 74 20 44 69 61 67 6e 6f 73 74 69 63 73 22 0a 20 20 22 l-mode."JS.Lint.Diagnostics"..."
74300 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 6a 73 32 20 64 69 61 67 6e 6f 73 74 69 63 73 20 62 Major.mode.for.js2.diagnostics.b
74320 75 66 66 65 72 73 2e 0a 53 65 6c 65 63 74 69 6e 67 20 61 6e 20 65 72 72 6f 72 20 77 69 6c 6c 20 uffers..Selecting.an.error.will.
74340 6a 75 6d 70 20 69 74 20 74 6f 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 6f 75 jump.it.to.the.corresponding.sou
74360 72 63 65 2d 62 75 66 66 65 72 20 65 72 72 6f 72 2e 0a 5c 5c 7b 6a 73 32 2d 65 72 72 6f 72 2d 62 rce-buffer.error..\\{js2-error-b
74380 75 66 66 65 72 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 28 73 65 74 71 20 74 72 75 6e 63 61 74 uffer-mode-map}"...(setq.truncat
743a0 65 2d 6c 69 6e 65 73 20 74 29 0a 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 e-lines.t)...(set-buffer-modifie
743c0 64 2d 70 20 6e 69 6c 29 0a 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c d-p.nil)...(setq.buffer-read-onl
743e0 79 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6e y.t))..(defun.js2-error-buffer-n
74400 65 78 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 6e 65 78 74 20 65 72 72 6f 72 20 61 6e 64 ext.()..."Move.to.next.error.and
74420 20 76 69 65 77 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 .view.it."...(interactive)...(wh
74440 65 6e 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 en.(zerop.(forward-line.1)).....
74460 28 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 76 69 65 77 29 29 29 0a 0a 28 64 65 66 75 (js2-error-buffer-view)))..(defu
74480 6e 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 70 72 65 76 20 28 29 0a 20 20 22 4d 6f n.js2-error-buffer-prev.()..."Mo
744a0 76 65 20 74 6f 20 70 72 65 76 69 6f 75 73 20 65 72 72 6f 72 20 61 6e 64 20 76 69 65 77 20 69 74 ve.to.previous.error.and.view.it
744c0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 7a 65 72 6f ."...(interactive)...(when.(zero
744e0 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 28 6a 73 32 2d 65 72 p.(forward-line.-1)).....(js2-er
74500 72 6f 72 2d 62 75 66 66 65 72 2d 76 69 65 77 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 ror-buffer-view)))..(defun.js2-e
74520 72 72 6f 72 2d 62 75 66 66 65 72 2d 71 75 69 74 20 28 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 20 rror-buffer-quit.()..."Kill.the.
74540 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 current.buffer."...(interactive)
74560 0a 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 ...(kill-buffer))..(defun.js2-er
74580 72 6f 72 2d 62 75 66 66 65 72 2d 6a 75 6d 70 20 28 26 72 65 73 74 20 69 67 6e 6f 72 65 64 29 0a ror-buffer-jump.(&rest.ignored).
745a0 20 20 22 4a 75 6d 70 20 63 75 72 73 6f 72 20 74 6f 20 63 75 72 72 65 6e 74 20 65 72 72 6f 72 20 .."Jump.cursor.to.current.error.
745c0 69 6e 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 in.source.buffer."...(interactiv
745e0 65 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 76 69 65 e)...(when.(js2-error-buffer-vie
74600 77 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 6a 73 32 2d 73 6f 75 72 63 65 w).....(pop-to-buffer.js2-source
74620 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 -buffer)))..(defun.js2-error-buf
74640 66 65 72 2d 76 69 65 77 20 28 29 0a 20 20 22 53 63 72 6f 6c 6c 20 73 6f 75 72 63 65 20 62 75 66 fer-view.()..."Scroll.source.buf
74660 66 65 72 20 74 6f 20 73 68 6f 77 20 65 72 72 6f 72 20 61 74 20 63 75 72 72 65 6e 74 20 6c 69 6e fer.to.show.error.at.current.lin
74680 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 e."...(interactive)...(cond....(
746a0 28 6e 6f 74 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6a 73 32 2d 65 72 72 6f 72 2d (not.(derived-mode-p.'js2-error-
746c0 62 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 20 buffer-mode)).....(message."Not.
746e0 69 6e 20 61 20 6a 73 32 20 65 72 72 6f 72 73 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 28 28 6e in.a.js2.errors.buffer"))....((n
74700 6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 6a 73 32 2d 73 6f 75 72 63 65 2d 62 75 66 ot.(buffer-live-p.js2-source-buf
74720 66 65 72 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 6f 75 72 63 65 20 62 75 66 66 65 fer)).....(message."Source.buffe
74740 72 20 68 61 73 20 62 65 65 6e 20 6b 69 6c 6c 65 64 22 29 29 0a 20 20 20 28 28 6e 6f 74 20 28 77 r.has.been.killed"))....((not.(w
74760 68 6f 6c 65 6e 75 6d 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 holenump.(get-text-property.(poi
74780 6e 74 29 20 27 6a 73 32 2d 70 6f 73 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 54 68 nt).'js2-pos))).....(message."Th
747a0 65 72 65 20 64 6f 65 73 20 6e 6f 74 20 73 65 65 6d 20 74 6f 20 62 65 20 61 6e 20 65 72 72 6f 72 ere.does.not.seem.to.be.an.error
747c0 20 68 65 72 65 22 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 67 .here"))....(t.....(let.((pos.(g
747e0 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6a 73 32 2d 70 6f et-text-property.(point).'js2-po
74800 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 73 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f s))...........(msg.(get-text-pro
74820 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6a 73 32 2d 6d 73 67 29 29 29 0a 20 20 20 20 20 20 perty.(point).'js2-msg))).......
74840 28 73 61 76 65 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 28 70 (save-selected-window.........(p
74860 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 6a 73 32 2d 73 6f 75 72 63 65 2d 62 75 66 66 65 72 29 0a op-to-buffer.js2-source-buffer).
74880 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 ........(goto-char.pos).........
748a0 28 6d 65 73 73 61 67 65 20 6d 73 67 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f (message.msg))))))..;;;###autolo
748c0 61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6a 73 32 2d 6d 6f 64 65 ad.(define-derived-mode.js2-mode
748e0 20 6a 73 2d 6d 6f 64 65 20 22 4a 61 76 61 73 63 72 69 70 74 2d 49 44 45 22 0a 20 20 22 4d 61 6a .js-mode."Javascript-IDE"..."Maj
74900 6f 72 20 6d 6f 64 65 20 66 6f 72 20 65 64 69 74 69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20 63 or.mode.for.editing.JavaScript.c
74920 6f 64 65 2e 22 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c ode."...(set.(make-local-variabl
74940 65 20 27 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 29 0a 20 20 20 20 20 20 20 28 e.'max-lisp-eval-depth)........(
74960 6d 61 78 20 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 20 33 30 30 30 29 29 0a 20 max.max-lisp-eval-depth.3000))..
74980 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 69 6e 64 65 .(set.(make-local-variable.'inde
749a0 6e 74 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c nt-line-function).#'js2-indent-l
749c0 69 6e 65 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 ine)...(set.(make-local-variable
749e0 20 27 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d .'indent-region-function).#'js2-
74a00 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 indent-region)...(set.(make-loca
74a20 6c 2d 76 61 72 69 61 62 6c 65 20 27 73 79 6e 74 61 78 2d 70 72 6f 70 65 72 74 69 7a 65 2d 66 75 l-variable.'syntax-propertize-fu
74a40 6e 63 74 69 6f 6e 29 20 6e 69 6c 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d nction).nil)...(set.(make-local-
74a60 76 61 72 69 61 62 6c 65 20 27 63 6f 6d 6d 65 6e 74 2d 6c 69 6e 65 2d 62 72 65 61 6b 2d 66 75 6e variable.'comment-line-break-fun
74a80 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 29 0a 20 20 28 73 65 74 20 ction).#'js2-line-break)...(set.
74aa0 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 62 65 67 69 6e 6e 69 6e 67 2d (make-local-variable.'beginning-
74ac0 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 62 65 67 69 6e 6e 69 of-defun-function).#'js2-beginni
74ae0 6e 67 2d 6f 66 2d 64 65 66 75 6e 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d ng-of-defun)...(set.(make-local-
74b00 76 61 72 69 61 62 6c 65 20 27 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 29 variable.'end-of-defun-function)
74b20 20 23 27 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 29 0a 20 20 3b 3b 20 57 65 20 75 6e 2d .#'js2-end-of-defun)...;;.We.un-
74b40 63 6f 6e 66 75 73 65 20 60 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 27 20 62 79 20 confuse.`parse-partial-sexp'.by.
74b60 73 65 74 74 69 6e 67 20 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 70 72 6f 70 65 72 74 69 65 73 0a setting.syntax-table.properties.
74b80 20 20 3b 3b 20 66 6f 72 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 73 69 64 65 20 72 65 67 65 78 ..;;.for.characters.inside.regex
74ba0 70 20 6c 69 74 65 72 61 6c 73 2e 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 p.literals....(set.(make-local-v
74bc0 61 72 69 61 62 6c 65 20 27 70 61 72 73 65 2d 73 65 78 70 2d 6c 6f 6f 6b 75 70 2d 70 72 6f 70 65 ariable.'parse-sexp-lookup-prope
74be0 72 74 69 65 73 29 20 74 29 0a 20 20 3b 3b 20 74 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 rties).t)...;;.this.is.necessary
74c00 20 74 6f 20 6d 61 6b 65 20 60 73 68 6f 77 2d 70 61 72 65 6e 2d 66 75 6e 63 74 69 6f 6e 27 20 77 .to.make.`show-paren-function'.w
74c20 6f 72 6b 20 70 72 6f 70 65 72 6c 79 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d ork.properly...(set.(make-local-
74c40 76 61 72 69 61 62 6c 65 20 27 70 61 72 73 65 2d 73 65 78 70 2d 69 67 6e 6f 72 65 2d 63 6f 6d 6d variable.'parse-sexp-ignore-comm
74c60 65 6e 74 73 29 20 74 29 0a 20 20 3b 3b 20 6e 65 65 64 65 64 20 66 6f 72 20 4d 2d 78 20 72 67 72 ents).t)...;;.needed.for.M-x.rgr
74c80 65 70 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 20 74 68 69 6e 67 73 0a 20 20 28 70 75 74 20 27 6a ep,.among.other.things...(put.'j
74ca0 73 32 2d 6d 6f 64 65 20 27 66 69 6e 64 2d 74 61 67 2d 64 65 66 61 75 6c 74 2d 66 75 6e 63 74 69 s2-mode.'find-tag-default-functi
74cc0 6f 6e 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 74 61 67 29 0a 0a 20 20 28 73 65 74 71 on.#'js2-mode-find-tag)....(setq
74ce0 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 20 27 28 6e 69 6c 20 74 29 29 0a 0a 20 .font-lock-defaults.'(nil.t))...
74d00 20 3b 3b 20 45 78 70 65 72 69 6d 65 6e 74 3a 20 20 6d 61 6b 65 20 72 65 70 61 72 73 65 2d 64 65 .;;.Experiment:..make.reparse-de
74d20 6c 61 79 20 6c 6f 6e 67 65 72 20 66 6f 72 20 6c 6f 6e 67 65 72 20 66 69 6c 65 73 2e 0a 20 20 28 lay.longer.for.longer.files....(
74d40 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 70 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d when.(cl-plusp.js2-dynamic-idle-
74d60 74 69 6d 65 72 2d 61 64 6a 75 73 74 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 64 6c 65 timer-adjust).....(setq.js2-idle
74d80 2d 74 69 6d 65 72 2d 64 65 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 2a 20 6a 73 32 2d 69 64 -timer-delay...........(*.js2-id
74da0 6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28 le-timer-delay..............(/.(
74dc0 70 6f 69 6e 74 2d 6d 61 78 29 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65 point-max).js2-dynamic-idle-time
74de0 72 2d 61 64 6a 75 73 74 29 29 29 29 0a 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 68 61 6e 67 r-adjust))))....(add-hook.'chang
74e00 65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 65 78 69 e-major-mode-hook.#'js2-mode-exi
74e20 74 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e t.nil.t)...(add-hook.'after-chan
74e40 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 65 64 69 74 20 6e 69 6c ge-functions.#'js2-mode-edit.nil
74e60 20 74 29 0a 20 20 28 73 65 74 71 20 69 6d 65 6e 75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66 .t)...(setq.imenu-create-index-f
74e80 75 6e 63 74 69 6f 6e 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d unction.#'js2-mode-create-imenu-
74ea0 69 6e 64 65 78 29 0a 20 20 28 73 65 74 71 20 6e 65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74 69 index)...(setq.next-error-functi
74ec0 6f 6e 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65 72 72 6f 72 29 0a 20 20 28 69 6d 65 6e 75 2d 61 64 on.#'js2-next-error)...(imenu-ad
74ee0 64 2d 74 6f 2d 6d 65 6e 75 62 61 72 20 28 63 6f 6e 63 61 74 20 22 49 4d 2d 22 20 6d 6f 64 65 2d d-to-menubar.(concat."IM-".mode-
74f00 6e 61 6d 65 29 29 0a 20 20 28 61 64 64 2d 74 6f 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 name))...(add-to-invisibility-sp
74f20 65 63 20 27 28 6a 73 32 2d 6f 75 74 6c 69 6e 65 20 2e 20 74 29 29 0a 20 20 28 73 65 74 20 28 6d ec.'(js2-outline...t))...(set.(m
74f40 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 6c 69 6e 65 2d 6d 6f 76 65 2d 69 67 ake-local-variable.'line-move-ig
74f60 6e 6f 72 65 2d 69 6e 76 69 73 69 62 6c 65 29 20 74 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d nore-invisible).t)...(set.(make-
74f80 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e local-variable.'forward-sexp-fun
74fa0 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 64 2d 73 65 78 70 29 0a ction).#'js2-mode-forward-sexp).
74fc0 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d ..(when.(fboundp.'cursor-sensor-
74fe0 6d 6f 64 65 29 20 28 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 6d 6f 64 65 20 31 29 29 0a 0a 20 mode).(cursor-sensor-mode.1))...
75000 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 73 2d 68 69 64 64 65 6e .(setq.js2-mode-functions-hidden
75020 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 .nil.........js2-mode-comments-h
75040 69 64 64 65 6e 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 idden.nil.........js2-mode-buffe
75060 72 2d 64 69 72 74 79 2d 70 20 74 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 r-dirty-p.t.........js2-mode-par
75080 73 69 6e 67 20 6e 69 6c 29 0a 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a sing.nil)....(when.js2-include-j
750a0 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 slint-globals.....(add-hook.'js2
750c0 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70 6c 79 -post-parse-callbacks.'js2-apply
750e0 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 6e 69 6c 20 74 29 29 0a 20 20 28 77 68 65 6e 20 -jslint-globals.nil.t))...(when.
75100 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 js2-include-jslint-declaration-e
75120 78 74 65 72 6e 73 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70 xterns.....(add-hook.'js2-post-p
75140 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 arse-callbacks.'js2-apply-jslint
75160 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 6e 69 6c 20 74 29 29 0a 0a 20 20 -declaration-externs.nil.t))....
75180 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 2d 69 6e 69 74 2d 68 6f 6f 6b 29 0a 0a 20 20 28 6c (run-hooks.'js2-init-hook)....(l
751a0 65 74 20 28 28 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 20 30 29 29 0a 20 20 et.((js2-idle-timer-delay.0))...
751c0 20 20 3b 3b 20 53 63 68 65 64 75 6c 65 20 70 61 72 73 69 6e 67 20 66 6f 72 20 61 66 74 65 72 20 ..;;.Schedule.parsing.for.after.
751e0 77 68 65 6e 20 74 68 65 20 6d 6f 64 65 20 68 6f 6f 6b 73 20 72 75 6e 2e 0a 20 20 20 20 28 6a 73 when.the.mode.hooks.run......(js
75200 32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d 65 72 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 2-mode-reset-timer)))..;;;###aut
75220 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6a 73 32 2d 6a oload.(define-derived-mode.js2-j
75240 73 78 2d 6d 6f 64 65 20 6a 73 32 2d 6d 6f 64 65 20 22 4a 53 58 2d 49 44 45 22 0a 20 20 22 4d 61 sx-mode.js2-mode."JSX-IDE"..."Ma
75260 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 65 64 69 74 69 6e 67 20 4a 53 58 20 63 6f 64 65 20 69 6e jor.mode.for.editing.JSX.code.in
75280 20 45 6d 61 63 73 20 32 36 20 61 6e 64 20 65 61 72 6c 69 65 72 2e 0a 0a 54 6f 20 65 64 69 74 20 .Emacs.26.and.earlier...To.edit.
752a0 4a 53 58 20 63 6f 64 65 20 69 6e 20 45 6d 61 63 73 20 32 37 2c 20 75 73 65 20 60 6a 73 2d 6d 6f JSX.code.in.Emacs.27,.use.`js-mo
752c0 64 65 27 20 61 73 20 79 6f 75 72 20 6d 61 6a 6f 72 20 6d 6f 64 65 0a 77 69 74 68 20 60 6a 73 32 de'.as.your.major.mode.with.`js2
752e0 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 65 6e 61 62 6c 65 64 2e 0a 0a 54 6f 20 63 75 73 74 6f 6d -minor-mode'.enabled...To.custom
75300 69 7a 65 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 6d 6f 64 ize.the.indentation.for.this.mod
75320 65 2c 20 73 65 74 20 74 68 65 20 53 47 4d 4c 20 6f 66 66 73 65 74 0a 76 61 72 69 61 62 6c 65 73 e,.set.the.SGML.offset.variables
75340 20 28 60 73 67 6d 6c 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 27 20 65 74 20 61 6c 29 20 6c 6f 63 .(`sgml-basic-offset'.et.al).loc
75360 61 6c 6c 79 2c 20 6c 69 6b 65 20 73 6f 3a 0a 0a 20 20 28 64 65 66 75 6e 20 73 65 74 2d 6a 73 78 ally,.like.so:....(defun.set-jsx
75380 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 28 29 0a 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 -indentation.().....(setq-local.
753a0 73 67 6d 6c 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 sgml-basic-offset.js2-basic-offs
753c0 65 74 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 5c 5c 3d 27 6a 73 32 2d 6a 73 78 2d 6d 6f 64 et))...(add-hook.\\='js2-jsx-mod
753e0 65 2d 68 6f 6f 6b 20 23 5c 5c 3d 27 73 65 74 2d 6a 73 78 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 e-hook.#\\='set-jsx-indentation)
75400 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 76 65 72 73 69 6f 6e 3c 20 65 6d 61 63 73 2d 76 65 72 73 "...(unless.(version<.emacs-vers
75420 69 6f 6e 20 22 32 37 2e 30 22 29 0a 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 32 37 20 63 61 75 73 ion."27.0").....;;.Emacs.27.caus
75440 65 73 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 69 73 20 6d 6f 64 65 20 73 69 6e es.a.regression.in.this.mode.sin
75460 63 65 20 4a 53 58 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 3b 3b 20 62 65 67 69 6e 73 ce.JSX.indentation.....;;.begins
75480 20 74 6f 20 72 65 6c 79 20 6f 6e 20 6a 73 2d 6d 6f 64 65 e2 80 99 73 20 60 73 79 6e 74 61 78 2d .to.rely.on.js-mode...s.`syntax-
754a0 70 72 6f 70 65 72 74 69 7a 65 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 77 68 69 63 68 0a 20 20 20 20 propertize-function',.which.....
754c0 3b 3b 20 4a 53 32 20 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 69 6e 67 2e 0a 20 ;;.JS2.is.not.currently.using...
754e0 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 ...;;.https://github.com/mooz/js
75500 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 32 39 20 73 68 6f 75 6c 64 20 61 64 64 72 65 73 73 2-mode/issues/529.should.address
75520 0a 20 20 20 20 3b 3b 20 74 68 69 73 2e 20 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f .....;;.this...https://github.co
75540 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 33 30 20 61 6c 73 6f 20 m/mooz/js2-mode/issues/530.also.
75560 68 61 73 20 61 0a 20 20 20 20 3b 3b 20 70 69 65 63 65 20 72 65 6c 61 74 65 64 20 74 6f 20 74 68 has.a.....;;.piece.related.to.th
75580 65 20 64 65 73 69 67 6e 20 6f 66 20 60 6a 73 32 2d 6a 73 78 2d 6d 6f 64 65 27 2e 20 20 55 6e 74 e.design.of.`js2-jsx-mode'...Unt
755a0 69 6c 20 74 68 65 73 65 0a 20 20 20 20 3b 3b 20 69 73 73 75 65 73 20 61 72 65 20 61 64 64 72 65 il.these.....;;.issues.are.addre
755c0 73 73 65 64 2c 20 77 61 72 64 20 45 6d 61 63 73 20 32 37 20 75 73 65 72 73 20 61 77 61 79 20 66 ssed,.ward.Emacs.27.users.away.f
755e0 72 6f 6d 20 74 68 69 73 20 6d 6f 64 65 2e 0a 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e rom.this.mode......(display-warn
75600 69 6e 67 20 27 6a 73 32 2d 6d 6f 64 65 20 22 46 6f 72 20 4a 53 58 20 73 75 70 70 6f 72 74 2c 20 ing.'js2-mode."For.JSX.support,.
75620 75 73 65 20 6a 73 2d 6d 6f 64 65 20 77 69 74 68 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 22 use.js-mode.with.js2-minor-mode"
75640 29 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 ))...(set.(make-local-variable.'
75660 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 6a 73 78 2d indent-line-function).#'js2-jsx-
75680 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 65 indent-line))..(defun.js2-mode-e
756a0 78 69 74 20 28 29 0a 20 20 22 45 78 69 74 20 60 6a 73 32 2d 6d 6f 64 65 27 20 61 6e 64 20 63 6c xit.()..."Exit.`js2-mode'.and.cl
756c0 65 61 6e 20 75 70 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e ean.up."...(interactive)...(when
756e0 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 64 65 6c 65 .js2-mode-node-overlay.....(dele
75700 74 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 te-overlay.js2-mode-node-overlay
75720 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 ).....(setq.js2-mode-node-overla
75740 79 20 6e 69 6c 29 29 0a 20 20 28 6a 73 32 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 29 0a y.nil))...(js2-remove-overlays).
75760 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 6e 69 6c 29 0a 20 20 28 72 65 6d ..(setq.js2-mode-ast.nil)...(rem
75780 6f 76 65 2d 68 6f 6f 6b 20 27 63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b ove-hook.'change-major-mode-hook
757a0 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 65 78 69 74 20 74 29 0a 20 20 28 72 65 6d 6f 76 65 2d 66 72 .#'js2-mode-exit.t)...(remove-fr
757c0 6f 6d 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70 65 63 20 27 28 6a 73 32 2d 6f 75 74 6c 69 om-invisibility-spec.'(js2-outli
757e0 6e 65 20 2e 20 74 29 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 29 0a 20 ne...t))...(js2-mode-show-all)..
75800 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 .(with-silent-modifications.....
75820 28 6a 73 32 2d 63 6c 65 61 72 2d 66 61 63 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 (js2-clear-face.(point-min).(poi
75840 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65 nt-max))))..(defun.js2-mode-rese
75860 74 2d 74 69 6d 65 72 20 28 29 0a 20 20 22 43 61 6e 63 65 6c 20 61 6e 79 20 65 78 69 73 74 69 6e t-timer.()..."Cancel.any.existin
75880 67 20 70 61 72 73 65 20 74 69 6d 65 72 20 61 6e 64 20 73 63 68 65 64 75 6c 65 20 61 20 6e 65 77 g.parse.timer.and.schedule.a.new
758a0 20 6f 6e 65 2e 22 0a 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 65 2d 74 69 6d 65 .one."...(if.js2-mode-parse-time
758c0 72 0a 20 20 20 20 20 20 28 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 6a 73 32 2d 6d 6f 64 65 2d 70 r.......(cancel-timer.js2-mode-p
758e0 61 72 73 65 2d 74 69 6d 65 72 29 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 arse-timer))...(setq.js2-mode-pa
75900 72 73 69 6e 67 20 6e 69 6c 29 0a 20 20 28 6c 65 74 20 28 28 74 69 6d 65 72 20 28 74 69 6d 65 72 rsing.nil)...(let.((timer.(timer
75920 2d 63 72 65 61 74 65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 -create))).....(setq.js2-mode-pa
75940 72 73 65 2d 74 69 6d 65 72 20 74 69 6d 65 72 29 0a 20 20 20 20 28 74 69 6d 65 72 2d 73 65 74 2d rse-timer.timer).....(timer-set-
75960 66 75 6e 63 74 69 6f 6e 20 74 69 6d 65 72 20 27 6a 73 32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 function.timer.'js2-mode-idle-re
75980 70 61 72 73 65 20 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 parse.(list.(current-buffer)))..
759a0 20 20 20 28 74 69 6d 65 72 2d 73 65 74 2d 69 64 6c 65 2d 74 69 6d 65 20 74 69 6d 65 72 20 6a 73 ...(timer-set-idle-time.timer.js
759c0 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 29 0a 20 20 20 20 3b 3b 20 68 74 74 70 3a 2-idle-timer-delay).....;;.http:
759e0 2f 2f 64 65 62 62 75 67 73 2e 67 6e 75 2e 6f 72 67 2f 63 67 69 2f 62 75 67 72 65 70 6f 72 74 2e //debbugs.gnu.org/cgi/bugreport.
75a00 63 67 69 3f 62 75 67 3d 31 32 33 32 36 0a 20 20 20 20 28 74 69 6d 65 72 2d 61 63 74 69 76 61 74 cgi?bug=12326.....(timer-activat
75a20 65 2d 77 68 65 6e 2d 69 64 6c 65 20 74 69 6d 65 72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e e-when-idle.timer.nil)))..(defun
75a40 20 6a 73 32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 70 61 72 73 65 20 28 62 75 66 66 65 72 29 0a .js2-mode-idle-reparse.(buffer).
75a60 20 20 22 52 75 6e 20 60 6a 73 32 2d 72 65 70 61 72 73 65 27 20 69 66 20 42 55 46 46 45 52 20 69 .."Run.`js2-reparse'.if.BUFFER.i
75a80 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 6f 72 20 73 63 68 65 64 75 6c s.the.current.buffer,.or.schedul
75aa0 65 0a 69 74 20 74 6f 20 62 65 20 72 65 70 61 72 73 65 64 20 77 68 65 6e 20 74 68 65 20 62 75 66 e.it.to.be.reparsed.when.the.buf
75ac0 66 65 72 20 69 73 20 73 65 6c 65 63 74 65 64 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 20 62 fer.is.selected."...(cond.((eq.b
75ae0 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 uffer.(current-buffer)).........
75b00 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 29 0a 20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72 .(js2-reparse)).........((buffer
75b20 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 70 61 -live-p.buffer)..........;;.repa
75b40 72 73 65 20 77 68 65 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 73 65 6c 65 63 74 65 64 20 rse.when.the.buffer.is.selected.
75b60 61 67 61 69 6e 0a 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 again..........(with-current-buf
75b80 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 fer.buffer............(add-hook.
75ba0 27 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 63 68 61 6e 67 65 2d 68 6f 6f 'window-configuration-change-hoo
75bc0 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 6d 6f 64 k......................#'js2-mod
75be0 65 2d 69 64 6c 65 2d 72 65 70 61 72 73 65 2d 69 6e 6e 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 e-idle-reparse-inner............
75c00 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 ..........nil.t)))))..(defun.js2
75c20 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 70 61 72 73 65 2d 69 6e 6e 65 72 20 28 29 0a 20 20 28 72 -mode-idle-reparse-inner.()...(r
75c40 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e emove-hook.'window-configuration
75c60 2d 63 68 61 6e 67 65 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73 -change-hook................#'js
75c80 32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 70 61 72 73 65 2d 69 6e 6e 65 72 0a 20 20 20 20 20 20 2-mode-idle-reparse-inner.......
75ca0 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 29 0a 0a 28 64 .........t)...(js2-reparse))..(d
75cc0 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 65 64 69 74 20 28 5f 62 65 67 20 5f 65 6e 64 20 5f 6c efun.js2-mode-edit.(_beg._end._l
75ce0 65 6e 29 0a 20 20 22 53 63 68 65 64 75 6c 65 20 61 20 6e 65 77 20 70 61 72 73 65 20 61 66 74 65 en)..."Schedule.a.new.parse.afte
75d00 72 20 62 75 66 66 65 72 20 69 73 20 65 64 69 74 65 64 2e 0a 42 75 66 66 65 72 20 65 64 69 74 20 r.buffer.is.edited..Buffer.edit.
75d20 73 70 61 6e 73 20 66 72 6f 6d 20 42 45 47 20 74 6f 20 45 4e 44 20 61 6e 64 20 69 73 20 6f 66 20 spans.from.BEG.to.END.and.is.of.
75d40 6c 65 6e 67 74 68 20 4c 45 4e 2e 22 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 length.LEN."...(setq.js2-mode-bu
75d60 66 66 65 72 2d 64 69 72 74 79 2d 70 20 74 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 ffer-dirty-p.t)...(js2-mode-hide
75d80 2d 6f 76 65 72 6c 61 79 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d 65 -overlay)...(js2-mode-reset-time
75da0 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 64 69 74 20 r))..(defun.js2-minor-mode-edit.
75dc0 28 5f 62 65 67 20 5f 65 6e 64 20 5f 6c 65 6e 29 0a 20 20 22 43 61 6c 6c 62 61 63 6b 20 66 6f 72 (_beg._end._len)..."Callback.for
75de0 20 62 75 66 66 65 72 20 65 64 69 74 73 20 69 6e 20 60 6a 73 32 2d 6d 6f 64 65 27 2e 0a 53 63 68 .buffer.edits.in.`js2-mode'..Sch
75e00 65 64 75 6c 65 73 20 61 20 6e 65 77 20 70 61 72 73 65 20 61 66 74 65 72 20 62 75 66 66 65 72 20 edules.a.new.parse.after.buffer.
75e20 69 73 20 65 64 69 74 65 64 2e 0a 42 75 66 66 65 72 20 65 64 69 74 20 73 70 61 6e 73 20 66 72 6f is.edited..Buffer.edit.spans.fro
75e40 6d 20 42 45 47 20 74 6f 20 45 4e 44 20 61 6e 64 20 69 73 20 6f 66 20 6c 65 6e 67 74 68 20 4c 45 m.BEG.to.END.and.is.of.length.LE
75e60 4e 2e 22 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74 N."...(setq.js2-mode-buffer-dirt
75e80 79 2d 70 20 74 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 6f 76 65 72 6c 61 79 29 y-p.t)...(js2-mode-hide-overlay)
75ea0 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d 65 72 29 29 0a 0a 28 64 65 66 ...(js2-mode-reset-timer))..(def
75ec0 75 6e 20 6a 73 32 2d 72 65 70 61 72 73 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29 un.js2-reparse.(&optional.force)
75ee0 0a 20 20 22 52 65 2d 70 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 66 74 65 ..."Re-parse.current.buffer.afte
75f00 72 20 75 73 65 72 20 66 69 6e 69 73 68 65 73 20 73 6f 6d 65 20 64 61 74 61 20 65 6e 74 72 79 2e r.user.finishes.some.data.entry.
75f20 0a 49 66 20 77 65 20 67 65 74 20 61 6e 79 20 75 73 65 72 20 69 6e 70 75 74 20 77 68 69 6c 65 20 .If.we.get.any.user.input.while.
75f40 70 61 72 73 69 6e 67 2c 20 69 6e 63 6c 75 64 69 6e 67 20 63 75 72 73 6f 72 20 6d 6f 74 69 6f 6e parsing,.including.cursor.motion
75f60 2c 0a 77 65 20 64 69 73 63 61 72 64 20 74 68 65 20 70 61 72 73 65 20 61 6e 64 20 72 65 73 63 68 ,.we.discard.the.parse.and.resch
75f80 65 64 75 6c 65 20 69 74 2e 20 20 49 66 20 46 4f 52 43 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 6e edule.it...If.FORCE.is.nil,.then
75fa0 20 74 68 65 0a 62 75 66 66 65 72 20 77 69 6c 6c 20 6f 6e 6c 79 20 72 65 62 75 69 6c 64 20 69 74 .the.buffer.will.only.rebuild.it
75fc0 73 20 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 27 20 69 66 20 74 68 65 20 62 75 66 66 65 72 20 69 s.`js2-mode-ast'.if.the.buffer.i
75fe0 73 20 64 69 72 74 79 2e 22 0a 20 20 28 6c 65 74 20 28 74 69 6d 65 0a 20 20 20 20 20 20 20 20 69 s.dirty."...(let.(time.........i
76000 6e 74 65 72 72 75 70 74 65 64 2d 70 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 69 6c nterrupted-p.........(js2-compil
76020 65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 er-strict-mode.js2-mode-show-str
76040 69 63 74 2d 77 61 72 6e 69 6e 67 73 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 6d ict-warnings)).....(unless.js2-m
76060 6f 64 65 2d 70 61 72 73 69 6e 67 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 ode-parsing.......(setq.js2-mode
76080 2d 70 61 72 73 69 6e 67 20 74 29 0a 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 -parsing.t).......(unwind-protec
760a0 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 6a 73 32 2d 6d 6f 64 65 2d 62 t...........(when.(or.js2-mode-b
760c0 75 66 66 65 72 2d 64 69 72 74 79 2d 70 20 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 uffer-dirty-p.force)............
760e0 20 28 6a 73 32 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 20 20 20 20 20 .(js2-remove-overlays)..........
76100 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74 79 2d 70 ...(setq.js2-mode-buffer-dirty-p
76120 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d .nil...................js2-mode-
76140 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 fontifications.nil..............
76160 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d 70 72 6f 70 65 72 74 69 65 .....js2-mode-deferred-propertie
76180 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d s.nil).............(if.js2-mode-
761a0 76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 verbose-parse-p.................
761c0 28 6d 65 73 73 61 67 65 20 22 70 61 72 73 69 6e 67 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 (message."parsing...")).........
761e0 20 20 20 20 28 73 65 74 71 20 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(setq.time..................
76200 20 28 6a 73 32 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 .(js2-time....................(s
76220 65 74 71 20 69 6e 74 65 72 72 75 70 74 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 etq.interrupted-p...............
76240 20 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27 69 6e 74 65 72 72 75 70 74 65 64 0a 20 ...........(catch.'interrupted..
76260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 ..........................(js2-p
76280 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arse)...........................
762a0 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 .(with-silent-modifications.....
762c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 70 .........................;;.if.p
762e0 61 72 73 69 6e 67 20 69 73 20 69 6e 74 65 72 72 75 70 74 65 64 2c 20 63 6f 6d 6d 65 6e 74 73 20 arsing.is.interrupted,.comments.
76300 61 6e 64 20 72 65 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 and.regex.......................
76320 20 20 20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61 6c 73 20 73 74 61 79 20 69 67 6e 6f 72 65 64 20 .......;;.literals.stay.ignored.
76340 62 79 20 60 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 27 0a 20 20 20 20 20 20 20 20 by.`parse-partial-sexp'.........
76360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d .....................(when.js2-m
76380 6f 64 65 2d 63 68 61 6e 67 65 2d 73 79 6e 74 61 78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 ode-change-syntax-p.............
763a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d ...................(remove-text-
763c0 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 properties.(point-min).(point-ma
763e0 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x)..............................
76400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 73 79 6e 74 ..........................'(synt
76420 61 78 2d 74 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ax-table))).....................
76440 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 61 70 70 6c 79 2d 64 65 66 65 72 72 65 .........(js2-mode-apply-deferre
76460 64 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-properties)...................
76480 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 72 65 6d 6f 76 65 2d 73 75 70 70 ...........(js2-mode-remove-supp
764a0 72 65 73 73 65 64 2d 77 61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ressed-warnings)................
764c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72 ..............(js2-mode-show-war
764e0 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nings)..........................
76500 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 ....(js2-mode-show-errors)......
76520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 ........................(if.(>=.
76540 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 20 31 29 0a 20 20 20 20 20 20 20 20 20 js2-highlight-level.1)..........
76560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 68 69 67 ........................(js2-hig
76580 68 6c 69 67 68 74 2d 6a 73 64 6f 63 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 0a 20 20 20 hlight-jsdoc.js2-mode-ast)))....
765a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a ........................nil)))).
765c0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 74 65 72 72 75 70 74 65 64 2d 70 0a 20 20 ............(if.interrupted-p...
765e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(progn............
76600 20 20 20 20 20 20 20 3b 3b 20 75 6e 66 69 6e 69 73 68 65 64 20 70 61 72 73 65 20 3d 3e 20 74 72 .......;;.unfinished.parse.=>.tr
76620 79 20 61 67 61 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 y.again...................(setq.
76640 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74 79 2d 70 20 74 29 0a 20 20 20 20 20 js2-mode-buffer-dirty-p.t)......
76660 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d .............(js2-mode-reset-tim
76680 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d er))...............(if.js2-mode-
766a0 76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 verbose-parse-p.................
766c0 20 20 28 6d 65 73 73 61 67 65 20 22 50 61 72 73 65 20 74 69 6d 65 3a 20 25 73 22 20 74 69 6d 65 ..(message."Parse.time:.%s".time
766e0 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 )))).........(setq.js2-mode-pars
76700 69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 74 65 72 72 75 ing.nil).........(unless.interru
76720 70 74 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d pted-p...........(setq.js2-mode-
76740 70 61 72 73 65 2d 74 69 6d 65 72 20 6e 69 6c 29 29 29 29 29 29 0a 0a 3b 3b 20 57 65 20 62 6f 75 parse-timer.nil))))))..;;.We.bou
76760 6e 64 20 69 74 20 74 6f 20 5b 6d 6f 75 73 65 2d 31 5d 20 70 72 65 76 69 6f 75 73 6c 79 2e 20 20 nd.it.to.[mouse-1].previously...
76780 42 75 74 20 74 68 65 20 73 69 67 6e 61 74 75 72 65 20 6f 66 0a 3b 3b 20 6d 6f 75 73 65 2d 73 65 But.the.signature.of.;;.mouse-se
767a0 74 2d 70 6f 69 6e 74 20 63 68 61 6e 67 65 64 20 61 72 6f 75 6e 64 20 32 34 2e 34 2c 20 73 6f 20 t-point.changed.around.24.4,.so.
767c0 69 74 27 73 20 6b 69 6e 64 20 6f 66 20 68 61 72 64 20 74 6f 20 6b 65 65 70 0a 3b 3b 20 69 74 20 it's.kind.of.hard.to.keep.;;.it.
767e0 77 6f 72 6b 69 6e 67 20 69 6e 20 32 34 2e 31 2d 32 34 2e 33 2e 20 20 53 69 6e 63 65 20 74 68 65 working.in.24.1-24.3...Since.the
76800 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 68 75 67 65 6c 79 0a 3b 3b 20 69 6d 70 6f 72 74 .command.is.not.hugely.;;.import
76820 61 6e 74 2c 20 77 65 20 72 65 6d 6f 76 65 64 20 74 68 65 20 62 69 6e 64 69 6e 67 20 28 23 33 35 ant,.we.removed.the.binding.(#35
76840 36 29 2e 20 20 4d 61 79 62 65 20 77 65 27 6c 6c 20 62 72 69 6e 67 20 69 74 0a 3b 3b 20 62 61 63 6)...Maybe.we'll.bring.it.;;.bac
76860 6b 20 77 68 65 6e 20 73 75 70 70 6f 72 74 69 6e 67 20 3c 32 34 2e 34 20 69 73 20 6e 6f 74 20 61 k.when.supporting.<24.4.is.not.a
76880 20 67 6f 61 6c 20 61 6e 79 6d 6f 72 65 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 .goal.anymore..(defun.js2-mode-s
768a0 68 6f 77 2d 6e 6f 64 65 20 28 65 76 65 6e 74 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 6f 74 how-node.(event.&optional.promot
768c0 65 2d 74 6f 2d 72 65 67 69 6f 6e 29 0a 20 20 22 44 65 62 75 67 67 69 6e 67 20 61 69 64 3a 20 20 e-to-region)..."Debugging.aid:..
768e0 68 69 67 68 6c 69 67 68 74 20 73 65 6c 65 63 74 65 64 20 41 53 54 20 6e 6f 64 65 20 6f 6e 20 6d highlight.selected.AST.node.on.m
76900 6f 75 73 65 20 63 6c 69 63 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 65 5c 6e ouse.click."...(interactive."e\n
76920 70 22 29 0a 20 20 28 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e 74 20 65 76 65 6e 74 20 70 72 6f p")...(mouse-set-point.event.pro
76940 6d 6f 74 65 2d 74 6f 2d 72 65 67 69 6f 6e 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 mote-to-region)...(when.js2-mode
76960 2d 73 68 6f 77 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a -show-overlay.....(let.((node.(j
76980 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 s2-node-at-point))...........beg
769a0 20 65 6e 64 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6e 6f 64 65 29 0a 20 20 20 20 .end).......(if.(null.node).....
769c0 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 6e 6f 64 65 20 66 6f 75 6e 64 20 61 74 ......(message."No.node.found.at
769e0 20 6c 6f 63 61 74 69 6f 6e 20 25 73 22 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 .location.%s".(point)).........(
76a00 73 65 74 71 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 setq.beg.(js2-node-abs-pos.node)
76a20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e ...............end.(+.beg.(js2-n
76a40 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d ode-len.node))).........(if.js2-
76a60 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d mode-node-overlay.............(m
76a80 6f 76 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 ove-overlay.js2-mode-node-overla
76aa0 79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d y.beg.end)...........(setq.js2-m
76ac0 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 ode-node-overlay.(make-overlay.b
76ae0 65 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 eg.end))...........(overlay-put.
76b00 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 20 27 66 6f 6e 74 2d 6c 6f 63 6b js2-mode-node-overlay.'font-lock
76b20 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 -face.'highlight)).........(with
76b40 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 -silent-modifications...........
76b60 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 6d 6f 64 65 (if.(fboundp.'cursor-sensor-mode
76b80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 )...............(put-text-proper
76ba0 74 79 20 62 65 67 20 65 6e 64 20 27 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 ty.beg.end.'cursor-sensor-functi
76bc0 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.............................
76be0 20 20 20 20 20 27 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 6f 76 65 72 6c 61 79 29 29 0a 20 .....'(js2-mode-hide-overlay))..
76c00 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65 ...........(put-text-property.be
76c20 67 20 65 6e 64 20 27 70 6f 69 6e 74 2d 6c 65 66 74 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 g.end.'point-left.#'js2-mode-hid
76c40 65 2d 6f 76 65 72 6c 61 79 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 e-overlay))).........(message."%
76c60 73 2c 20 70 61 72 65 6e 74 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s,.parent:.%s"..................
76c80 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 (js2-node-short-name.node)......
76ca0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 ............(if.(js2-node-parent
76cc0 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 .node)......................(js2
76ce0 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e -node-short-name.(js2-node-paren
76d00 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 69 6c t.node))...................."nil
76d20 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 6f 76 "))))))..(defun.js2-mode-hide-ov
76d40 65 72 6c 61 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 31 20 61 72 67 32 20 5f 61 72 67 33 erlay.(&optional.arg1.arg2._arg3
76d60 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 64 65 62 75 67 67 69 6e 67 20 6f 76 65 72 6c 61 )..."Remove.the.debugging.overla
76d80 79 20 77 68 65 6e 20 70 6f 69 6e 74 20 6d 6f 76 65 73 2e 0a 41 52 47 31 2c 20 41 52 47 32 20 61 y.when.point.moves..ARG1,.ARG2.a
76da0 6e 64 20 41 52 47 33 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 64 65 nd.ARG3.have.different.values.de
76dc0 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e pending.on.whether.this.function
76de0 0a 77 61 73 20 66 6f 75 6e 64 20 6f 6e 20 60 70 6f 69 6e 74 2d 6c 65 66 74 27 20 6f 72 20 69 6e .was.found.on.`point-left'.or.in
76e00 20 60 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 .`cursor-sensor-functions'."...(
76e20 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 when.js2-mode-node-overlay.....(
76e40 6c 65 74 20 28 28 62 65 67 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6a 73 32 2d 6d 6f 64 let.((beg.(overlay-start.js2-mod
76e60 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 e-node-overlay))...........(end.
76e80 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c (overlay-end.js2-mode-node-overl
76ea0 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 32 20 28 69 66 20 28 77 69 6e 64 6f 77 70 20 ay))...........(p2.(if.(windowp.
76ec0 61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65 arg1)...................;;.Calle
76ee0 64 20 66 72 6f 6d 20 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 2e 0a d.from.cursor-sensor-functions..
76f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 70 6f 69 6e 74 20 ..................(window-point.
76f20 61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65 64 20 arg1).................;;.Called.
76f40 66 72 6f 6d 20 70 6f 69 6e 74 2d 6c 65 66 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 from.point-left.................
76f60 20 61 72 67 32 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 53 6f 6d 65 74 69 6d 65 73 20 77 65 27 72 .arg2))).......;;.Sometimes.we'r
76f80 65 20 63 61 6c 6c 65 64 20 73 70 75 72 69 6f 75 73 6c 79 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 e.called.spuriously........(unle
76fa0 73 73 20 28 61 6e 64 20 70 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e ss.(and.p2....................(>
76fc0 3d 20 70 32 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d =.p2.beg)....................(<=
76fe0 20 70 32 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d .p2.end)).........(with-silent-m
77000 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 74 odifications...........(remove-t
77020 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 ext-properties.beg.end..........
77040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 70 6f 69 6e 74 .........................'(point
77060 2d 6c 65 66 74 20 6e 69 6c 20 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e -left.nil.cursor-sensor-function
77080 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32 s))).........(delete-overlay.js2
770a0 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 -mode-node-overlay).........(set
770c0 71 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 20 6e 69 6c 29 29 29 29 29 q.js2-mode-node-overlay.nil)))))
770e0 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65 74 20 28 29 0a 20 20 22 44 65 ..(defun.js2-mode-reset.()..."De
77100 62 75 67 67 69 6e 67 20 68 65 6c 70 65 72 3a 20 20 72 65 73 65 74 20 65 76 65 72 79 74 68 69 6e bugging.helper:..reset.everythin
77120 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d g."...(interactive)...(js2-mode-
77140 65 78 69 74 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d exit)...(js2-mode))..(defun.js2-
77160 6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72 6e 2d 6f 72 2d 65 72 72 20 28 65 20 66 61 63 65 29 0a 20 mode-show-warn-or-err.(e.face)..
77180 20 22 48 69 67 68 6c 69 67 68 74 20 61 20 77 61 72 6e 69 6e 67 20 6f 72 20 65 72 72 6f 72 20 45 ."Highlight.a.warning.or.error.E
771a0 20 77 69 74 68 20 46 41 43 45 2e 0a 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 28 28 4d 53 47 .with.FACE..E.is.a.list.of.((MSG
771c0 2d 4b 45 59 20 4d 53 47 2d 41 52 47 29 20 42 45 47 20 4c 45 4e 20 4f 56 45 52 52 49 44 45 2d 46 -KEY.MSG-ARG).BEG.LEN.OVERRIDE-F
771e0 41 43 45 29 2e 0a 54 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 69 73 20 6f 70 74 69 6f 6e ACE)..The.last.element.is.option
77200 61 6c 2e 20 20 57 68 65 6e 20 70 72 65 73 65 6e 74 2c 20 75 73 65 20 69 6e 73 74 65 61 64 20 6f al...When.present,.use.instead.o
77220 66 20 46 41 43 45 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 20 28 63 6c 2d 66 69 72 73 74 f.FACE."...(let*.((key.(cl-first
77240 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 63 6c 2d 73 65 63 6f 6e 64 20 65 29 .e))..........(beg.(cl-second.e)
77260 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 2b 20 62 65 67 20 28 63 6c 2d 74 68 69 72 64 )..........(end.(+.beg.(cl-third
77280 20 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 69 6e 61 64 76 65 72 74 .e)))..........;;.Don't.inadvert
772a0 65 6e 74 6c 79 20 67 6f 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 ently.go.out.of.bounds..........
772c0 20 28 62 65 67 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6d 69 6e 20 62 65 67 20 .(beg.(max.(point-min).(min.beg.
772e0 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6d 61 (point-max))))..........(end.(ma
77300 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6d 69 6e 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 x.(point-min).(min.end.(point-ma
77320 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 76 6c 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 x))))..........(ovl.(make-overla
77340 79 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 68 79 20 61 y.beg.end))).....;;.FIXME:.Why.a
77360 20 6d 69 78 20 6f 66 20 6f 76 65 72 6c 61 79 73 20 61 6e 64 20 74 65 78 74 2d 70 72 6f 70 65 72 .mix.of.overlays.and.text-proper
77380 74 69 65 73 3f 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 66 6f 6e 74 ties?.....(overlay-put.ovl.'font
773a0 2d 6c 6f 63 6b 2d 66 61 63 65 20 28 6f 72 20 28 63 6c 2d 66 6f 75 72 74 68 20 65 29 20 66 61 63 -lock-face.(or.(cl-fourth.e).fac
773c0 65 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 6a 73 32 2d 65 72 e)).....(overlay-put.ovl.'js2-er
773e0 72 6f 72 20 74 29 0a 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65 ror.t).....(put-text-property.be
77400 67 20 65 6e 64 20 27 68 65 6c 70 2d 65 63 68 6f 20 28 6a 73 32 2d 67 65 74 2d 6d 73 67 20 6b 65 g.end.'help-echo.(js2-get-msg.ke
77420 79 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 75 72 73 6f 72 2d 73 65 6e y)).....(if.(fboundp.'cursor-sen
77440 73 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 sor-mode).........(put-text-prop
77460 65 72 74 79 20 62 65 67 20 65 6e 64 20 27 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 erty.beg.end.'cursor-sensor-func
77480 74 69 6f 6e 73 20 27 28 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 28 tions.'(js2-echo-error)).......(
774a0 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65 67 20 65 6e 64 20 27 70 6f 69 6e 74 put-text-property.beg.end.'point
774c0 2d 65 6e 74 65 72 65 64 20 23 27 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f 72 29 29 29 29 0a 0a 28 -entered.#'js2-echo-error))))..(
774e0 64 65 66 75 6e 20 6a 73 32 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 20 28 29 0a 20 20 22 defun.js2-remove-overlays.()..."
77500 52 65 6d 6f 76 65 20 6f 76 65 72 6c 61 79 73 20 66 72 6f 6d 20 62 75 66 66 65 72 20 74 68 61 74 Remove.overlays.from.buffer.that
77520 20 68 61 76 65 20 61 20 60 6a 73 32 2d 65 72 72 6f 72 27 20 70 72 6f 70 65 72 74 79 2e 22 0a 20 .have.a.`js2-error'.property."..
77540 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 .(let.((beg.(point-min))........
77560 20 28 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 .(end.(point-max))).....(save-ex
77580 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 20 28 6f 76 65 72 6c 61 cursion.......(dolist.(o.(overla
775a0 79 73 2d 69 6e 20 62 65 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f ys-in.beg.end)).........(when.(o
775c0 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 6a 73 32 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 verlay-get.o.'js2-error)........
775e0 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 29 29 29 29 29 29 0a 0a 28 64 65 66 ...(delete-overlay.o))))))..(def
77600 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 61 70 70 6c 79 2d 64 65 66 65 72 72 65 64 2d 70 72 6f 70 65 un.js2-mode-apply-deferred-prope
77620 72 74 69 65 73 20 28 29 0a 20 20 22 41 70 70 6c 79 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 rties.()..."Apply.fontifications
77640 20 61 6e 64 20 6f 74 68 65 72 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 72 65 63 6f 72 .and.other.text.properties.recor
77660 64 65 64 20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 2e 22 0a 20 20 28 77 68 65 6e 20 28 63 6c ded.during.parsing."...(when.(cl
77680 2d 70 6c 75 73 70 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65 6c 29 0a 20 20 20 20 -plusp.js2-highlight-level).....
776a0 3b 3b 20 57 65 20 64 65 66 65 72 20 63 6c 65 61 72 69 6e 67 20 66 61 63 65 73 20 61 73 20 6c 6f ;;.We.defer.clearing.faces.as.lo
776c0 6e 67 20 61 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 65 6c 69 6d 69 6e 61 74 65 20 66 6c 61 73 ng.as.possible.to.eliminate.flas
776e0 68 69 6e 67 2e 0a 20 20 20 20 28 6a 73 32 2d 63 6c 65 61 72 2d 66 61 63 65 20 28 70 6f 69 6e 74 hing......(js2-clear-face.(point
77700 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 3b 3b 20 48 61 76 65 20 74 -min).(point-max)).....;;.Have.t
77720 6f 20 72 65 76 65 72 73 65 20 74 68 65 20 72 65 63 6f 72 64 65 64 20 66 6f 6e 74 69 66 69 63 61 o.reverse.the.recorded.fontifica
77740 74 69 6f 6e 73 20 6c 69 73 74 20 73 6f 20 74 68 61 74 20 65 72 72 6f 72 73 0a 20 20 20 20 3b 3b tions.list.so.that.errors.....;;
77760 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 20 6f 76 65 72 77 72 69 74 65 20 74 68 65 20 6e 6f 72 6d .and.warnings.overwrite.the.norm
77780 61 6c 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 2e 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 al.fontifications......(dolist.(
777a0 66 20 28 6e 72 65 76 65 72 73 65 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74 69 66 69 63 61 74 69 f.(nreverse.js2-mode-fontificati
777c0 6f 6e 73 29 29 0a 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 ons)).......(put-text-property.(
777e0 63 6c 2d 66 69 72 73 74 20 66 29 20 28 63 6c 2d 73 65 63 6f 6e 64 20 66 29 20 27 66 6f 6e 74 2d cl-first.f).(cl-second.f).'font-
77800 6c 6f 63 6b 2d 66 61 63 65 20 28 63 6c 2d 74 68 69 72 64 20 66 29 29 29 0a 20 20 20 20 28 73 65 lock-face.(cl-third.f))).....(se
77820 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 20 6e 69 6c 29 29 tq.js2-mode-fontifications.nil))
77840 0a 20 20 28 64 6f 6c 69 73 74 20 28 70 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d ...(dolist.(p.js2-mode-deferred-
77860 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 70 75 74 2d 74 65 78 properties).....(apply.#'put-tex
77880 74 2d 70 72 6f 70 65 72 74 79 20 70 29 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d t-property.p))...(setq.js2-mode-
778a0 64 65 66 65 72 72 65 64 2d 70 72 6f 70 65 72 74 69 65 73 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 deferred-properties.nil))..(defu
778c0 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 72 72 6f 72 73 20 28 29 0a 20 20 22 48 69 67 n.js2-mode-show-errors.()..."Hig
778e0 68 6c 69 67 68 74 20 73 79 6e 74 61 78 20 65 72 72 6f 72 73 2e 22 0a 20 20 28 77 68 65 6e 20 6a hlight.syntax.errors."...(when.j
77900 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 64 s2-mode-show-parse-errors.....(d
77920 6f 6c 69 73 74 20 28 65 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a 73 olist.(e.(js2-ast-root-errors.js
77940 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 2-mode-ast)).......(js2-mode-sho
77960 77 2d 77 61 72 6e 2d 6f 72 2d 65 72 72 20 65 20 27 6a 73 32 2d 65 72 72 6f 72 29 29 29 29 0a 0a w-warn-or-err.e.'js2-error))))..
77980 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 72 65 6d 6f 76 65 2d 73 75 70 70 72 65 73 73 65 (defun.js2-mode-remove-suppresse
779a0 64 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a 20 20 22 54 61 6b 65 20 73 75 70 70 72 65 73 73 65 64 d-warnings.()..."Take.suppressed
779c0 20 77 61 72 6e 69 6e 67 73 20 6f 75 74 20 6f 66 20 74 68 65 20 41 53 54 20 77 61 72 6e 69 6e 67 .warnings.out.of.the.AST.warning
779e0 73 20 6c 69 73 74 2e 0a 54 68 69 73 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 74 68 65 20 63 6f s.list..This.ensures.that.the.co
77a00 75 6e 74 73 20 61 6e 64 20 60 6e 65 78 74 2d 65 72 72 6f 72 27 20 61 72 65 20 63 6f 72 72 65 63 unts.and.`next-error'.are.correc
77a20 74 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e t."...(setf.(js2-ast-root-warnin
77a40 67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 gs.js2-mode-ast).........(js2-de
77a60 6c 65 74 65 2d 69 66 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 29 0a 20 20 20 lete-if..........(lambda.(e)....
77a80 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 63 61 61 72 20 65 29 29 29 0a 20 20 ........(let.((key.(caar.e)))...
77aa0 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e ...........(or...............(an
77ac0 64 20 28 6e 6f 74 20 6a 73 32 2d 73 74 72 69 63 74 2d 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 d.(not.js2-strict-trailing-comma
77ae0 2d 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 -warning)....................(st
77b00 72 69 6e 67 2d 6d 61 74 63 68 20 22 74 72 61 69 6c 69 6e 67 5c 5c 2e 63 6f 6d 6d 61 22 20 6b 65 ring-match."trailing\\.comma".ke
77b20 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 6a 73 32 2d y))...............(and.(not.js2-
77b40 73 74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69 67 6e 2d 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 strict-cond-assign-warning).....
77b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 6b 65 79 20 22 6d 73 67 ...............(string=.key."msg
77b80 2e 65 71 75 61 6c 2e 61 73 2e 61 73 73 69 67 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .equal.as.assign")).............
77ba0 20 20 28 61 6e 64 20 6a 73 32 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 2d 6f 6e 65 2d 6c 69 6e 65 ..(and.js2-missing-semi-one-line
77bc0 2d 6f 76 65 72 72 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 -override....................(st
77be0 72 69 6e 67 3d 20 6b 65 79 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 73 65 6d 69 22 29 0a 20 20 ring=.key."msg.missing.semi")...
77c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 65 67 20 28 63 6c .................(let*.((beg.(cl
77c20 2d 73 65 63 6f 6e 64 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -second.e)).....................
77c40 20 20 20 20 20 20 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 62 ......(node.(js2-node-at-point.b
77c60 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 eg))...........................(
77c80 66 6e 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 70 61 72 65 6e 74 2d 66 6e 20 6e 6f 64 65 fn.(js2-mode-find-parent-fn.node
77ca0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f ))...........................(bo
77cc0 64 79 20 28 61 6e 64 20 66 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f dy.(and.fn.(js2-function-node-bo
77ce0 64 79 20 66 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dy.fn)))........................
77d00 20 20 20 28 6c 63 20 28 61 6e 64 20 62 6f 64 79 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 ...(lc.(and.body.(js2-node-abs-p
77d20 6f 73 20 62 6f 64 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 os.body)))......................
77d40 20 20 20 20 20 28 72 63 20 28 61 6e 64 20 6c 63 20 28 2b 20 6c 63 20 28 6a 73 32 2d 6e 6f 64 65 .....(rc.(and.lc.(+.lc.(js2-node
77d60 2d 6c 65 6e 20 62 6f 64 79 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -len.body)))))..................
77d80 20 20 20 20 28 61 6e 64 20 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(and.fn.....................
77da0 20 20 20 20 20 20 28 6f 72 20 28 6e 75 6c 6c 20 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 ......(or.(null.body)...........
77dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 ....................(save-excurs
77de0 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.............................
77e00 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(goto-char.beg).............
77e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 73 61 ....................(and.(js2-sa
77e40 6d 65 2d 6c 69 6e 65 20 6c 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me-line.lc).....................
77e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 .................(js2-same-line.
77e80 72 63 29 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72 rc))))))))))..........(js2-ast-r
77ea0 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 29 0a 0a 28 oot-warnings.js2-mode-ast))))..(
77ec0 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a defun.js2-mode-show-warnings.().
77ee0 20 20 22 48 69 67 68 6c 69 67 68 74 20 73 74 72 69 63 74 2d 6d 6f 64 65 20 77 61 72 6e 69 6e 67 .."Highlight.strict-mode.warning
77f00 73 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 s."...(when.js2-mode-show-strict
77f20 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a 73 32 2d 61 73 -warnings.....(dolist.(e.(js2-as
77f40 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 t-root-warnings.js2-mode-ast))..
77f60 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72 6e 2d 6f 72 2d 65 72 72 20 .....(js2-mode-show-warn-or-err.
77f80 65 20 27 6a 73 32 2d 77 61 72 6e 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 e.'js2-warning))))..(defun.js2-e
77fa0 63 68 6f 2d 65 72 72 6f 72 20 28 61 72 67 31 20 61 72 67 32 20 26 6f 70 74 69 6f 6e 61 6c 20 5f cho-error.(arg1.arg2.&optional._
77fc0 61 72 67 33 29 0a 20 20 22 43 61 6c 6c 65 64 20 62 79 20 70 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 20 arg3)..."Called.by.point-motion.
77fe0 68 6f 6f 6b 73 2e 0a 41 52 47 31 2c 20 41 52 47 32 20 61 6e 64 20 41 52 47 33 20 68 61 76 65 20 hooks..ARG1,.ARG2.and.ARG3.have.
78000 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 different.values.depending.on.wh
78020 65 74 68 65 72 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 77 61 73 20 66 6f 75 6e 64 20 6f 6e ether.this.function.was.found.on
78040 20 60 70 6f 69 6e 74 2d 65 6e 74 65 72 65 64 27 20 6f 72 20 69 6e 20 60 63 75 72 73 6f 72 2d 73 .`point-entered'.or.in.`cursor-s
78060 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 65 77 ensor-functions'."...(let*.((new
78080 2d 70 6f 69 6e 74 20 28 69 66 20 28 77 69 6e 64 6f 77 70 20 61 72 67 31 29 0a 20 20 20 20 20 20 -point.(if.(windowp.arg1).......
780a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65 64 20 66 72 6f 6d ..................;;.Called.from
780c0 20 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 .cursor-sensor-functions........
780e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 70 6f 69 6e 74 20 ..................(window-point.
78100 61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 arg1).......................;;.C
78120 61 6c 6c 65 64 20 66 72 6f 6d 20 70 6f 69 6e 74 2d 6c 65 66 74 2e 0a 20 20 20 20 20 20 20 20 20 alled.from.point-left...........
78140 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 73 .............arg2))..........(ms
78160 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 6e 65 77 2d 70 6f 69 6e 74 20 27 g.(get-text-property.new-point.'
78180 68 65 6c 70 2d 65 63 68 6f 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 help-echo))).....(when.(and.(str
781a0 69 6e 67 70 20 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61 ingp.msg)................(not.(a
781c0 63 74 69 76 65 2d 6d 69 6e 69 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20 ctive-minibuffer-window)).......
781e0 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 63 75 72 72 65 6e 74 2d 6d 65 73 73 61 67 65 29 29 .........(not.(current-message))
78200 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 6d 73 67 29 29 29 29 0a 0a 28 64 65 66 75 6e ).......(message.msg))))..(defun
78220 20 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 73 6f 66 74 .js2-line-break.(&optional._soft
78240 29 0a 20 20 22 42 72 65 61 6b 20 6c 69 6e 65 20 61 74 20 70 6f 69 6e 74 20 61 6e 64 20 69 6e 64 )..."Break.line.at.point.and.ind
78260 65 6e 74 2c 20 63 6f 6e 74 69 6e 75 69 6e 67 20 63 6f 6d 6d 65 6e 74 20 69 66 20 77 69 74 68 69 ent,.continuing.comment.if.withi
78280 6e 20 6f 6e 65 2e 0a 49 66 20 69 6e 73 69 64 65 20 61 20 73 74 72 69 6e 67 2c 20 61 6e 64 20 60 n.one..If.inside.a.string,.and.`
782a0 6a 73 32 2d 63 6f 6e 63 61 74 2d 6d 75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 73 27 20 69 73 js2-concat-multiline-strings'.is
782c0 20 6e 6f 74 0a 6e 69 6c 2c 20 74 75 72 6e 20 69 74 20 69 6e 74 6f 20 63 6f 6e 63 61 74 65 6e 61 .not.nil,.turn.it.into.concatena
782e0 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 tion."...(interactive)...(let.((
78300 70 61 72 73 65 2d 73 74 61 74 75 73 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 29 0a 20 20 20 parse-status.(syntax-ppss)))....
78320 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 77 65 27 72 65 20 69 6e .(cond......;;.Check.if.we're.in
78340 73 69 64 65 20 61 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 28 28 6e 74 68 20 33 20 70 61 72 73 side.a.string.......((nth.3.pars
78360 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 63 6f 6e 63 61 74 2d 6d e-status).......(if.js2-concat-m
78380 75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ultiline-strings...........(js2-
783a0 6d 6f 64 65 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a mode-split-string.parse-status).
783c0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 3b 3b 20 ........(insert."\n")))......;;.
783e0 43 68 65 63 6b 20 69 66 20 69 6e 73 69 64 65 20 61 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 2e Check.if.inside.a.block.comment.
78400 0a 20 20 20 20 20 28 28 6e 74 68 20 34 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 ......((nth.4.parse-status).....
78420 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 2d 63 6f 6d 6d 65 6e 74 20 28 6e 74 68 20 ..(js2-mode-extend-comment.(nth.
78440 38 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 8.parse-status)))......(t.......
78460 28 6e 65 77 6c 69 6e 65 2d 61 6e 64 2d 69 6e 64 65 6e 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e (newline-and-indent)))))..(defun
78480 20 6a 73 32 2d 6d 6f 64 65 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 70 61 72 73 65 2d 73 74 .js2-mode-split-string.(parse-st
784a0 61 74 75 73 29 0a 20 20 22 54 75 72 6e 20 61 20 6e 65 77 6c 69 6e 65 20 69 6e 20 6d 69 64 2d 73 atus)..."Turn.a.newline.in.mid-s
784c0 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f tring.into.a.string.concatenatio
784e0 6e 2e 0a 50 41 52 53 45 2d 53 54 41 54 55 53 20 69 73 20 61 73 20 64 6f 63 75 6d 65 6e 74 65 64 n..PARSE-STATUS.is.as.documented
78500 20 69 6e 20 60 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 27 2e 22 0a 20 20 28 6c 65 .in.`parse-partial-sexp'."...(le
78520 74 2a 20 28 28 71 75 6f 74 65 2d 63 68 61 72 20 28 6e 74 68 20 33 20 70 61 72 73 65 2d 73 74 61 t*.((quote-char.(nth.3.parse-sta
78540 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 74 2d 65 6f 6c 20 28 65 71 20 6a 73 32 2d 63 tus))..........(at-eol.(eq.js2-c
78560 6f 6e 63 61 74 2d 6d 75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 73 20 27 65 6f 6c 29 29 29 0a oncat-multiline-strings.'eol))).
78580 20 20 20 20 28 69 6e 73 65 72 74 20 71 75 6f 74 65 2d 63 68 61 72 29 0a 20 20 20 20 28 69 6e 73 ....(insert.quote-char).....(ins
785a0 65 72 74 20 28 69 66 20 61 74 2d 65 6f 6c 20 22 20 2b 5c 6e 22 20 22 5c 6e 22 29 29 0a 20 20 20 ert.(if.at-eol.".+\n"."\n"))....
785c0 20 28 75 6e 6c 65 73 73 20 61 74 2d 65 6f 6c 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2b .(unless.at-eol.......(insert."+
785e0 20 22 29 29 0a 20 20 20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 .")).....(js2-indent-line).....(
78600 69 6e 73 65 72 74 20 71 75 6f 74 65 2d 63 68 61 72 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 6f insert.quote-char).....(when.(eo
78620 6c 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 71 75 6f 74 65 2d 63 68 61 72 29 0a 20 20 lp).......(insert.quote-char)...
78640 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e ....(backward-char.1))))..(defun
78660 20 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 2d 63 6f 6d 6d 65 6e 74 20 28 73 74 61 72 74 2d .js2-mode-extend-comment.(start-
78680 70 6f 73 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 6c 69 6e 65 20 61 6e 64 2c 20 77 68 65 pos)..."Indent.the.line.and,.whe
786a0 6e 20 69 6e 73 69 64 65 20 61 20 63 6f 6d 6d 65 6e 74 20 62 6c 6f 63 6b 2c 20 61 64 64 20 63 6f n.inside.a.comment.block,.add.co
786c0 6d 6d 65 6e 74 20 70 72 65 66 69 78 2e 22 0a 20 20 28 6c 65 74 20 28 73 74 61 72 20 73 69 6e 67 mment.prefix."...(let.(star.sing
786e0 6c 65 20 63 6f 6c 20 66 69 72 73 74 2d 6c 69 6e 65 20 6e 65 65 64 73 2d 63 6c 6f 73 65 29 0a 20 le.col.first-line.needs-close)..
78700 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74 ...(save-excursion.......(back-t
78720 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3c 20 28 70 o-indentation).......(when.(<.(p
78740 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 oint).start-pos).........(goto-c
78760 68 61 72 20 73 74 61 72 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 har.start-pos)).......(cond.....
78780 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5b 5e 2f 5d 22 29 0a 20 20 20 20 20 ...((looking-at."\\*[^/]")......
787a0 20 20 20 28 73 65 74 71 20 73 74 61 72 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f ...(setq.star.t...............co
787c0 6c 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 0a 20 20 20 20 20 20 20 28 28 6c 6f l.(current-column)))........((lo
787e0 6f 6b 69 6e 67 2d 61 74 20 22 2f 5c 5c 2a 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 oking-at."/\\*").........(setq.s
78800 74 61 72 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 72 73 74 2d 6c 69 6e 65 20 74 tar.t...............first-line.t
78820 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 20 28 31 2b 20 28 63 75 72 72 65 6e 74 2d ...............col.(1+.(current-
78840 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 column))))........((looking-at."
78860 2f 2f 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 69 6e 67 6c 65 20 74 0a 20 20 20 20 //").........(setq.single.t.....
78880 20 20 20 20 20 20 20 20 20 20 63 6f 6c 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 ..........col.(current-column)))
788a0 29 29 0a 20 20 20 20 3b 3b 20 48 65 75 72 69 73 74 69 63 20 66 6f 72 20 77 68 65 74 68 65 72 20 )).....;;.Heuristic.for.whether.
788c0 77 65 20 6e 65 65 64 20 74 6f 20 63 6c 6f 73 65 20 74 68 65 20 63 6f 6d 6d 65 6e 74 3a 0a 20 20 we.need.to.close.the.comment:...
788e0 20 20 3b 3b 20 69 66 20 77 65 27 76 65 20 67 6f 74 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 20 ..;;.if.we've.got.a.parse.error.
78900 68 65 72 65 2c 20 61 73 73 75 6d 65 20 69 74 27 73 20 61 6e 20 75 6e 74 65 72 6d 69 6e 61 74 65 here,.assume.it's.an.unterminate
78920 64 0a 20 20 20 20 3b 3b 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 28 73 65 74 71 20 6e 65 65 64 d.....;;.comment......(setq.need
78940 73 2d 63 6c 6f 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 s-close...........(or...........
78960 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 .(get-char-property.(1-.(point))
78980 20 27 6a 73 32 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 68 .'js2-error)............;;.The.h
789a0 65 75 72 69 73 74 69 63 20 61 62 6f 76 65 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b 20 77 65 6c 6c euristic.above.doesn't.work.well
789c0 20 77 68 65 6e 20 77 65 27 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 72 65 61 74 69 .when.we're............;;.creati
789e0 6e 67 20 61 20 63 6f 6d 6d 65 6e 74 20 61 6e 64 20 74 68 65 72 65 27 73 20 61 6e 6f 74 68 65 72 ng.a.comment.and.there's.another
78a00 20 6f 6e 65 20 64 6f 77 6e 73 74 72 65 61 6d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 .one.downstream,............;;.a
78a20 73 20 6f 75 72 20 70 61 72 73 65 72 20 74 68 69 6e 6b 73 20 74 68 69 73 20 6f 6e 65 20 65 6e 64 s.our.parser.thinks.this.one.end
78a40 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b s.at.the.end.of.the............;
78a60 3b 20 6e 65 78 74 20 6f 6e 65 2e 20 20 28 59 6f 75 20 63 61 6e 20 68 61 76 65 20 61 20 2f 2a 20 ;.next.one...(You.can.have.a./*.
78a80 69 6e 73 69 64 65 20 61 20 6a 73 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 2e 29 0a 20 20 20 20 inside.a.js.block.comment.).....
78aa0 20 20 20 20 20 20 20 3b 3b 20 53 6f 20 6a 75 73 74 20 63 6c 6f 73 65 20 69 74 20 69 66 20 74 68 .......;;.So.just.close.it.if.th
78ac0 65 20 6e 65 78 74 20 6e 6f 6e 2d 77 73 20 63 68 61 72 20 69 73 6e 27 74 20 61 20 2a 2e 0a 20 20 e.next.non-ws.char.isn't.a.*....
78ae0 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 66 69 72 73 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 .........(and.first-line........
78b00 20 20 20 20 20 20 20 20 20 28 65 6f 6c 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(eolp).................
78b20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (save-excursion.................
78b40 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 5c 72 5c 6e 22 29 ..(skip-chars-forward.".\t\r\n")
78b60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 68 61 ...................(not.(eq.(cha
78b80 72 2d 61 66 74 65 72 29 20 3f 2a 29 29 29 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f r-after).?*)))))).....(delete-ho
78ba0 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 rizontal-space).....(insert."\n"
78bc0 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 73 74 61 72 0a 20 20 20 20 20 20 28 69 6e ).....(cond......(star.......(in
78be0 64 65 6e 74 2d 74 6f 20 63 6f 6c 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 20 22 29 dent-to.col).......(insert."*.")
78c00 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 66 69 72 73 74 2d 6c 69 6e 65 20 6e 65 65 64 73 .......(if.(and.first-line.needs
78c20 2d 63 6c 6f 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f -close)...........(save-excursio
78c40 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 n.............(insert."\n").....
78c60 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 6f 20 63 6f 6c 29 0a 20 20 20 20 20 20 20 20 ........(indent-to.col).........
78c80 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 2f 22 29 29 29 29 0a 20 20 20 20 20 28 73 69 6e 67 6c ....(insert."*/"))))......(singl
78ca0 65 0a 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 6f 20 63 6f 6c 29 0a 20 20 20 20 20 20 28 69 e.......(indent-to.col).......(i
78cc0 6e 73 65 72 74 20 22 2f 2f 20 22 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 6e 65 65 64 nsert."//."))).....;;.Don't.need
78ce0 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 61 66 74 65 72 20 61 6c 6c .to.extend.the.comment.after.all
78d00 2e 0a 20 20 20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 29 0a 0a 28 64 65 66 75 ......(js2-indent-line)))..(defu
78d20 6e 20 6a 73 32 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 28 29 0a 20 20 22 54 6f n.js2-beginning-of-line.()..."To
78d40 67 67 6c 65 20 70 6f 69 6e 74 20 62 65 74 77 65 65 6e 20 62 6f 6c 20 61 6e 64 20 66 69 72 73 74 ggle.point.between.bol.and.first
78d60 20 6e 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 68 61 72 20 69 6e 20 6c 69 6e 65 2e 0a 41 6c .non-whitespace.char.in.line..Al
78d80 73 6f 20 6d 6f 76 65 73 20 70 61 73 74 20 63 6f 6d 6d 65 6e 74 20 64 65 6c 69 6d 69 74 65 72 73 so.moves.past.comment.delimiters
78da0 20 77 68 65 6e 20 69 6e 73 69 64 65 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 .when.inside.comments."...(inter
78dc0 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 6e 6f 64 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a active)...(let.(node).....(cond.
78de0 20 20 20 20 20 28 28 62 6f 6c 70 29 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 .....((bolp).......(back-to-inde
78e00 6e 74 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 2f 2f 22 ntation))......((looking-at."//"
78e20 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 2f 20 5c ).......(skip-chars-forward."/.\
78e40 74 22 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 t"))......((and.(eq.(char-after)
78e60 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d .?*)............(setq.node.(js2-
78e80 63 6f 6d 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d comment-at-point))............(m
78ea0 65 6d 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 66 6f 72 6d 61 74 20 6e 6f 64 emq.(js2-comment-node-format.nod
78ec0 65 29 20 27 28 6a 73 64 6f 63 20 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 e).'(jsdoc.block))............(s
78ee0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 ave-excursion..............(skip
78f00 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20 -chars-backward.".\t")..........
78f20 20 20 20 20 28 62 6f 6c 70 29 29 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 ....(bolp))).......(skip-chars-f
78f40 6f 72 77 61 72 64 20 22 5c 2a 20 5c 74 22 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 orward."\*.\t"))......(t.......(
78f60 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 29 29 29 0a 0a 28 goto-char.(point-at-bol))))))..(
78f80 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 6f 66 2d 6c 69 6e 65 20 28 29 0a 20 20 22 54 6f 67 67 defun.js2-end-of-line.()..."Togg
78fa0 6c 65 20 70 6f 69 6e 74 20 62 65 74 77 65 65 6e 20 65 6f 6c 20 61 6e 64 20 6c 61 73 74 20 6e 6f le.point.between.eol.and.last.no
78fc0 6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 68 61 72 20 69 6e 20 6c 69 6e 65 2e 22 0a 20 20 28 69 n-whitespace.char.in.line."...(i
78fe0 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 65 6f 6c 70 29 0a 20 20 20 20 20 20 28 nteractive)...(if.(eolp).......(
79000 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 28 skip-chars-backward.".\t").....(
79020 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 29 29 29 0a 0a 28 64 65 goto-char.(point-at-eol))))..(de
79040 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d 66 6f 72 2d 70 61 72 73 65 20 28 63 61 6c fun.js2-mode-wait-for-parse.(cal
79060 6c 62 61 63 6b 29 0a 20 20 22 49 6e 76 6f 6b 65 20 43 41 4c 4c 42 41 43 4b 20 77 68 65 6e 20 70 lback)..."Invoke.CALLBACK.when.p
79080 61 72 73 69 6e 67 20 69 73 20 66 69 6e 69 73 68 65 64 2e 0a 49 66 20 70 61 72 73 69 6e 67 20 69 arsing.is.finished..If.parsing.i
790a0 73 20 61 6c 72 65 61 64 79 20 66 69 6e 69 73 68 65 64 2c 20 63 61 6c 6c 73 20 43 41 4c 4c 42 41 s.already.finished,.calls.CALLBA
790c0 43 4b 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 6a 73 32 2d CK.immediately."...(if.(not.js2-
790e0 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74 79 2d 70 29 0a 20 20 20 20 20 20 28 66 75 6e 63 mode-buffer-dirty-p).......(func
79100 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 28 70 75 73 68 20 63 61 6c 6c 62 61 63 6b all.callback).....(push.callback
79120 20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b .js2-mode-pending-parse-callback
79140 73 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 61 72 73 65 2d 66 69 6e 69 s).....(add-hook.'js2-parse-fini
79160 73 68 65 64 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 65 2d 66 69 6e 69 73 shed-hook.#'js2-mode-parse-finis
79180 68 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 65 2d 66 69 hed)))..(defun.js2-mode-parse-fi
791a0 6e 69 73 68 65 64 20 28 29 0a 20 20 22 49 6e 76 6f 6b 65 20 63 61 6c 6c 62 61 63 6b 73 20 69 6e nished.()..."Invoke.callbacks.in
791c0 20 60 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 .`js2-mode-pending-parse-callbac
791e0 6b 73 27 2e 22 0a 20 20 3b 3b 20 57 65 20 63 61 6e 27 74 20 6c 65 74 20 65 72 72 6f 72 73 20 70 ks'."...;;.We.can't.let.errors.p
79200 72 6f 70 61 67 61 74 65 20 75 70 2c 20 73 69 6e 63 65 20 69 74 20 70 72 65 76 65 6e 74 73 20 74 ropagate.up,.since.it.prevents.t
79220 68 65 0a 20 20 3b 3b 20 60 6a 73 32 2d 70 61 72 73 65 27 20 6d 65 74 68 6f 64 20 66 72 6f 6d 20 he...;;.`js2-parse'.method.from.
79240 63 6f 6d 70 6c 65 74 69 6e 67 20 6e 6f 72 6d 61 6c 6c 79 20 61 6e 64 20 72 65 74 75 72 6e 69 6e completing.normally.and.returnin
79260 67 0a 20 20 3b 3b 20 74 68 65 20 61 73 74 2c 20 77 68 69 63 68 20 6d 61 6b 65 73 20 74 68 69 6e g...;;.the.ast,.which.makes.thin
79280 67 73 20 6d 79 73 74 65 72 69 6f 75 73 6c 79 20 6e 6f 74 20 77 6f 72 6b 20 72 69 67 68 74 2e 0a gs.mysteriously.not.work.right..
792a0 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 ..(unwind-protect.......(dolist.
792c0 28 63 62 20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 (cb.js2-mode-pending-parse-callb
792e0 61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 acks).........(condition-case.er
79300 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 62 29 0a 20 20 20 20 20 r.............(funcall.cb)......
79320 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 65 72 72 29 29 29 .....(error.(message."%s".err)))
79340 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e 67 2d 70 61 72 ).....(setq.js2-mode-pending-par
79360 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d se-callbacks.nil)))..(defun.js2-
79380 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 66 72 6f 6d 20 74 6f 20 66 6c 61 67 29 0a mode-flag-region.(from.to.flag).
793a0 20 20 22 48 69 64 65 20 6f 72 20 73 68 6f 77 20 74 65 78 74 20 66 72 6f 6d 20 46 52 4f 4d 20 74 .."Hide.or.show.text.from.FROM.t
793c0 6f 20 54 4f 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 46 4c 41 47 2e 0a 49 66 20 46 4c 41 47 o.TO,.according.to.FLAG..If.FLAG
793e0 20 69 73 20 6e 69 6c 20 74 68 65 6e 20 74 65 78 74 20 69 73 20 73 68 6f 77 6e 2c 20 77 68 69 6c .is.nil.then.text.is.shown,.whil
79400 65 20 69 66 20 46 4c 41 47 20 69 73 20 74 20 74 68 65 20 74 65 78 74 20 69 73 20 68 69 64 64 65 e.if.FLAG.is.t.the.text.is.hidde
79420 6e 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63 72 65 61 74 65 64 20 6f 76 65 72 6c 61 79 20 69 n..Returns.the.created.overlay.i
79440 66 20 46 4c 41 47 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 72 65 6d 6f 76 65 2d 6f 76 f.FLAG.is.non-nil."...(remove-ov
79460 65 72 6c 61 79 73 20 66 72 6f 6d 20 74 6f 20 27 69 6e 76 69 73 69 62 6c 65 20 27 6a 73 32 2d 6f erlays.from.to.'invisible.'js2-o
79480 75 74 6c 69 6e 65 29 0a 20 20 28 77 68 65 6e 20 66 6c 61 67 0a 20 20 20 20 28 6c 65 74 20 28 28 utline)...(when.flag.....(let.((
794a0 6f 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 66 72 6f 6d 20 74 6f 29 29 29 0a 20 20 20 20 20 o.(make-overlay.from.to)))......
794c0 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 20 27 69 6e 76 69 73 69 62 6c 65 20 27 6a 73 32 2d .(overlay-put.o.'invisible.'js2-
794e0 6f 75 74 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 20 27 69 outline).......(overlay-put.o.'i
79500 73 65 61 72 63 68 2d 6f 70 65 6e 2d 69 6e 76 69 73 69 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 search-open-invisible...........
79520 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 69 73 65 61 72 63 68 2d 6f 70 65 6e 2d 69 6e 76 69 73 .........'js2-isearch-open-invis
79540 69 62 6c 65 29 0a 20 20 20 20 20 20 6f 29 29 29 0a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 20 74 6f ible).......o)))..;;.Function.to
79560 20 62 65 20 73 65 74 20 61 73 20 61 6e 20 6f 75 74 6c 69 6e 65 2d 69 73 65 61 72 63 68 2d 6f 70 .be.set.as.an.outline-isearch-op
79580 65 6e 2d 69 6e 76 69 73 69 62 6c 65 27 20 70 72 6f 70 65 72 74 79 0a 3b 3b 20 74 6f 20 74 68 65 en-invisible'.property.;;.to.the
795a0 20 6f 76 65 72 6c 61 79 20 74 68 61 74 20 6d 61 6b 65 73 20 74 68 65 20 6f 75 74 6c 69 6e 65 20 .overlay.that.makes.the.outline.
795c0 69 6e 76 69 73 69 62 6c 65 20 28 73 65 65 0a 3b 3b 20 60 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 invisible.(see.;;.`js2-mode-flag
795e0 2d 72 65 67 69 6f 6e 27 29 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 73 65 61 72 63 68 2d 6f 70 -region')..(defun.js2-isearch-op
79600 65 6e 2d 69 6e 76 69 73 69 62 6c 65 20 28 5f 6f 76 65 72 6c 61 79 29 0a 20 20 3b 3b 20 57 65 20 en-invisible.(_overlay)...;;.We.
79620 72 65 6c 79 20 6f 6e 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 69 73 65 61 72 63 68 20 70 6c rely.on.the.fact.that.isearch.pl
79640 61 63 65 73 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 6d 61 74 63 68 65 64 20 74 65 78 74 2e 0a aces.point.on.the.matched.text..
79660 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 29 29 0a 0a 28 64 65 66 ..(js2-mode-show-element))..(def
79680 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f un.js2-mode-invisible-overlay-bo
796a0 75 6e 64 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 63 unds.(&optional.pos)..."Return.c
796c0 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 62 6f 75 6e 64 73 20 6f 66 20 66 6f 6c 64 69 6e 67 20 6f 76 ons.cell.of.bounds.of.folding.ov
796e0 65 72 6c 61 79 20 61 74 20 50 4f 53 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 74 erlay.at.POS..Returns.nil.if.not
79700 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 73 20 28 6f 76 65 72 .found."...(let.((overlays.(over
79720 6c 61 79 73 2d 61 74 20 28 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 lays-at.(or.pos.(point))))......
79740 20 20 20 6f 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6f 76 65 72 6c 61 79 73 0a 20 ...o).....(while.(and.overlays..
79760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6f 29 29 0a 20 20 20 20 20 20 28 69 ...............(not.o)).......(i
79780 66 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 28 63 61 72 20 6f 76 65 72 6c 61 79 73 29 20 27 69 f.(overlay-get.(car.overlays).'i
797a0 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 20 28 63 61 72 nvisible)...........(setq.o.(car
797c0 20 6f 76 65 72 6c 61 79 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 65 72 6c 61 .overlays)).........(setq.overla
797e0 79 73 20 28 63 64 72 20 6f 76 65 72 6c 61 79 73 29 29 29 29 0a 20 20 20 20 28 69 66 20 6f 0a 20 ys.(cdr.overlays)))).....(if.o..
79800 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 29 20 28 .......(cons.(overlay-start.o).(
79820 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d overlay-end.o)))))..(defun.js2-m
79840 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c ode-function-at-point.(&optional
79860 20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 66 75 .pos)..."Return.the.innermost.fu
79880 6e 63 74 69 6f 6e 20 6e 6f 64 65 20 65 6e 63 6c 6f 73 69 6e 67 20 63 75 72 72 65 6e 74 20 70 6f nction.node.enclosing.current.po
798a0 69 6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74 int..Returns.nil.if.point.is.not
798c0 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 .in.a.function."...(let.((node.(
798e0 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 70 6f 73 29 29 29 0a 20 20 20 20 28 77 68 js2-node-at-point.pos))).....(wh
79900 69 6c 65 20 28 61 6e 64 20 6e 6f 64 65 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e ile.(and.node.(not.(js2-function
79920 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 -node-p.node))).......(setq.node
79940 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 .(js2-node-parent.node))).....(i
79960 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 f.(js2-function-node-p.node)....
79980 20 20 20 20 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f .....node)))..(defun.js2-mode-to
799a0 67 67 6c 65 2d 65 6c 65 6d 65 6e 74 20 28 29 0a 20 20 22 48 69 64 65 20 6f 72 20 73 68 6f 77 20 ggle-element.()..."Hide.or.show.
799c0 74 68 65 20 66 6f 6c 64 61 62 6c 65 20 65 6c 65 6d 65 6e 74 20 61 74 20 74 68 65 20 70 6f 69 6e the.foldable.element.at.the.poin
799e0 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 63 6f 6d 6d t."...(interactive)...(let.(comm
79a00 65 6e 74 20 66 6e 20 70 6f 73 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a ent.fn.pos).....(save-excursion.
79a20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 2f 2a 20 2e 2e 2e 20 2a 2f 20 ......(cond........;;./*.....*/.
79a40 63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 63 6f 6d 6d comment?........((js2-block-comm
79a60 65 6e 74 2d 70 20 28 73 65 74 71 20 63 6f 6d 6d 65 6e 74 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 ent-p.(setq.comment.(js2-comment
79a80 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 6f -at-point))).........(if.(js2-mo
79aa0 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f 75 6e 64 73 0a 20 20 20 20 de-invisible-overlay-bounds.....
79ac0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 2b 20 33 20 28 6a 73 32 2d 6e 6f 64 .........(setq.pos.(+.3.(js2-nod
79ae0 65 2d 61 62 73 2d 70 6f 73 20 63 6f 6d 6d 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 e-abs-pos.comment))))...........
79b00 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 ..(progn...............(goto-cha
79b20 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 r.pos)...............(js2-mode-s
79b40 68 6f 77 2d 65 6c 65 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 how-element))...........(js2-mod
79b60 65 2d 68 69 64 65 2d 65 6c 65 6d 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 2f 2f 2d 63 e-hide-element)))........;;.//-c
79b80 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a omment?........((save-excursion.
79ba0 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a ..........(back-to-indentation).
79bc0 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 2f ..........(looking-at.js2-mode-/
79be0 2f 2d 63 6f 6d 6d 65 6e 74 2d 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 /-comment-re)).........(js2-mode
79c00 2d 74 6f 67 67 6c 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 66 -toggle-//-comment))........;;.f
79c20 75 6e 63 74 69 6f 6e 3f 0a 20 20 20 20 20 20 20 28 28 73 65 74 71 20 66 6e 20 28 6a 73 32 2d 6d unction?........((setq.fn.(js2-m
79c40 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 ode-function-at-point)).........
79c60 28 73 65 74 71 20 70 6f 73 20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 (setq.pos.(and.(js2-function-nod
79c80 65 2d 62 6f 64 79 20 66 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-body.fn)......................
79ca0 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f ..(js2-node-abs-pos.(js2-functio
79cc0 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f n-node-body.fn)))).........(goto
79ce0 2d 63 68 61 72 20 28 31 2b 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 -char.(1+.pos)).........(if.(js2
79d00 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a -mode-invisible-overlay-bounds).
79d20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d 65 ............(js2-mode-show-eleme
79d40 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 65 6c 65 nt)...........(js2-mode-hide-ele
79d60 6d 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 ment)))........(t.........(messa
79d80 67 65 20 22 4e 6f 74 68 69 6e 67 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 68 69 64 65 20 6f 72 20 ge."Nothing.at.point.to.hide.or.
79da0 73 68 6f 77 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 show"))))))..(defun.js2-mode-hid
79dc0 65 2d 65 6c 65 6d 65 6e 74 20 28 29 0a 20 20 22 46 6f 6c 64 2f 68 69 64 65 20 63 6f 6e 74 65 6e e-element.()..."Fold/hide.conten
79de0 74 73 20 6f 66 20 61 20 62 6c 6f 63 6b 2c 20 73 68 6f 77 69 6e 67 20 65 6c 6c 69 70 73 65 73 2e ts.of.a.block,.showing.ellipses.
79e00 0a 53 68 6f 77 20 74 68 65 20 68 69 64 64 65 6e 20 74 65 78 74 20 77 69 74 68 20 5c 5c 5b 6a 73 .Show.the.hidden.text.with.\\[js
79e20 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 5d 2e 22 0a 20 20 28 69 6e 74 65 72 61 2-mode-show-element]."...(intera
79e40 63 74 69 76 65 29 0a 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 ctive)...(if.js2-mode-buffer-dir
79e60 74 79 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d 66 6f 72 2d 70 61 ty-p.......(js2-mode-wait-for-pa
79e80 72 73 65 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 65 6c 65 6d 65 6e 74 29 29 0a 20 20 rse.#'js2-mode-hide-element))...
79ea0 28 6c 65 74 20 28 6e 6f 64 65 20 62 6f 64 79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 63 6f (let.(node.body.beg.end).....(co
79ec0 6e 64 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 nd......((js2-mode-invisible-ove
79ee0 72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 61 6c 72 rlay-bounds).......(message."alr
79f00 65 61 64 79 20 68 69 64 64 65 6e 22 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 73 65 eady.hidden"))......(t.......(se
79f20 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 tq.node.(js2-node-at-point))....
79f40 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 63 6f 6d 6d ...(cond........((js2-block-comm
79f60 65 6e 74 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 ent-p.node).........(js2-mode-hi
79f80 64 65 2d 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 de-comment.node))........(t.....
79fa0 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6e 6f 64 65 20 28 6e 6f 74 20 28 6a 73 32 2d 66 ....(while.(and.node.(not.(js2-f
79fc0 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 unction-node-p.node)))..........
79fe0 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 .(setq.node.(js2-node-parent.nod
7a000 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6e 6f 64 65 0a 20 20 20 20 20 e))).........(if.(and.node......
7a020 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63 ............(setq.body.(js2-func
7a040 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 tion-node-body.node)))..........
7a060 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 ...(progn...............(setq.be
7a080 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 62 6f 64 79 29 0a 20 20 20 20 20 20 g.(js2-node-abs-pos.body).......
7a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f ..............end.(+.beg.(js2-no
7a0c0 64 65 2d 6c 65 6e 20 62 6f 64 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 de-len.body)))...............(js
7a0e0 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 31 2b 20 62 65 67 29 20 28 31 2d 20 2-mode-flag-region.(1+.beg).(1-.
7a100 65 6e 64 29 20 27 68 69 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 end).'hide))...........(message.
7a120 22 4e 6f 20 63 6f 6c 6c 61 70 73 61 62 6c 65 20 65 6c 65 6d 65 6e 74 20 66 6f 75 6e 64 20 61 74 "No.collapsable.element.found.at
7a140 20 70 6f 69 6e 74 22 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 .point"))))))))..(defun.js2-mode
7a160 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 20 28 29 0a 20 20 22 53 68 6f 77 20 74 68 65 20 68 69 64 -show-element.()..."Show.the.hid
7a180 64 65 6e 20 65 6c 65 6d 65 6e 74 20 61 74 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 22 0a 20 den.element.at.current.point."..
7a1a0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28 .(interactive)...(let.((bounds.(
7a1c0 6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f 75 6e 64 js2-mode-invisible-overlay-bound
7a1e0 73 29 29 29 0a 20 20 20 20 28 69 66 20 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 28 6a 73 32 s))).....(if.bounds.........(js2
7a200 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 63 61 72 20 62 6f 75 6e 64 73 29 20 28 -mode-flag-region.(car.bounds).(
7a220 63 64 72 20 62 6f 75 6e 64 73 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 cdr.bounds).nil).......(message.
7a240 22 4e 6f 74 68 69 6e 67 20 74 6f 20 75 6e 2d 68 69 64 65 22 29 29 29 29 0a 0a 28 64 65 66 75 6e "Nothing.to.un-hide"))))..(defun
7a260 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 20 28 29 0a 20 20 22 53 68 6f 77 20 61 6c .js2-mode-show-all.()..."Show.al
7a280 6c 20 6f 66 20 74 68 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 l.of.the.text.in.the.buffer."...
7a2a0 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 (interactive)...(js2-mode-flag-r
7a2c0 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 6e 69 egion.(point-min).(point-max).ni
7a2e0 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 l))..(defun.js2-mode-toggle-hide
7a300 2d 66 75 6e 63 74 69 6f 6e 73 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 -functions.()...(interactive)...
7a320 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 73 2d 68 69 64 64 65 6e 0a 20 20 (if.js2-mode-functions-hidden...
7a340 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 ....(js2-mode-show-functions)...
7a360 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 0a 0a 28 ..(js2-mode-hide-functions)))..(
7a380 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f 6e 73 20 28 29 defun.js2-mode-hide-functions.()
7a3a0 0a 20 20 22 48 69 64 65 73 20 61 6c 6c 20 6e 6f 6e 2d 6e 65 73 74 65 64 20 66 75 6e 63 74 69 6f ..."Hides.all.non-nested.functio
7a3c0 6e 20 62 6f 64 69 65 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 55 73 65 20 5c 5c 5b 6a n.bodies.in.the.buffer..Use.\\[j
7a3e0 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 5d 20 74 6f 20 72 65 76 65 61 6c 20 74 68 65 6d s2-mode-show-all].to.reveal.them
7a400 2c 20 6f 72 20 5c 5c 5b 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 5d 0a 74 ,.or.\\[js2-mode-show-element].t
7a420 6f 20 6f 70 65 6e 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 65 6e 74 72 79 2e 22 0a 20 20 28 o.open.an.individual.entry."...(
7a440 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 interactive)...(if.js2-mode-buff
7a460 65 72 2d 64 69 72 74 79 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d er-dirty-p.......(js2-mode-wait-
7a480 66 6f 72 2d 70 61 72 73 65 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 for-parse.#'js2-mode-hide-functi
7a4a0 6f 6e 73 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a ons))...(if.(null.js2-mode-ast).
7a4c0 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 6f 70 73 20 2d 20 70 61 72 73 69 6e 67 20 66 ......(message."Oops.-.parsing.f
7a4e0 61 69 6c 65 64 22 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 ailed").....(setq.js2-mode-funct
7a500 69 6f 6e 73 2d 68 69 64 64 65 6e 20 74 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 ions-hidden.t).....(js2-visit-as
7a520 74 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 t.js2-mode-ast.#'js2-mode-functi
7a540 6f 6e 2d 68 69 64 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e on-hider)))..(defun.js2-mode-fun
7a560 63 74 69 6f 6e 2d 68 69 64 65 72 20 28 6e 20 65 6e 64 70 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f ction-hider.(n.endp)...(when.(no
7a580 74 20 65 6e 64 70 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d t.endp).....(let.((tt.(js2-node-
7a5a0 74 79 70 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 20 62 65 67 20 65 6e 64 29 type.n))...........body.beg.end)
7a5c0 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 .......(cond........((and.(=.tt.
7a5e0 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 js2-FUNCTION)..............(setq
7a600 20 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 .body.(js2-function-node-body.n)
7a620 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 )).........(setq.beg.(js2-node-a
7a640 62 73 2d 70 6f 73 20 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 bs-pos.body)...............end.(
7a660 2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 62 6f 64 79 29 29 29 0a 20 20 20 20 +.beg.(js2-node-len.body))).....
7a680 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 31 2b 20 62 65 ....(js2-mode-flag-region.(1+.be
7a6a0 67 29 20 28 31 2d 20 65 6e 64 29 20 27 68 69 64 65 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 29 20 g).(1-.end).'hide).........nil).
7a6c0 20 20 3b 20 64 6f 6e 27 74 20 70 72 6f 63 65 73 73 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 66 75 ..;.don't.process.children.of.fu
7a6e0 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 74 29 29 29 29 29 20 nction........(t.........t))))).
7a700 3b 20 6b 65 65 70 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 74 68 65 72 20 41 53 54 20 6e 6f 64 65 ;.keep.processing.other.AST.node
7a720 73 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 66 75 6e 63 74 69 6f 6e s..(defun.js2-mode-show-function
7a740 73 20 28 29 0a 20 20 22 55 6e 2d 68 69 64 65 20 61 6e 79 20 66 6f 6c 64 65 64 20 66 75 6e 63 74 s.()..."Un-hide.any.folded.funct
7a760 69 6f 6e 20 62 6f 64 69 65 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e ion.bodies.in.the.buffer."...(in
7a780 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 teractive)...(setq.js2-mode-func
7a7a0 74 69 6f 6e 73 2d 68 69 64 64 65 6e 20 6e 69 6c 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 tions-hidden.nil)...(save-excurs
7a7c0 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a ion.....(goto-char.(point-min)).
7a7e0 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e 65 78 74 2d ....(while.(/=.(goto-char.(next-
7a800 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 overlay-change.(point)))........
7a820 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 ........(point-max)).......(doli
7a840 73 74 20 28 6f 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 st.(o.(overlays-at.(point)))....
7a860 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 .....(when.(and.(overlay-get.o.'
7a880 69 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e invisible)....................(n
7a8a0 6f 74 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 ot.(overlay-get.o.'comment)))...
7a8c0 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 6f ........(js2-mode-flag-region.(o
7a8e0 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 29 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 29 20 verlay-start.o).(overlay-end.o).
7a900 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d nil))))))..(defun.js2-mode-hide-
7a920 63 6f 6d 6d 65 6e 74 20 28 6e 29 0a 20 20 28 6c 65 74 2a 20 28 28 68 65 61 64 20 28 69 66 20 28 comment.(n)...(let*.((head.(if.(
7a940 65 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 66 6f 72 6d 61 74 20 6e 29 20 27 eq.(js2-comment-node-format.n).'
7a960 6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 20 20 3b 20 2f jsdoc)....................3..;./
7a980 2a 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32 29 29 20 20 3b 20 2f 2a 0a 20 20 **..................2))..;./*...
7a9a0 20 20 20 20 20 20 20 28 62 65 67 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 .......(beg.(+.(js2-node-abs-pos
7a9c0 20 6e 29 20 68 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 2d 20 28 2b 20 62 .n).head))..........(end.(-.(+.b
7a9e0 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 29 29 20 68 65 61 64 20 32 29 29 0a 20 20 eg.(js2-node-len.n)).head.2))...
7aa00 20 20 20 20 20 20 20 28 6f 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 .......(o.(js2-mode-flag-region.
7aa20 62 65 67 20 65 6e 64 20 27 68 69 64 65 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 beg.end.'hide))).....(overlay-pu
7aa40 74 20 6f 20 27 63 6f 6d 6d 65 6e 74 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f t.o.'comment.t)))..(defun.js2-mo
7aa60 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 20 28 29 0a 20 20 22 46 6f de-toggle-hide-comments.()..."Fo
7aa80 6c 64 73 20 61 6c 6c 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 62 75 lds.all.block.comments.in.the.bu
7aaa0 66 66 65 72 2e 0a 55 73 65 20 5c 5c 5b 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 5d 20 ffer..Use.\\[js2-mode-show-all].
7aac0 74 6f 20 72 65 76 65 61 6c 20 74 68 65 6d 2c 20 6f 72 20 5c 5c 5b 6a 73 32 2d 6d 6f 64 65 2d 73 to.reveal.them,.or.\\[js2-mode-s
7aae0 68 6f 77 2d 65 6c 65 6d 65 6e 74 5d 0a 74 6f 20 6f 70 65 6e 20 61 6e 20 69 6e 64 69 76 69 64 75 how-element].to.open.an.individu
7ab00 61 6c 20 65 6e 74 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 al.entry."...(interactive)...(if
7ab20 20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 69 64 64 65 6e 0a 20 20 20 20 20 20 .js2-mode-comments-hidden.......
7ab40 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 6a 73 (js2-mode-show-comments).....(js
7ab60 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 2-mode-hide-comments)))..(defun.
7ab80 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 20 28 29 0a 20 20 28 69 6e 74 js2-mode-hide-comments.()...(int
7aba0 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d eractive)...(if.js2-mode-buffer-
7abc0 64 69 72 74 79 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d 66 6f 72 dirty-p.......(js2-mode-wait-for
7abe0 2d 70 61 72 73 65 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 29 -parse.#'js2-mode-hide-comments)
7ac00 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 )...(if.(null.js2-mode-ast).....
7ac20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 6f 70 73 20 2d 20 70 61 72 73 69 6e 67 20 66 61 69 6c 65 ..(message."Oops.-.parsing.faile
7ac40 64 22 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d d").....(setq.js2-mode-comments-
7ac60 68 69 64 64 65 6e 20 74 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6e 20 28 6a 73 32 2d 61 73 hidden.t).....(dolist.(n.(js2-as
7ac80 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 t-root-comments.js2-mode-ast))..
7aca0 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 70 20 .....(when.(js2-block-comment-p.
7acc0 6e 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e n).........(js2-mode-hide-commen
7ace0 74 20 6e 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 2f 2f 2d 63 6f 6d t.n))).....(js2-mode-hide-//-com
7ad00 6d 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 ments)))..(defun.js2-mode-extend
7ad20 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 28 64 69 72 65 63 74 69 6f 6e 29 0a 20 20 22 46 69 6e 64 20 -//-comment.(direction)..."Find.
7ad40 73 74 61 72 74 20 6f 72 20 65 6e 64 20 6f 66 20 61 20 62 6c 6f 63 6b 20 6f 66 20 73 69 6d 69 6c start.or.end.of.a.block.of.simil
7ad60 61 72 20 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 6c 69 6e 65 73 2e 0a 44 49 52 45 43 54 49 4f 4e 20 69 ar.//-comment.lines..DIRECTION.i
7ad80 73 20 2d 31 20 74 6f 20 6c 6f 6f 6b 20 62 61 63 6b 2c 20 31 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 s.-1.to.look.back,.1.to.look.for
7ada0 77 61 72 64 2e 0a 49 4e 44 45 4e 54 20 69 73 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 ward..INDENT.is.the.indentation.
7adc0 6c 65 76 65 6c 20 74 6f 20 6d 61 74 63 68 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 65 6e 64 2d level.to.match..Returns.the.end-
7ade0 6f 66 2d 6c 69 6e 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 75 72 74 68 65 73 74 of-line.position.of.the.furthest
7ae00 20 61 64 6a 61 63 65 6e 74 0a 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 6c 69 6e 65 20 77 69 74 68 20 74 .adjacent.//-comment.line.with.t
7ae20 68 65 20 73 61 6d 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 61 73 20 74 68 65 20 63 75 72 72 65 he.same.indentation.as.the.curre
7ae40 6e 74 20 6c 69 6e 65 2e 0a 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 75 63 68 20 6d 61 74 nt.line..If.there.is.no.such.mat
7ae60 63 68 69 6e 67 20 6c 69 6e 65 2c 20 72 65 74 75 72 6e 73 20 63 75 72 72 65 6e 74 20 65 6e 64 20 ching.line,.returns.current.end.
7ae80 6f 66 20 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74 of.line."...(let.((pos.(point-at
7aea0 2d 65 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 28 63 75 72 72 65 6e 74 2d -eol)).........(indent.(current-
7aec0 69 6e 64 65 6e 74 61 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 indentation))).....(save-excursi
7aee0 6f 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 28 66 6f 72 on.......(while.(and.(zerop.(for
7af00 77 61 72 64 2d 6c 69 6e 65 20 64 69 72 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 ward-line.direction))...........
7af20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 2f 2f 2d ........(looking-at.js2-mode-//-
7af40 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 comment-re)...................(e
7af60 71 20 69 6e 64 65 6e 74 20 28 6c 65 6e 67 74 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 q.indent.(length.(match-string.1
7af80 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74 )))).........(setq.pos.(point-at
7afa0 2d 65 6f 6c 29 29 29 0a 20 20 20 20 20 20 70 6f 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 -eol))).......pos)))..(defun.js2
7afc0 2d 6d 6f 64 65 2d 68 69 64 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 73 20 28 29 0a 20 20 22 46 6f 6c -mode-hide-//-comments.()..."Fol
7afe0 64 20 61 64 6a 61 63 65 6e 74 20 31 2d 6c 69 6e 65 20 63 6f 6d 6d 65 6e 74 73 2c 20 73 68 6f 77 d.adjacent.1-line.comments,.show
7b000 69 6e 67 20 6f 6e 6c 79 20 73 6e 69 70 70 65 74 20 6f 66 20 66 69 72 73 74 20 6f 6e 65 2e 22 0a ing.only.snippet.of.first.one.".
7b020 20 20 28 6c 65 74 20 28 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 ..(let.(beg.end).....(save-excur
7b040 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e sion.......(goto-char.(point-min
7b060 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 )).......(while.(re-search-forwa
7b080 72 64 20 6a 73 32 2d 6d 6f 64 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 2d 72 65 20 6e 69 6c 20 74 29 rd.js2-mode-//-comment-re.nil.t)
7b0a0 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 .........(setq.beg.(point)......
7b0c0 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 2d 2f 2f .........end.(js2-mode-extend-//
7b0e0 2d 63 6f 6d 6d 65 6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 -comment.1)).........(unless.(eq
7b100 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 .beg.end)...........(overlay-put
7b120 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 20 27 .(js2-mode-flag-region.beg.end.'
7b140 68 69 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f hide)........................'co
7b160 6d 6d 65 6e 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 mment.t)).........(goto-char.end
7b180 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 29 0a 0a ).........(forward-char.1)))))..
7b1a0 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e (defun.js2-mode-toggle-//-commen
7b1c0 74 20 28 29 0a 20 20 22 46 6f 6c 64 20 6f 72 20 75 6e 2d 66 6f 6c 64 20 61 6e 79 20 6d 75 6c 74 t.()..."Fold.or.un-fold.any.mult
7b1e0 69 2d 6c 69 6e 65 20 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 2e 0a 43 61 6c 6c i-line.//-comment.at.point..Call
7b200 65 72 20 73 68 6f 75 6c 64 20 68 61 76 65 20 64 65 74 65 72 6d 69 6e 65 64 20 74 68 61 74 20 74 er.should.have.determined.that.t
7b220 68 69 73 20 6c 69 6e 65 20 73 74 61 72 74 73 20 77 69 74 68 20 61 20 2f 2f 2d 63 6f 6d 6d 65 6e his.line.starts.with.a.//-commen
7b240 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 65 67 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 t."...(let*.((beg.(point-at-eol)
7b260 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 62 65 67 29 29 0a 20 20 20 20 28 73 61 76 65 2d )..........(end.beg)).....(save-
7b280 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a excursion.......(goto-char.end).
7b2a0 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 ......(if.(js2-mode-invisible-ov
7b2c0 65 72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 erlay-bounds)...........(js2-mod
7b2e0 65 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 e-show-element).........;;.else.
7b300 68 69 64 65 20 74 68 65 20 63 6f 6d 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 hide.the.comment.........(setq.b
7b320 65 67 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 2d eg.(js2-mode-extend-//-comment.-
7b340 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 1)...............end.(js2-mode-e
7b360 78 74 65 6e 64 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e xtend-//-comment.1)).........(un
7b380 6c 65 73 73 20 28 65 71 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 less.(eq.beg.end)...........(ove
7b3a0 72 6c 61 79 2d 70 75 74 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 62 rlay-put.(js2-mode-flag-region.b
7b3c0 65 67 20 65 6e 64 20 27 68 69 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eg.end.'hide)...................
7b3e0 20 20 20 20 20 27 63 6f 6d 6d 65 6e 74 20 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 .....'comment.t))))))..(defun.js
7b400 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 63 6f 6d 6d 65 6e 74 73 20 28 29 0a 20 20 22 55 6e 2d 68 69 2-mode-show-comments.()..."Un-hi
7b420 64 65 20 61 6e 79 20 68 69 64 64 65 6e 20 63 6f 6d 6d 65 6e 74 73 2c 20 6c 65 61 76 69 6e 67 20 de.any.hidden.comments,.leaving.
7b440 6f 74 68 65 72 20 68 69 64 64 65 6e 20 65 6c 65 6d 65 6e 74 73 20 61 6c 6f 6e 65 2e 22 0a 20 20 other.hidden.elements.alone."...
7b460 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 63 (interactive)...(setq.js2-mode-c
7b480 6f 6d 6d 65 6e 74 73 2d 68 69 64 64 65 6e 20 6e 69 6c 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 omments-hidden.nil)...(save-excu
7b4a0 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 rsion.....(goto-char.(point-min)
7b4c0 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e 65 78 ).....(while.(/=.(goto-char.(nex
7b4e0 74 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 t-overlay-change.(point)))......
7b500 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 64 6f ..........(point-max)).......(do
7b520 6c 69 73 74 20 28 6f 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 list.(o.(overlays-at.(point)))..
7b540 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 63 6f 6d .......(when.(overlay-get.o.'com
7b560 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 ment)...........(js2-mode-flag-r
7b580 65 67 69 6f 6e 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 29 20 28 6f 76 65 72 6c 61 79 egion.(overlay-start.o).(overlay
7b5a0 2d 65 6e 64 20 6f 29 20 6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f -end.o).nil))))))..(defun.js2-mo
7b5c0 64 65 2d 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 20 28 de-display-warnings-and-errors.(
7b5e0 29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 64 69 73 70 6c 61 79 20 6f 66 20 77 61 72 6e 69 6e 67 73 )..."Turn.on.display.of.warnings
7b600 20 61 6e 64 20 65 72 72 6f 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 .and.errors."...(interactive)...
7b620 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 (setq.js2-mode-show-parse-errors
7b640 20 74 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d .t.........js2-mode-show-strict-
7b660 77 61 72 6e 69 6e 67 73 20 74 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 20 27 66 6f 72 63 warnings.t)...(js2-reparse.'forc
7b680 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 77 61 72 6e 69 6e e))..(defun.js2-mode-hide-warnin
7b6a0 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 66 66 20 64 69 73 gs-and-errors.()..."Turn.off.dis
7b6c0 70 6c 61 79 20 6f 66 20 77 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f 72 73 2e 22 0a 20 20 play.of.warnings.and.errors."...
7b6e0 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73 (interactive)...(setq.js2-mode-s
7b700 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32 how-parse-errors.nil.........js2
7b720 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 73 20 6e 69 6c 29 0a -mode-show-strict-warnings.nil).
7b740 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 20 27 66 6f 72 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 ..(js2-reparse.'force))..(defun.
7b760 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 js2-mode-toggle-warnings-and-err
7b780 6f 72 73 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 64 69 73 70 6c 61 79 20 6f 66 20 ors.()..."Toggle.the.display.of.
7b7a0 77 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f 72 73 2e 0a 53 6f 6d 65 20 75 73 65 72 73 20 warnings.and.errors..Some.users.
7b7c0 64 6f 6e 27 74 20 6c 69 6b 65 20 68 61 76 69 6e 67 20 77 61 72 6e 69 6e 67 73 2f 65 72 72 6f 72 don't.like.having.warnings/error
7b7e0 73 20 72 65 70 6f 72 74 65 64 20 77 68 69 6c 65 20 74 68 65 79 20 74 79 70 65 2e 22 0a 20 20 28 s.reported.while.they.type."...(
7b800 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 interactive)...(setq.js2-mode-sh
7b820 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 20 28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 ow-parse-errors.(not.js2-mode-sh
7b840 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 ow-parse-errors).........js2-mod
7b860 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 73 20 28 6e 6f 74 20 6a 73 32 2d e-show-strict-warnings.(not.js2-
7b880 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 73 29 29 0a 20 20 28 69 mode-show-strict-warnings))...(i
7b8a0 66 20 28 63 61 6c 6c 65 64 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2d 70 20 27 61 6e 79 29 0a f.(called-interactively-p.'any).
7b8c0 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 77 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 ......(message."warnings.and.err
7b8e0 6f 72 73 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 6d ors.%s"................(if.js2-m
7b900 6f 64 65 2d 73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 ode-show-parse-errors...........
7b920 20 20 20 20 20 20 20 20 20 22 65 6e 61 62 6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........."enabled"..............
7b940 20 20 20 20 22 64 69 73 61 62 6c 65 64 22 29 29 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 ...."disabled")))...(js2-reparse
7b960 20 27 66 6f 72 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 75 73 74 6f .'force))..(defun.js2-mode-custo
7b980 6d 69 7a 65 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 75 73 74 6f mize.()...(interactive)...(custo
7b9a0 6d 69 7a 65 2d 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a mize-group.'js2-mode))..(defun.j
7b9c0 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 64 2d 73 65 78 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 s2-mode-forward-sexp.(&optional.
7b9e0 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 66 6f 72 77 61 72 64 20 61 63 72 6f 73 73 20 6f 6e 65 20 arg)..."Move.forward.across.one.
7ba00 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 62 61 6c 61 6e 63 65 64 20 65 78 70 72 65 73 73 69 6f 6e statement.or.balanced.expression
7ba20 2e 0a 57 69 74 68 20 41 52 47 2c 20 64 6f 20 69 74 20 74 68 61 74 20 6d 61 6e 79 20 74 69 6d 65 ..With.ARG,.do.it.that.many.time
7ba40 73 2e 20 20 4e 65 67 61 74 69 76 65 20 61 72 67 20 2d 4e 20 6d 65 61 6e 73 0a 6d 6f 76 65 20 62 s...Negative.arg.-N.means.move.b
7ba60 61 63 6b 77 61 72 64 20 61 63 72 6f 73 73 20 4e 20 62 61 6c 61 6e 63 65 64 20 65 78 70 72 65 73 ackward.across.N.balanced.expres
7ba80 73 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 73 sions."...(interactive."p")...(s
7baa0 65 74 71 20 61 72 67 20 28 6f 72 20 61 72 67 20 31 29 29 0a 20 20 28 73 61 76 65 2d 72 65 73 74 etq.arg.(or.arg.1))...(save-rest
7bac0 72 69 63 74 69 6f 6e 0a 20 20 20 20 28 77 69 64 65 6e 29 20 3b 3b 20 60 62 6c 69 6e 6b 2d 6d 61 riction.....(widen).;;.`blink-ma
7bae0 74 63 68 69 6e 67 2d 6f 70 65 6e 27 20 63 61 6c 6c 73 20 60 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 tching-open'.calls.`narrow-to-re
7bb00 67 69 6f 6e 27 0a 20 20 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 0a 20 20 20 20 28 6c 65 74 gion'.....(js2-reparse).....(let
7bb20 20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 .(forward-sexp-function.........
7bb40 20 20 6e 6f 64 65 20 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 20 70 6f 73 20 6c 70 20 72 70 ..node.(start.(point)).pos.lp.rp
7bb60 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 .child).......(cond........((js2
7bb80 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e -string-node-p.(js2-node-at-poin
7bba0 74 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 20 61 72 67 29 29 0a t)).........(forward-sexp.arg)).
7bbc0 20 20 20 20 20 20 20 3b 3b 20 62 61 63 6b 77 61 72 64 2d 73 65 78 70 0a 20 20 20 20 20 20 20 3b .......;;.backward-sexp........;
7bbe0 3b 20 63 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 6d 61 6b 65 20 74 68 69 73 20 62 65 74 74 65 ;.could.probably.make.this.bette
7bc00 72 20 66 6f 72 20 73 6f 6d 65 20 63 61 73 65 73 3a 0a 20 20 20 20 20 20 20 3b 3b 20 20 2d 20 69 r.for.some.cases:........;;..-.i
7bc20 66 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 62 6c 6f 63 6b 20 28 65 2e 67 2e 20 66 75 6e 63 74 f.in.statement.block.(e.g..funct
7bc40 69 6f 6e 20 62 6f 64 79 29 2c 20 67 6f 20 74 6f 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 3b ion.body),.go.to.parent........;
7bc60 3b 20 20 2d 20 69 6e 66 69 78 20 65 78 70 72 73 20 6c 69 6b 65 20 28 66 6f 6f 20 69 6e 20 62 61 ;..-.infix.exprs.like.(foo.in.ba
7bc80 72 29 20 2d 20 6d 61 79 62 65 20 67 6f 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 0a 20 20 20 20 20 r).-.maybe.go.to.beginning......
7bca0 20 20 3b 3b 20 20 20 20 6f 66 20 69 6e 66 69 78 20 65 78 70 72 20 69 66 20 69 6e 20 74 68 65 20 ..;;....of.infix.expr.if.in.the.
7bcc0 72 69 67 68 74 2d 73 69 64 65 20 65 78 70 72 65 73 73 69 6f 6e 3f 0a 20 20 20 20 20 20 20 28 28 right-side.expression?........((
7bce0 61 6e 64 20 61 72 67 20 28 63 6c 2d 6d 69 6e 75 73 70 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 and.arg.(cl-minusp.arg))........
7bd00 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 2d 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(dotimes.(_.(-.arg))...........
7bd20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f (js2-backward-sws)...........(fo
7bd40 72 77 61 72 64 2d 63 68 61 72 20 2d 31 29 20 20 20 3b 20 45 6e 74 65 72 20 74 68 65 20 6e 6f 64 rward-char.-1)...;.Enter.the.nod
7bd60 65 20 77 65 20 62 61 63 6b 65 64 20 75 70 20 74 6f 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 e.we.backed.up.to............(wh
7bd80 65 6e 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 en.(setq.node.(js2-node-at-point
7bda0 20 28 70 6f 69 6e 74 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 .(point).t)).............(setq.p
7bdc0 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 os.(js2-node-abs-pos.node)).....
7bde0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 73 20 28 6a 73 32 2d 6d 6f 64 65 2d ........(let.((parens.(js2-mode-
7be00 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 70 61 72 65 6e 73 20 6e 6f 64 65 20 70 6f 73 29 29 29 0a forward-sexp-parens.node.pos))).
7be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28 63 61 72 20 70 61 72 65 ..............(setq.lp.(car.pare
7be40 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 70 20 28 63 64 72 20 ns).....................rp.(cdr.
7be60 70 61 72 65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 parens))).............(when.(and
7be80 20 6c 70 20 28 3e 20 73 74 61 72 74 20 6c 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .lp.(>.start.lp))...............
7bea0 28 69 66 20 28 61 6e 64 20 72 70 20 28 3c 3d 20 73 74 61 72 74 20 72 70 29 29 0a 20 20 20 20 20 (if.(and.rp.(<=.start.rp))......
7bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 65 74 77 65 65 6e 20 70 61 72 65 6e 73 2c 20 .............;;.Between.parens,.
7bee0 63 68 65 63 6b 20 69 66 20 74 68 65 72 65 27 73 20 61 20 63 68 69 6c 64 20 6e 6f 64 65 20 77 65 check.if.there's.a.child.node.we
7bf00 20 63 61 6e 20 6a 75 6d 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 .can.jump....................(wh
7bf20 65 6e 20 28 73 65 74 71 20 63 68 69 6c 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 6c 6f 73 65 73 74 en.(setq.child.(js2-node-closest
7bf40 2d 63 68 69 6c 64 20 6e 6f 64 65 20 28 70 6f 69 6e 74 29 20 6c 70 20 74 29 29 0a 20 20 20 20 20 -child.node.(point).lp.t))......
7bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f ...............(setq.pos.(js2-no
7bf80 64 65 2d 61 62 73 2d 70 6f 73 20 63 68 69 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 de-abs-pos.child))).............
7bfa0 20 20 20 20 3b 3b 20 42 65 66 6f 72 65 20 62 6f 74 68 20 70 61 72 65 6e 73 2e 0a 20 20 20 20 20 ....;;.Before.both.parens.......
7bfc0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 6c 70 29 29 29 0a 20 20 20 20 20 ...........(setq.pos.lp)))......
7bfe0 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 28 70 61 72 73 65 2d 70 61 72 74 69 .......(let.((state.(parse-parti
7c000 61 6c 2d 73 65 78 70 20 70 6f 73 20 73 74 61 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 al-sexp.pos.start)))............
7c020 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 28 63 ...(goto-char.(if.(not.(zerop.(c
7c040 61 72 20 73 74 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.state))).....................
7c060 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 75 6d 62 6c 65 20 61 74 20 74 68 65 20 75 6e 62 61 6c .........;;.Stumble.at.the.unbal
7c080 61 6e 63 65 64 20 70 61 72 65 6e 20 69 66 20 3c 20 30 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 anced.paren.if.<.0,.or..........
7c0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 6d 70 20 61 20 62 69 ....................;;.jump.a.bi
7c0c0 74 20 66 75 72 74 68 65 72 20 69 66 20 3e 20 30 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.further.if.>.0................
7c0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 61 6e 2d 73 65 78 70 73 20 73 74 61 72 74 ...............(scan-sexps.start
7c100 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-1)............................
7c120 70 6f 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 20 28 67 pos))))...........(unless.pos.(g
7c140 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 20 20 20 20 20 oto-char.(point-min)))))........
7c160 28 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 77 61 72 64 2d 73 65 78 70 0a 20 20 20 20 20 (t.........;;.forward-sexp......
7c180 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a ...(dotimes.(_.arg)...........(j
7c1a0 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 s2-forward-sws)...........(when.
7c1c0 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 70 (setq.node.(js2-node-at-point.(p
7c1e0 6f 69 6e 74 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 oint).t)).............(setq.pos.
7c200 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 (js2-node-abs-pos.node))........
7c220 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 73 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 .....(let.((parens.(js2-mode-for
7c240 77 61 72 64 2d 73 65 78 70 2d 70 61 72 65 6e 73 20 6e 6f 64 65 20 70 6f 73 29 29 29 0a 20 20 20 ward-sexp-parens.node.pos)))....
7c260 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28 63 61 72 20 70 61 72 65 6e 73 29 ...........(setq.lp.(car.parens)
7c280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 70 20 28 63 64 72 20 70 61 72 .....................rp.(cdr.par
7c2a0 65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 ens))).............(or..........
7c2c0 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72 70 20 28 3c 3d 20 73 74 61 72 74 20 72 70 29 29 ....(when.(and.rp.(<=.start.rp))
7c2e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 73 74 61 72 74 20 6c 70 29 ................(if.(>.start.lp)
7c300 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 74 71 20 ....................(when.(setq.
7c320 63 68 69 6c 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 6c 6f 73 65 73 74 2d 63 68 69 6c 64 20 6e 6f child.(js2-node-closest-child.no
7c340 64 65 20 28 70 6f 69 6e 74 29 20 72 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de.(point).rp)).................
7c360 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 .....(setq.pos.(js2-node-abs-end
7c380 20 63 68 69 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 .child)))..................(setq
7c3a0 20 70 6f 73 20 28 31 2b 20 72 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .pos.(1+.rp))))..............;;.
7c3c0 4e 6f 20 70 61 72 65 6e 73 20 6f 72 20 63 68 69 6c 64 20 6e 6f 64 65 73 2c 20 6c 6f 6f 6b 73 20 No.parens.or.child.nodes,.looks.
7c3e0 66 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2e for.the.end.of.the.current.node.
7c400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 20 28 6a 73 32 2d ..............(cl-incf.pos.(js2-
7c420 6e 6f 64 65 2d 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node-len........................
7c440 20 20 20 20 28 69 66 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 20 28 6a ....(if.(js2-expr-stmt-node-p.(j
7c460 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 s2-node-parent.node))...........
7c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 6f 70 20 61 66 74 .....................;;.Stop.aft
7c4a0 65 72 20 74 68 65 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er.the.semicolon................
7c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e .................(js2-node-paren
7c4e0 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.node).........................
7c500 20 20 20 20 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 .....node)))).............(let.(
7c520 28 73 74 61 74 65 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 70 61 72 73 65 2d 70 61 (state.(save-excursion.(parse-pa
7c540 72 74 69 61 6c 2d 73 65 78 70 20 73 74 61 72 74 20 70 6f 73 29 29 29 29 0a 20 20 20 20 20 20 20 rtial-sexp.start.pos))))........
7c560 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f .......(goto-char.(if.(not.(zero
7c580 70 20 28 63 61 72 20 73 74 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.(car.state))).................
7c5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 61 6e 2d 73 65 78 70 73 20 73 74 61 72 74 20 31 .............(scan-sexps.start.1
7c5c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 )............................pos
7c5e0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 20 28 67 6f 74 6f ))))...........(unless.pos.(goto
7c600 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 -char.(point-max)))))))))..(defu
7c620 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 70 61 72 65 6e 73 20 28 n.js2-mode-forward-sexp-parens.(
7c640 6e 6f 64 65 20 61 62 73 2d 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 node.abs-pos)..."Return.a.cons.c
7c660 65 6c 6c 20 77 69 74 68 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 6d 61 69 6e 20 70 61 72 65 6e ell.with.positions.of.main.paren
7c680 73 20 69 6e 20 4e 4f 44 45 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6f 72 20 28 6a 73 32 s.in.NODE."...(cond....((or.(js2
7c6a0 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 -array-node-p.node).........(js2
7c6c0 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 -object-node-p.node).........(js
7c6e0 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6d 65 6d 2-comp-node-p.node).........(mem
7c700 71 20 28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 27 28 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d q.(aref.node.0).'(cl-struct-js2-
7c720 62 6c 6f 63 6b 2d 6e 6f 64 65 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 73 63 6f 70 65 29 29 block-node.cl-struct-js2-scope))
7c740 29 0a 20 20 20 20 28 63 6f 6e 73 20 61 62 73 2d 70 6f 73 20 28 2b 20 61 62 73 2d 70 6f 73 20 28 ).....(cons.abs-pos.(+.abs-pos.(
7c760 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 20 2d 31 29 29 29 0a 20 20 20 28 28 6a 73 js2-node-len.node).-1)))....((js
7c780 32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6c 2-paren-expr-node-p.node).....(l
7c7a0 65 74 20 28 28 6c 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 et.((lp.(js2-node-lp.node)).....
7c7c0 20 20 20 20 20 20 28 72 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 29 0a 20 ......(rp.(js2-node-rp.node)))..
7c7e0 20 20 20 20 20 28 63 6f 6e 73 20 28 77 68 65 6e 20 6c 70 20 28 2b 20 61 62 73 2d 70 6f 73 20 6c .....(cons.(when.lp.(+.abs-pos.l
7c800 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 70 20 28 2b 20 61 62 73 2d p)).............(when.rp.(+.abs-
7c820 70 6f 73 20 72 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 63 pos.rp)))))))..(defun.js2-node-c
7c840 6c 6f 73 65 73 74 2d 63 68 69 6c 64 20 28 70 61 72 65 6e 74 20 70 6f 69 6e 74 20 6c 69 6d 69 74 losest-child.(parent.point.limit
7c860 20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 66 6f 72 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 72 .&optional.before)...(let*.((par
7c880 65 6e 74 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 ent-pos.(js2-node-abs-pos.parent
7c8a0 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 70 6f 69 6e 74 20 28 2d 20 70 6f 69 6e 74 20 70 61 72 ))..........(rpoint.(-.point.par
7c8c0 65 6e 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 6c 69 6d 69 74 20 28 2d 20 6c 69 ent-pos))..........(rlimit.(-.li
7c8e0 6d 69 74 20 70 61 72 65 6e 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 69 6e 20 28 mit.parent-pos))..........(min.(
7c900 6d 69 6e 20 72 70 6f 69 6e 74 20 72 6c 69 6d 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 min.rpoint.rlimit))..........(ma
7c920 78 20 28 6d 61 78 20 72 70 6f 69 6e 74 20 72 6c 69 6d 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 x.(max.rpoint.rlimit))..........
7c940 66 6f 75 6e 64 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 64 6f 6e 65 0a 20 20 20 20 20 20 28 6a found).....(catch.'done.......(j
7c960 73 32 2d 76 69 73 69 74 2d 61 73 74 0a 20 20 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 s2-visit-ast........parent......
7c980 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 20 5f 65 6e 64 2d 70 29 0a 20 20 20 20 20 20 20 20 ..(lambda.(node._end-p).........
7c9a0 20 28 69 66 20 28 65 71 20 6e 6f 64 65 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 .(if.(eq.node.parent)...........
7c9c0 20 20 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d ...t............(let.((pos.(js2-
7c9e0 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 20 3b 3b 20 42 6f 74 68 20 72 65 6c 61 74 69 76 65 node-pos.node)).;;.Both.relative
7ca00 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 .values...................(end.(
7ca20 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d +.(js2-node-pos.node).(js2-node-
7ca40 6c 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 len.node))))..............(when.
7ca60 28 61 6e 64 20 28 3e 3d 20 70 6f 73 20 6d 69 6e 29 20 28 3c 3d 20 65 6e 64 20 6d 61 78 29 0a 20 (and.(>=.pos.min).(<=.end.max)..
7ca80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 62 65 66 6f 72 .......................(if.befor
7caa0 65 20 28 3c 20 70 6f 73 20 72 70 6f 69 6e 74 29 20 28 3e 20 65 6e 64 20 72 70 6f 69 6e 74 29 29 e.(<.pos.rpoint).(>.end.rpoint))
7cac0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 75 6e 64 20 6e 6f 64 )................(setq.found.nod
7cae0 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 65 6e 64 20 72 70 e))..............(when.(>.end.rp
7cb00 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 64 6f 6e oint)................(throw.'don
7cb20 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 e.nil)))............nil)))).....
7cb40 66 6f 75 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 72 6f 72 73 20 28 29 0a 20 20 found))..(defun.js2-errors.()...
7cb60 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 65 72 72 6f 72 73 20 66 6f 75 6e 64 2e 22 "Return.a.list.of.errors.found."
7cb80 0a 20 20 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 20 20 20 20 28 6a 73 32 ...(and.js2-mode-ast........(js2
7cba0 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 -ast-root-errors.js2-mode-ast)))
7cbc0 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a 20 20 22 52 65 74 75 ..(defun.js2-warnings.()..."Retu
7cbe0 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 77 61 72 6e 69 6e 67 73 20 66 6f 75 6e 64 2e 22 0a 20 20 rn.a.list.of.warnings.found."...
7cc00 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 (and.js2-mode-ast........(js2-as
7cc20 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 0a t-root-warnings.js2-mode-ast))).
7cc40 0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 61 76 65 2d 65 72 72 6f 72 73 2d 70 20 28 29 0a 20 20 22 .(defun.js2-have-errors-p.()..."
7cc60 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 61 6e 79 20 70 61 72 73 65 20 65 72 72 6f Return.non-nil.if.any.parse.erro
7cc80 72 73 20 6f 72 20 77 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6f rs.or.warnings.were.found."...(o
7cca0 72 20 28 6a 73 32 2d 65 72 72 6f 72 73 29 20 28 6a 73 32 2d 77 61 72 6e 69 6e 67 73 29 29 29 0a r.(js2-errors).(js2-warnings))).
7ccc0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 72 6f 72 73 2d 61 6e 64 2d 77 61 72 6e 69 6e 67 73 20 .(defun.js2-errors-and-warnings.
7cce0 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 6e 63 61 ()..."Return.a.copy.of.the.conca
7cd00 74 65 6e 61 74 65 64 20 65 72 72 6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 20 6c 69 73 74 tenated.errors.and.warnings.list
7cd20 73 2e 0a 54 68 65 79 20 61 72 65 20 61 70 70 65 6e 64 65 64 3a 20 20 66 69 72 73 74 20 74 68 65 s..They.are.appended:..first.the
7cd40 20 65 72 72 6f 72 73 2c 20 74 68 65 6e 20 74 68 65 20 77 61 72 6e 69 6e 67 73 2e 0a 45 6e 74 72 .errors,.then.the.warnings..Entr
7cd60 69 65 73 20 61 72 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 4d 53 47 20 42 45 47 20 45 4e 44 ies.are.of.the.form.(MSG.BEG.END
7cd80 29 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 20 28 61 70 )."...(when.js2-mode-ast.....(ap
7cda0 70 65 6e 64 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a 73 32 2d 6d 6f pend.(js2-ast-root-errors.js2-mo
7cdc0 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e de-ast).............(copy-sequen
7cde0 63 65 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f ce.(js2-ast-root-warnings.js2-mo
7ce00 64 65 2d 61 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 65 78 74 2d 65 72 72 de-ast)))))..(defun.js2-next-err
7ce20 6f 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 72 65 73 65 74 29 0a 20 20 22 4d 6f 76 65 or.(&optional.arg.reset)..."Move
7ce40 20 74 6f 20 6e 65 78 74 20 70 61 72 73 65 20 65 72 72 6f 72 2e 0a 54 79 70 69 63 61 6c 6c 79 20 .to.next.parse.error..Typically.
7ce60 69 6e 76 6f 6b 65 64 20 76 69 61 20 5c 5c 5b 6e 65 78 74 2d 65 72 72 6f 72 5d 2e 0a 41 52 47 20 invoked.via.\\[next-error]..ARG.
7ce80 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 65 72 72 6f 72 73 2c 20 66 6f 72 77 61 72 64 is.the.number.of.errors,.forward
7cea0 20 6f 72 20 62 61 63 6b 77 61 72 64 2c 20 74 6f 20 6d 6f 76 65 2e 0a 52 45 53 45 54 20 6d 65 61 .or.backward,.to.move..RESET.mea
7cec0 6e 73 20 73 74 61 72 74 20 6f 76 65 72 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 ns.start.over.from.the.beginning
7cee0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 69 66 20 28 6e 6f ."...(interactive."p")...(if.(no
7cf00 74 20 28 6f 72 20 28 6a 73 32 2d 65 72 72 6f 72 73 29 20 28 6a 73 32 2d 77 61 72 6e 69 6e 67 73 t.(or.(js2-errors).(js2-warnings
7cf20 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 65 72 72 6f 72 73 22 29 0a ))).......(message."No.errors").
7cf40 20 20 20 20 28 77 68 65 6e 20 72 65 73 65 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ....(when.reset.......(goto-char
7cf60 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 72 72 73 20 .(point-min))).....(let*.((errs.
7cf80 28 6a 73 32 2d 65 72 72 6f 72 73 2d 61 6e 64 2d 77 61 72 6e 69 6e 67 73 29 29 0a 20 20 20 20 20 (js2-errors-and-warnings))......
7cfa0 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 ......(continue.t)............(s
7cfc0 74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20 tart.(point))............(count.
7cfe0 28 6f 72 20 61 72 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 (or.arg.1))............(backward
7d000 20 28 63 6c 2d 6d 69 6e 75 73 70 20 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 .(cl-minusp.count))............(
7d020 73 6f 72 74 65 72 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 27 3e 20 27 3c 29 29 0a 20 20 20 20 sorter.(if.backward.'>.'<)).....
7d040 20 20 20 20 20 20 20 28 73 74 6f 70 70 65 72 20 28 69 66 20 62 61 63 6b 77 61 72 64 20 27 3c 20 .......(stopper.(if.backward.'<.
7d060 27 3e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20 28 61 62 73 20 63 6f 75 6e '>))............(count.(abs.coun
7d080 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 61 6c 6c 2d 65 72 72 73 20 65 72 72 29 0a 20 20 20 t))............all-errs.err)....
7d0a0 20 20 20 3b 3b 20 53 6f 72 74 20 62 79 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 ...;;.Sort.by.start.position....
7d0c0 20 20 20 20 28 73 65 74 71 20 65 72 72 73 20 28 73 6f 72 74 20 65 72 72 73 20 28 6c 61 6d 62 64 ....(setq.errs.(sort.errs.(lambd
7d0e0 61 20 28 65 31 20 65 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a.(e1.e2).......................
7d100 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 6f 72 74 65 72 20 28 63 6c 2d 73 65 63 6f ........(funcall.sorter.(cl-seco
7d120 6e 64 20 65 31 29 20 28 63 6c 2d 73 65 63 6f 6e 64 20 65 32 29 29 29 29 0a 20 20 20 20 20 20 20 nd.e1).(cl-second.e2))))........
7d140 20 20 20 20 20 61 6c 6c 2d 65 72 72 73 20 65 72 72 73 29 0a 20 20 20 20 20 20 3b 3b 20 46 69 6e .....all-errs.errs).......;;.Fin
7d160 64 20 6e 74 68 20 65 72 72 6f 72 20 77 69 74 68 20 70 6f 73 20 3e 20 73 74 61 72 74 2e 0a 20 20 d.nth.error.with.pos.>.start....
7d180 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 65 72 72 73 20 63 6f 6e 74 69 6e 75 65 29 0a 20 ....(while.(and.errs.continue)..
7d1a0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 73 74 6f 70 70 65 72 20 28 63 .......(when.(funcall.stopper.(c
7d1c0 6c 2d 63 61 64 61 72 20 65 72 72 73 29 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 l-cadar.errs).start)...........(
7d1e0 73 65 74 71 20 65 72 72 20 28 63 61 72 20 65 72 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 setq.err.(car.errs))...........(
7d200 69 66 20 28 7a 65 72 6f 70 20 28 63 6c 2d 64 65 63 66 20 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 if.(zerop.(cl-decf.count))......
7d220 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 .........(setq.continue.nil)))..
7d240 20 20 20 20 20 20 20 28 73 65 74 71 20 65 72 72 73 20 28 63 64 72 20 65 72 72 73 29 29 29 0a 20 .......(setq.errs.(cdr.errs)))..
7d260 20 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 66 6f 72 20 60 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f .....;;.Clear.for.`js2-echo-erro
7d280 72 27 2e 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 69 r'........(message.nil).......(i
7d2a0 66 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 6c 2d 73 f.err...........(goto-char.(cl-s
7d2c0 65 63 6f 6e 64 20 65 72 72 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 57 72 61 70 20 61 72 6f 75 econd.err)).........;;.Wrap.arou
7d2e0 6e 64 20 74 6f 20 66 69 72 73 74 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f nd.to.first.error..........(goto
7d300 2d 63 68 61 72 20 28 63 6c 2d 73 65 63 6f 6e 64 20 28 63 61 72 20 61 6c 6c 2d 65 72 72 73 29 29 -char.(cl-second.(car.all-errs))
7d320 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 ).........;;.If.we.were.already.
7d340 6f 6e 20 69 74 2c 20 65 63 68 6f 20 6d 73 67 20 61 67 61 69 6e 2e 0a 20 20 20 20 20 20 20 20 28 on.it,.echo.msg.again..........(
7d360 69 66 20 28 3d 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 if.(=.(point).start)............
7d380 20 28 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f 72 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29 .(js2-echo-error.(point).(point)
7d3a0 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 6f 77 6e 2d 6d 6f 75 73 65 2d 33 20 ))))))..(defun.js2-down-mouse-3.
7d3c0 28 29 0a 20 20 22 4d 61 6b 65 20 72 69 67 68 74 2d 63 6c 69 63 6b 20 6d 6f 76 65 20 74 68 65 20 ()..."Make.right-click.move.the.
7d3e0 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 6c 69 63 6b 20 6c 6f 63 61 74 69 6f 6e 2e 0a 54 68 69 point.to.the.click.location..Thi
7d400 73 20 6d 61 6b 65 73 20 72 69 67 68 74 2d 63 6c 69 63 6b 20 63 6f 6e 74 65 78 74 20 6d 65 6e 75 s.makes.right-click.context.menu
7d420 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 20 62 69 74 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65 .operations.a.bit.more.intuitive
7d440 2e 0a 54 68 65 20 70 6f 69 6e 74 20 77 69 6c 6c 20 6e 6f 74 20 6d 6f 76 65 20 69 66 20 74 68 65 ..The.point.will.not.move.if.the
7d460 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 68 6f 77 65 76 65 72 2c 20 74 6f 20 61 .region.is.active,.however,.to.a
7d480 76 6f 69 64 0a 64 65 73 74 72 6f 79 69 6e 67 20 74 68 65 20 72 65 67 69 6f 6e 20 73 65 6c 65 63 void.destroying.the.region.selec
7d4a0 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 tion."...(interactive)...(when.(
7d4c0 61 6e 64 20 6a 73 32 2d 6d 6f 76 65 2d 70 6f 69 6e 74 2d 6f 6e 2d 72 69 67 68 74 2d 63 6c 69 63 and.js2-move-point-on-right-clic
7d4e0 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6d 61 72 6b 2d 61 63 74 69 76 65 29 k..............(not.mark-active)
7d500 29 0a 20 20 20 20 28 6c 65 74 20 28 28 65 20 6c 61 73 74 2d 69 6e 70 75 74 2d 65 76 65 6e 74 29 ).....(let.((e.last-input-event)
7d520 29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 28 ).......(ignore-errors.........(
7d540 67 6f 74 6f 2d 63 68 61 72 20 28 63 6c 2d 63 61 64 61 64 72 20 65 29 29 29 29 29 29 0a 0a 28 64 goto-char.(cl-cadadr.e))))))..(d
7d560 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 efun.js2-mode-create-imenu-index
7d580 20 28 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61 6e 20 61 6c 69 73 74 20 66 6f 72 20 60 69 6d 65 .()..."Returns.an.alist.for.`ime
7d5a0 6e 75 2d 2d 69 6e 64 65 78 2d 61 6c 69 73 74 27 2e 20 52 65 74 75 72 6e 73 20 6e 69 6c 20 6f 6e nu--index-alist'..Returns.nil.on
7d5c0 20 66 69 72 73 74 0a 73 63 61 6e 20 69 66 20 62 75 66 66 65 72 20 73 69 7a 65 20 3e 20 60 69 6d .first.scan.if.buffer.size.>.`im
7d5e0 65 6e 75 2d 61 75 74 6f 2d 72 65 73 63 61 6e 2d 6d 61 78 6f 75 74 27 2e 22 0a 20 20 28 77 68 65 enu-auto-rescan-maxout'."...(whe
7d600 6e 20 28 61 6e 64 20 28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 n.(and.(not.js2-mode-ast).......
7d620 20 20 20 20 20 20 20 28 3c 3d 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 69 6d 65 6e 75 2d 61 .......(<=.(buffer-size).imenu-a
7d640 75 74 6f 2d 72 65 73 63 61 6e 2d 6d 61 78 6f 75 74 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 uto-rescan-maxout)).......(js2-r
7d660 65 70 61 72 73 65 29 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 eparse))...(when.js2-mode-ast...
7d680 20 20 3b 3b 20 69 66 20 77 65 20 68 61 76 65 20 61 6e 20 61 73 74 20 62 75 74 20 6e 6f 20 72 65 ..;;.if.we.have.an.ast.but.no.re
7d6a0 63 6f 72 64 65 72 2c 20 74 68 65 79 27 72 65 20 72 65 71 75 65 73 74 69 6e 67 20 61 20 72 65 73 corder,.they're.requesting.a.res
7d6c0 63 61 6e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 can.....(unless.js2-imenu-record
7d6e0 65 72 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 20 27 66 6f 72 63 65 29 29 0a 20 er.......(js2-reparse.'force))..
7d700 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 ...(prog1.........(js2-build-ime
7d720 6e 75 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 69 6d 65 6e 75 2d nu-index).......(setq.js2-imenu-
7d740 72 65 63 6f 72 64 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 6d 65 recorder.nil.............js2-ime
7d760 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 nu-function-map.nil))))..(defun.
7d780 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 74 61 67 20 28 29 0a 20 20 22 52 65 70 6c 61 63 65 6d js2-mode-find-tag.()..."Replacem
7d7a0 65 6e 74 20 66 6f 72 20 60 66 69 6e 64 2d 74 61 67 2d 64 65 66 61 75 6c 74 27 2e 0a 60 66 69 6e ent.for.`find-tag-default'..`fin
7d7c0 64 2d 74 61 67 2d 64 65 66 61 75 6c 74 27 20 72 65 74 75 72 6e 73 20 61 20 72 69 64 69 63 75 6c d-tag-default'.returns.a.ridicul
7d7e0 6f 75 73 20 61 6e 73 77 65 72 20 69 6e 73 69 64 65 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 28 ous.answer.inside.comments."...(
7d800 6c 65 74 20 28 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f let.(beg.end).....(save-excursio
7d820 6e 0a 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3e 22 29 0a n.......(if.(looking-at."\\_>").
7d840 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 ..........(setq.beg.(progn.(forw
7d860 61 72 64 2d 73 79 6d 62 6f 6c 20 2d 31 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 ard-symbol.-1).(point)).........
7d880 20 20 20 20 20 20 20 20 65 6e 64 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 73 79 6d 62 ........end.(progn.(forward-symb
7d8a0 6f 6c 20 31 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 ol.1).(point))).........(setq.be
7d8c0 67 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 64 2d 73 79 6d 62 6f 6c 20 31 29 20 28 70 6f 69 g.(progn.(forward-symbol.1).(poi
7d8e0 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28 70 72 6f 67 6e 20 28 66 nt))...............end.(progn.(f
7d900 6f 72 77 61 72 64 2d 73 79 6d 62 6f 6c 20 2d 31 29 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 orward-symbol.-1).(point))))....
7d920 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 ...(replace-regexp-in-string....
7d940 20 20 20 20 22 5b 5c 22 27 5d 22 20 22 22 0a 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 ...."[\"']".""........(buffer-su
7d960 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29 bstring-no-properties.beg.end)))
7d980 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 64 2d 73 69 62 6c ))..(defun.js2-mode-forward-sibl
7d9a0 69 6e 67 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 ing.()..."Move.to.the.end.of.the
7d9c0 20 73 69 62 6c 69 6e 67 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6f 69 6e 74 20 69 6e 20 70 61 72 65 .sibling.following.point.in.pare
7d9e0 6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 73 75 63 63 65 73 73 66 75 nt..Returns.non-nil.if.successfu
7da00 6c 2c 20 6f 72 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 66 6f 6c 6c 6f 77 l,.or.nil.if.there.was.no.follow
7da20 69 6e 67 20 73 69 62 6c 69 6e 67 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 6a 73 ing.sibling."...(let*.((node.(js
7da40 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 2-node-at-point))..........(pare
7da60 6e 74 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e 20 6e nt.(js2-mode-find-enclosing-fn.n
7da80 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 73 69 62 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 ode))..........sib).....(when.(s
7daa0 65 74 71 20 73 69 62 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 61 66 74 etq.sib.(js2-node-find-child-aft
7dac0 65 72 20 28 70 6f 69 6e 74 29 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d er.(point).parent)).......(goto-
7dae0 63 68 61 72 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 73 69 62 29 0a 20 char.(+.(js2-node-abs-pos.sib)..
7db00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e ...................(js2-node-len
7db20 20 73 69 62 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 62 61 63 6b .sib))))))..(defun.js2-mode-back
7db40 77 61 72 64 2d 73 69 62 6c 69 6e 67 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 ward-sibling.()..."Move.to.the.b
7db60 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 73 69 62 6c 69 6e 67 20 6e 6f 64 65 20 70 72 65 eginning.of.the.sibling.node.pre
7db80 63 65 64 69 6e 67 20 70 6f 69 6e 74 20 69 6e 20 70 61 72 65 6e 74 2e 0a 50 61 72 65 6e 74 20 69 ceding.point.in.parent..Parent.i
7dba0 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 20 73 63 72 69 70 s.defined.as.the.enclosing.scrip
7dbc0 74 20 6f 72 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 t.or.function."...(let*.((node.(
7dbe0 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 js2-node-at-point))..........(pa
7dc00 72 65 6e 74 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e rent.(js2-mode-find-enclosing-fn
7dc20 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 73 69 62 29 0a 20 20 20 20 28 77 68 65 6e 20 .node))..........sib).....(when.
7dc40 28 73 65 74 71 20 73 69 62 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 62 (setq.sib.(js2-node-find-child-b
7dc60 65 66 6f 72 65 20 28 70 6f 69 6e 74 29 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f efore.(point).parent)).......(go
7dc80 74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 73 69 62 29 29 29 to-char.(js2-node-abs-pos.sib)))
7dca0 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 ))..(defun.js2-beginning-of-defu
7dcc0 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 47 6f 20 74 6f 20 6c 69 6e 65 20 n.(&optional.arg)..."Go.to.line.
7dce0 6f 6e 20 77 68 69 63 68 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 73 on.which.current.function.starts
7dd00 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 49 66 20 77 65 ,.and.return.t.on.success..If.we
7dd20 27 72 65 20 6e 6f 74 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 61 6c 72 65 61 64 79 're.not.in.a.function.or.already
7dd40 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6f 6e 65 2c 20 67 6f 0a 74 6f 20 .at.the.beginning.of.one,.go.to.
7dd60 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 73 63 72 69 70 74 2d 6c 65 76 beginning.of.previous.script-lev
7dd80 65 6c 20 65 6c 65 6d 65 6e 74 2e 0a 57 69 74 68 20 41 52 47 20 4e 2c 20 64 6f 20 74 68 61 74 20 el.element..With.ARG.N,.do.that.
7dda0 4e 20 74 69 6d 65 73 2e 20 49 66 20 4e 20 69 73 20 6e 65 67 61 74 69 76 65 2c 20 6d 6f 76 65 20 N.times..If.N.is.negative,.move.
7ddc0 66 6f 72 77 61 72 64 2e 22 0a 20 20 28 73 65 74 71 20 61 72 67 20 28 6f 72 20 61 72 67 20 31 29 forward."...(setq.arg.(or.arg.1)
7dde0 29 0a 20 20 28 69 66 20 28 63 6c 2d 70 6c 75 73 70 20 61 72 67 29 0a 20 20 20 20 20 20 28 6c 65 )...(if.(cl-plusp.arg).......(le
7de00 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 63 72 69 t.((parent.(js2-node-parent-scri
7de20 70 74 2d 6f 72 2d 66 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a pt-or-fn.(js2-node-at-point)))).
7de40 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........(when.(cond.............
7de60 20 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 ...((js2-function-node-p.parent)
7de80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6a 73 32 .................(goto-char.(js2
7dea0 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 -node-abs-pos.parent))).........
7dec0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d .......(t.................(js2-m
7dee0 6f 64 65 2d 62 61 63 6b 77 61 72 64 2d 73 69 62 6c 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 ode-backward-sibling))).........
7df00 20 20 28 69 66 20 28 3e 20 61 72 67 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ..(if.(>.arg.1)...............(j
7df20 73 32 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 6e 20 28 31 2d 20 61 72 67 29 29 0a s2-beginning-of-defun.(1-.arg)).
7df40 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d ............t))).....(when.(js2-
7df60 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 62 65 67 69 6e 6e 69 end-of-defun).......(js2-beginni
7df80 6e 67 2d 6f 66 2d 64 65 66 75 6e 20 28 69 66 20 28 3e 3d 20 61 72 67 20 2d 31 29 20 31 20 28 31 ng-of-defun.(if.(>=.arg.-1).1.(1
7dfa0 2b 20 61 72 67 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 +.arg))))))..(defun.js2-end-of-d
7dfc0 65 66 75 6e 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 74 68 65 20 63 68 61 72 20 61 66 74 65 72 20 efun.()..."Go.to.the.char.after.
7dfe0 74 68 65 20 6c 61 73 74 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 the.last.position.of.the.current
7e000 20 66 75 6e 63 74 69 6f 6e 0a 6f 72 20 73 63 72 69 70 74 2d 6c 65 76 65 6c 20 65 6c 65 6d 65 6e .function.or.script-level.elemen
7e020 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d t."...(let*.((node.(js2-node-at-
7e040 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 6f 72 20 28 61 6e point))..........(parent.(or.(an
7e060 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 d.(js2-function-node-p.node).nod
7e080 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 e)......................(js2-nod
7e0a0 65 2d 70 61 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 6e 6f 64 65 29 29 29 0a 20 20 e-parent-script-or-fn.node)))...
7e0c0 20 20 20 20 20 20 20 73 63 72 69 70 74 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d .......script).....(unless.(js2-
7e0e0 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 3b 3b function-node-p.parent).......;;
7e100 20 55 73 65 20 63 75 72 72 65 6e 74 20 73 63 72 69 70 74 2d 6c 65 76 65 6c 20 6e 6f 64 65 2c 20 .Use.current.script-level.node,.
7e120 6f 72 2c 20 69 66 20 6e 6f 6e 65 2c 20 74 68 65 20 6e 65 78 74 20 6f 6e 65 2e 0a 20 20 20 20 20 or,.if.none,.the.next.one.......
7e140 20 28 73 65 74 71 20 73 63 72 69 70 74 20 28 6f 72 20 70 61 72 65 6e 74 20 6e 6f 64 65 29 0a 20 .(setq.script.(or.parent.node)..
7e160 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 ...........parent.(js2-node-find
7e180 2d 63 68 69 6c 64 2d 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 29 20 73 63 72 69 70 74 29 29 0a 20 -child-before.(point).script))..
7e1a0 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 70 61 72 65 6e 74 29 0a 20 20 20 .....(when.(or.(null.parent)....
7e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 28 70 6f 69 6e 74 29 20 28 2b 20 28 6a 73 32 .............(>=.(point).(+.(js2
7e1e0 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 -node-abs-pos.parent)...........
7e200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c .....................(js2-node-l
7e220 65 6e 20 70 61 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 en.parent)))).........(setq.pare
7e240 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 61 66 74 65 72 20 28 70 nt.(js2-node-find-child-after.(p
7e260 6f 69 6e 74 29 20 73 63 72 69 70 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e oint).script)))).....(when.paren
7e280 74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d t.......(goto-char.(+.(js2-node-
7e2a0 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 abs-pos.parent).................
7e2c0 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a ....(js2-node-len.parent))))))..
7e2e0 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 72 6b 2d 64 65 66 75 6e 20 28 26 6f 70 74 69 6f 6e 61 6c (defun.js2-mark-defun.(&optional
7e300 20 61 6c 6c 6f 77 2d 65 78 74 65 6e 64 29 0a 20 20 22 50 75 74 20 6d 61 72 6b 20 61 74 20 65 6e .allow-extend)..."Put.mark.at.en
7e320 64 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 70 6f 69 6e 74 20 61 74 20 62 65 67 d.of.this.function,.point.at.beg
7e340 69 6e 6e 69 6e 67 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 65 64 20 69 73 20 74 inning..The.function.marked.is.t
7e360 68 65 20 6f 6e 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 70 6f 69 6e 74 2e 0a 0a 49 6e 74 he.one.that.contains.point...Int
7e380 65 72 61 63 74 69 76 65 6c 79 2c 20 69 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 eractively,.if.this.command.is.r
7e3a0 65 70 65 61 74 65 64 2c 0a 6f 72 20 28 69 6e 20 54 72 61 6e 73 69 65 6e 74 20 4d 61 72 6b 20 6d epeated,.or.(in.Transient.Mark.m
7e3c0 6f 64 65 29 20 69 66 20 74 68 65 20 6d 61 72 6b 20 69 73 20 61 63 74 69 76 65 2c 0a 69 74 20 6d ode).if.the.mark.is.active,.it.m
7e3e0 61 72 6b 73 20 74 68 65 20 6e 65 78 74 20 64 65 66 75 6e 20 61 66 74 65 72 20 74 68 65 20 6f 6e arks.the.next.defun.after.the.on
7e400 65 73 20 61 6c 72 65 61 64 79 20 6d 61 72 6b 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 es.already.marked."...(interacti
7e420 76 65 20 22 70 22 29 0a 20 20 28 6c 65 74 20 28 65 78 74 65 6e 64 65 64 29 0a 20 20 20 20 28 77 ve."p")...(let.(extended).....(w
7e440 68 65 6e 20 28 61 6e 64 20 61 6c 6c 6f 77 2d 65 78 74 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 hen.(and.allow-extend...........
7e460 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 65 71 20 6c 61 73 74 2d 63 6f 6d 6d 61 6e 64 20 74 .....(or.(and.(eq.last-command.t
7e480 68 69 73 2d 63 6f 6d 6d 61 6e 64 29 20 28 6d 61 72 6b 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 his-command).(mark.t))..........
7e4a0 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 74 72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f ..........(and.transient-mark-mo
7e4c0 64 65 20 6d 61 72 6b 2d 61 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 de.mark-active))).......(let.((s
7e4e0 69 62 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ib.(save-excursion..............
7e500 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 72 6b 29 29 0a 20 20 20 20 20 20 20 ......(goto-char.(mark))........
7e520 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 ............(if.(js2-mode-forwar
7e540 64 2d 73 69 62 6c 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-sibling)......................
7e560 20 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 73 69 62 0a 20 20 ..(point))))).........(if.sib...
7e580 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ..........(progn...............(
7e5a0 73 65 74 2d 6d 61 72 6b 20 73 69 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 set-mark.sib)...............(set
7e5c0 71 20 65 78 74 65 6e 64 65 64 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 20 6d q.extended.t))...........;;.no.m
7e5e0 6f 72 65 20 73 69 62 6c 69 6e 67 73 20 2d 20 74 72 79 20 65 78 74 65 6e 64 69 6e 67 20 74 6f 20 ore.siblings.-.try.extending.to.
7e600 65 6e 63 6c 6f 73 69 6e 67 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 enclosing.node...........(goto-c
7e620 68 61 72 20 28 6d 61 72 6b 20 74 29 29 29 29 29 0a 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 65 har.(mark.t)))))....(when.(not.e
7e640 78 74 65 6e 64 65 64 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e xtended)......(let.((node.(js2-n
7e660 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 20 74 29 29 20 3b 20 73 6b 69 70 20 ode-at-point.(point).t)).;.skip.
7e680 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 61 73 74 20 66 6e 20 73 74 6d 74 20 comments............ast.fn.stmt.
7e6a0 70 61 72 65 6e 74 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 parent.beg.end)........(when.(js
7e6c0 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 2-ast-root-p.node)..........(set
7e6e0 71 20 61 73 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 28 q.ast.node................node.(
7e700 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 61 66 74 65 72 20 28 70 or.(js2-node-find-child-after.(p
7e720 6f 69 6e 74 29 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oint).node).....................
7e740 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 62 65 66 6f 72 65 20 ....(js2-node-find-child-before.
7e760 28 70 6f 69 6e 74 29 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 (point).node))))........;;.only.
7e780 6d 61 72 6b 20 77 68 6f 6c 65 20 62 75 66 66 65 72 20 69 66 20 77 65 20 63 61 6e 27 74 20 66 69 mark.whole.buffer.if.we.can't.fi
7e7a0 6e 64 20 61 6e 79 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c nd.any.children........(if.(null
7e7c0 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 61 73 74 .node)............(setq.node.ast
7e7e0 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 ))........(if.(js2-function-node
7e800 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74 -p.node)............(setq.parent
7e820 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6e 20 28 6a 73 32 2d 6d 6f .node)..........(setq.fn.(js2-mo
7e840 64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e 20 6e 6f 64 65 29 0a 20 20 20 20 20 de-find-enclosing-fn.node)......
7e860 20 20 20 20 20 20 20 20 20 20 73 74 6d 74 20 28 69 66 20 28 6f 72 20 28 6e 75 6c 6c 20 66 6e 29 ..........stmt.(if.(or.(null.fn)
7e880 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 .............................(js
7e8a0 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2-ast-root-p.fn))...............
7e8c0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 66 69 72 73 74 2d 73 ..........(js2-mode-find-first-s
7e8e0 74 6d 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 tmt.node))................parent
7e900 20 28 6f 72 20 73 74 6d 74 20 66 6e 29 29 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 .(or.stmt.fn)))........(setq.beg
7e920 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 .(js2-node-abs-pos.parent)......
7e940 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e ........end.(+.beg.(js2-node-len
7e960 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 62 65 67 .parent)))........(push-mark.beg
7e980 29 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20 )........(goto-char.end)........
7e9a0 28 65 78 63 68 61 6e 67 65 2d 70 6f 69 6e 74 2d 61 6e 64 2d 6d 61 72 6b 29 29 29 29 29 0a 0a 28 (exchange-point-and-mark)))))..(
7e9c0 64 65 66 75 6e 20 6a 73 32 2d 6e 61 72 72 6f 77 2d 74 6f 2d 64 65 66 75 6e 20 28 29 0a 20 20 22 defun.js2-narrow-to-defun.()..."
7e9e0 4e 61 72 72 6f 77 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6c 6f 73 69 6e 67 Narrow.to.the.function.enclosing
7ea00 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a .point."...(interactive)...(let*
7ea20 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 70 6f 69 6e .((node.(js2-node-at-point.(poin
7ea40 74 29 20 74 29 29 20 20 3b 20 73 6b 69 70 20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 t).t))..;.skip.comments.........
7ea60 20 28 66 6e 20 28 69 66 20 28 6a 73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 .(fn.(if.(js2-script-node-p.node
7ea80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 )..................node.........
7eaa0 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d .......(js2-mode-find-enclosing-
7eac0 66 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 32 2d 6e 6f fn.node)))..........(beg.(js2-no
7eae0 64 65 2d 61 62 73 2d 70 6f 73 20 66 6e 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 de-abs-pos.fn))).....(unless.(js
7eb00 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 66 6e 29 0a 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 2-ast-root-p.fn).......(narrow-t
7eb20 6f 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 o-region.beg.(+.beg.(js2-node-le
7eb40 6e 20 66 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6a 75 6d 70 2d 74 6f 2d 64 n.fn))))))..(defun.js2-jump-to-d
7eb60 65 66 69 6e 69 74 69 6f 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 4a 75 6d efinition.(&optional.arg)..."Jum
7eb80 70 20 74 6f 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 p.to.the.definition.of.an.object
7eba0 27 73 20 70 72 6f 70 65 72 74 79 2c 20 76 61 72 69 61 62 6c 65 20 6f 72 20 66 75 6e 63 74 69 6f 's.property,.variable.or.functio
7ebc0 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 69 66 20 28 65 n."...(interactive."P")...(if.(e
7ebe0 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d val-when-compile.(fboundp.'xref-
7ec00 70 75 73 68 2d 6d 61 72 6b 65 72 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 28 78 72 65 66 2d push-marker-stack)).......(xref-
7ec20 70 75 73 68 2d 6d 61 72 6b 65 72 2d 73 74 61 63 6b 29 0a 20 20 20 20 28 72 69 6e 67 2d 69 6e 73 push-marker-stack).....(ring-ins
7ec40 65 72 74 20 66 69 6e 64 2d 74 61 67 2d 6d 61 72 6b 65 72 2d 72 69 6e 67 20 28 70 6f 69 6e 74 2d ert.find-tag-marker-ring.(point-
7ec60 6d 61 72 6b 65 72 29 29 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 0a 20 20 28 6c 65 74 marker)))...(js2-reparse)...(let
7ec80 2a 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 *.((node.(js2-node-at-point))...
7eca0 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 .......(parent.(js2-node-parent.
7ecc0 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 73 20 28 69 66 20 28 6a 73 32 2d node))..........(names.(if.(js2-
7ece0 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 prop-get-node-p.parent).........
7ed00 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76 65 72 73 65 20 28 6c 65 74 20 28 28 74 65 6d 70 ............(reverse.(let.((temp
7ed20 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 70 61 .(js2-compute-nested-prop-get.pa
7ed40 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rent))).........................
7ed60 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6e 20 69 6e 20 74 65 6d 70 0a 20 20 .......(cl-loop.for.n.in.temp...
7ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7eda0 20 20 20 20 20 20 77 69 74 68 20 72 65 73 75 6c 74 20 3d 20 27 28 29 0a 20 20 20 20 20 20 20 20 ......with.result.=.'().........
7edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7ede0 64 6f 20 28 70 75 73 68 20 6e 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 do.(push.n.result)..............
7ee00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c ...........................until
7ee20 20 28 65 71 75 61 6c 20 6e 6f 64 65 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(equal.node.n).................
7ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 ........................finally.
7ee60 72 65 74 75 72 6e 20 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 6e 6f 64 65 return.result)))))..........node
7ee80 2d 69 6e 69 74 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d -init).....(unless.(and.(js2-nam
7eea0 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-node-p.node)..................
7eec0 28 6e 6f 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 (not.(js2-var-init-node-p.parent
7eee0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 ))..................(not.(js2-fu
7ef00 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 65 nction-node-p.parent))).......(e
7ef20 72 72 6f 72 20 22 4e 6f 64 65 20 69 73 20 6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20 6a 75 rror."Node.is.not.a.supported.ju
7ef40 6d 70 20 6e 6f 64 65 22 29 29 0a 20 20 20 20 28 70 75 73 68 20 28 6f 72 20 28 61 6e 64 20 6e 61 mp.node")).....(push.(or.(and.na
7ef60 6d 65 73 20 28 70 6f 70 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 mes.(pop.names))...............(
7ef80 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 unless.(and.(js2-object-prop-nod
7efa0 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-p.parent).....................
7efc0 20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 .......(eq.node.(js2-object-prop
7efe0 2d 6e 6f 64 65 2d 6c 65 66 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -node-left.parent)).............
7f000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 ...............(not.(js2-node-ge
7f020 74 2d 70 72 6f 70 20 70 61 72 65 6e 74 20 27 53 48 4f 52 54 48 41 4e 44 29 29 29 0a 20 20 20 20 t-prop.parent.'SHORTHAND))).....
7f040 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............node)...............
7f060 28 65 72 72 6f 72 20 22 4e 6f 64 65 20 69 73 20 6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20 (error."Node.is.not.a.supported.
7f080 6a 75 6d 70 20 6e 6f 64 65 22 29 29 20 6e 61 6d 65 73 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f jump.node")).names).....(setq.no
7f0a0 64 65 2d 69 6e 69 74 20 28 6a 73 32 2d 73 65 61 72 63 68 2d 73 63 6f 70 65 20 6e 6f 64 65 20 6e de-init.(js2-search-scope.node.n
7f0c0 61 6d 65 73 29 29 0a 0a 20 20 20 20 3b 3b 20 74 6f 64 6f 3a 20 64 69 73 70 6c 61 79 20 6c 69 73 ames))......;;.todo:.display.lis
7f0e0 74 20 6f 66 20 72 65 73 75 6c 74 73 20 69 6e 20 62 75 66 66 65 72 0a 20 20 20 20 3b 3b 20 74 6f t.of.results.in.buffer.....;;.to
7f100 64 6f 3a 20 67 72 6f 75 70 20 66 6f 75 6e 64 20 72 65 66 65 72 65 6e 63 65 73 20 62 79 20 62 75 do:.group.found.references.by.bu
7f120 66 66 65 72 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20 ffer.....(unless.node-init......
7f140 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 63 61 74 63 68 .(switch-to-buffer........(catch
7f160 20 27 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 61 72 67 0a 20 20 20 .'found..........(unless.arg....
7f180 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 62 29 0a 20 20 20 20 20 20 ........(mapc.(lambda.(b).......
7f1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 .............(with-current-buffe
7f1c0 72 20 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 r.b......................(when.(
7f1e0 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 derived-mode-p.'js2-mode).......
7f200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74 .................(setq.node-init
7f220 20 28 6a 73 32 2d 73 65 61 72 63 68 2d 73 63 6f 70 65 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 .(js2-search-scope.js2-mode-ast.
7f240 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 names))........................(
7f260 69 66 20 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.node-init....................
7f280 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 62 29 29 29 29 29 0a 20 20 20 ........(throw.'found.b)))))....
7f2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 ..............(buffer-list)))...
7f2c0 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 .......nil))).....(setq.node-ini
7f2e0 74 20 28 69 66 20 28 6c 69 73 74 70 20 6e 6f 64 65 2d 69 6e 69 74 29 20 28 63 61 72 20 6e 6f 64 t.(if.(listp.node-init).(car.nod
7f300 65 2d 69 6e 69 74 29 20 6e 6f 64 65 2d 69 6e 69 74 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 e-init).node-init)).....(unless.
7f320 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 61 67 2d 6d 61 72 6b 29 0a 20 node-init.......(pop-tag-mark)..
7f340 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6a 75 6d 70 20 6c 6f 63 61 74 69 6f 6e 20 66 6f .....(error."No.jump.location.fo
7f360 75 6e 64 22 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64 65 2d und")).....(goto-char.(js2-node-
7f380 61 62 73 2d 70 6f 73 20 6e 6f 64 65 2d 69 6e 69 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 abs-pos.node-init))))..(defun.js
7f3a0 32 2d 73 65 61 72 63 68 2d 6f 62 6a 65 63 74 20 28 6e 6f 64 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 2-search-object.(node.name-node)
7f3c0 0a 20 20 22 43 68 65 63 6b 20 69 66 20 6f 62 6a 65 63 74 20 4e 4f 44 45 20 63 6f 6e 74 61 69 6e ..."Check.if.object.NODE.contain
7f3e0 73 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 20 4e 41 4d 45 2d 4e 4f 44 45 2e 22 0a 20 20 28 63 6c s.element.with.NAME-NODE."...(cl
7f400 2d 61 73 73 65 72 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 -assert.(js2-object-node-p.node)
7f420 29 0a 20 20 3b 3b 20 4f 6e 6c 79 20 73 75 70 70 6f 72 74 20 6e 61 6d 65 2d 6e 6f 64 65 20 61 6e )...;;.Only.support.name-node.an
7f440 64 20 6e 6f 64 65 73 20 66 6f 72 20 74 68 65 20 74 69 6d 65 20 62 65 69 6e 67 0a 20 20 28 63 6c d.nodes.for.the.time.being...(cl
7f460 2d 6c 6f 6f 70 20 66 6f 72 20 65 6c 65 6d 20 69 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f -loop.for.elem.in.(js2-object-no
7f480 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6c 65 de-elems.node)............for.le
7f4a0 66 74 20 3d 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 65 6c 65 6d 29 0a ft.=.(js2-infix-node-left.elem).
7f4c0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6f 72 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d 65 ...........if.(or.(and.(js2-name
7f4e0 2d 6e 6f 64 65 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-p.left)...................
7f500 20 20 20 20 20 28 65 71 75 61 6c 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 .....(equal.(js2-name-node-name.
7f520 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name-node)......................
7f540 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6c 65 66 .........(js2-name-node-name.lef
7f560 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 t)))...................(and.(js2
7f580 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 -string-node-p.left)............
7f5a0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e ............(string=.(js2-name-n
7f5c0 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ode-name.name-node).............
7f5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d ....................(js2-string-
7f600 6e 6f 64 65 2d 76 61 6c 75 65 20 6c 65 66 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 72 node-value.left))))............r
7f620 65 74 75 72 6e 20 65 6c 65 6d 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 61 72 63 68 2d eturn.elem))..(defun.js2-search-
7f640 6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70 20 28 6f 62 6a 65 63 74 20 70 72 6f 70 2d 6e 61 6d object-for-prop.(object.prop-nam
7f660 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 64 65 20 69 6e 20 4f 42 4a 45 43 54 20 74 68 61 es)..."Return.node.in.OBJECT.tha
7f680 74 20 6d 61 74 63 68 65 73 20 50 52 4f 50 2d 4e 41 4d 45 53 20 6f 72 20 6e 69 6c 2e 0a 50 52 4f t.matches.PROP-NAMES.or.nil..PRO
7f6a0 50 2d 4e 41 4d 45 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 76 61 6c 75 65 73 20 72 65 70 72 P-NAMES.is.a.list.of.values.repr
7f6c0 65 73 65 6e 74 69 6e 67 20 61 20 70 61 74 68 20 74 6f 20 61 20 76 61 6c 75 65 20 69 6e 20 4f 42 esenting.a.path.to.a.value.in.OB
7f6e0 4a 45 43 54 2e 0a 69 2e 65 2e 20 28 5c 5c 3d 27 6e 61 6d 65 5c 5c 3d 27 20 5c 5c 3d 27 76 61 6c JECT..i.e..(\\='name\\='.\\='val
7f700 75 65 5c 5c 3d 27 29 20 3d 20 7b 6e 61 6d 65 20 3a 20 7b 20 76 61 6c 75 65 3a 20 33 7d 7d 22 0a ue\\=').=.{name.:.{.value:.3}}".
7f720 20 20 28 6c 65 74 20 28 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 28 74 65 6d 70 2d 6f 62 6a 65 63 ..(let.(node.........(temp-objec
7f740 74 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 28 74 65 6d 70 20 74 29 20 3b 74 65 6d 70 t.object).........(temp.t).;temp
7f760 6f 72 61 79 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 73 20 70 72 6f 70 2d 6e 61 oray.node.........(names.prop-na
7f780 6d 65 73 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 74 65 6d 70 20 6e 61 6d 65 73 mes)).....(while.(and.temp.names
7f7a0 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 74 65 6d 70 2d 6f 62 6a 65 63 74 29 .(js2-object-node-p.temp-object)
7f7c0 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 20 28 6a 73 32 2d 73 65 61 72 63 68 2d 6f ).......(setq.temp.(js2-search-o
7f7e0 62 6a 65 63 74 20 74 65 6d 70 2d 6f 62 6a 65 63 74 20 28 70 6f 70 20 6e 61 6d 65 73 29 29 29 0a bject.temp-object.(pop.names))).
7f800 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 6e 6f 64 65 20 74 65 6d 70 29 0a 20 20 20 20 ......(and.(setq.node.temp).....
7f820 20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 2d 6f 62 6a 65 63 74 20 28 6a 73 32 2d 69 6e 66 69 .....(setq.temp-object.(js2-infi
7f840 78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 74 65 6d 70 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 x-node-right.temp)))).....(unles
7f860 73 20 6e 61 6d 65 73 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 61 72 s.names.node)))..(defun.js2-sear
7f880 63 68 2d 73 63 6f 70 65 20 28 6e 6f 64 65 20 6e 61 6d 65 73 29 0a 20 20 22 53 65 61 72 63 68 65 ch-scope.(node.names)..."Searche
7f8a0 73 20 4e 4f 44 45 20 73 63 6f 70 65 20 66 6f 72 20 6a 75 6d 70 20 6c 6f 63 61 74 69 6f 6e 20 6d s.NODE.scope.for.jump.location.m
7f8c0 61 74 63 68 69 6e 67 20 4e 41 4d 45 53 2e 0a 4e 41 4d 45 53 20 69 73 20 61 20 6c 69 73 74 20 6f atching.NAMES..NAMES.is.a.list.o
7f8e0 66 20 70 72 6f 70 65 72 74 79 20 76 61 6c 75 65 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 2e f.property.values.to.search.for.
7f900 20 46 6f 72 20 66 75 6e 63 74 69 6f 6e 73 0a 61 6e 64 20 76 61 72 69 61 62 6c 65 73 20 4e 41 4d .For.functions.and.variables.NAM
7f920 45 53 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 2e 22 0a 20 20 ES.will.contain.one.element."...
7f940 28 6c 65 74 20 28 6e 6f 64 65 2d 69 6e 69 74 20 76 61 6c 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 (let.(node-init.val).....(cond..
7f960 20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 28 63 61 72 20 6e 61 6d 65 73 ....((js2-name-node-p.(car.names
7f980 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 )).......(setq.val.(js2-name-nod
7f9a0 65 2d 6e 61 6d 65 20 28 63 61 72 20 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 e-name.(car.names))).......(setq
7f9c0 20 6e 6f 64 65 2d 69 6e 69 74 20 28 6a 73 32 2d 67 65 74 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c 61 .node-init.(js2-get-symbol-decla
7f9e0 72 61 74 69 6f 6e 20 6e 6f 64 65 20 76 61 6c 29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6a ration.node.val)))......((and.(j
7fa00 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 2d 70 20 28 63 61 72 20 6e 61 6d 65 73 29 29 0a 20 s2-keyword-node-p.(car.names))..
7fa20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f ..........(equal.(js2-keyword-no
7fa40 64 65 2d 74 79 70 65 20 28 63 61 72 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 de-type.(car.names))............
7fa60 20 20 20 20 20 20 20 6a 73 32 2d 54 48 49 53 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 .......js2-THIS)).......(let*.((
7fa80 73 63 6f 70 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 scope.(js2-node-get-enclosing-sc
7faa0 6f 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 ope.node))..............(parent.
7fac0 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 73 63 6f 70 65 29 29 29 0a 20 20 20 20 20 20 (js2-node-parent.scope))).......
7fae0 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 70 20 70 ..(when.(or.(js2-method-node-p.p
7fb00 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f 62 arent)...................(js2-ob
7fb20 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 ject-prop-node-p.parent)).......
7fb40 20 20 20 20 3b 3b 20 63 6c 61 73 73 20 6f 72 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 ....;;.class.or.object..........
7fb60 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e .(setq.node-init.(js2-node-paren
7fb80 74 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 t.parent))))))......(when.(>.(le
7fba0 6e 67 74 68 20 6e 61 6d 65 73 29 20 31 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65 2d ngth.names).1).......(when.node-
7fbc0 69 6e 69 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 init.........(cond..........((js
7fbe0 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 28 63 61 72 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 2-name-node-p.(car.names))......
7fc00 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 76 61 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20 .....;;.Check.var.declarations..
7fc20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 3d 20 76 61 6c 20 28 6a 73 32 .........(when.(string=.val.(js2
7fc40 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 2d 69 6e 69 74 29 29 0a 20 20 20 20 -name-node-name.node-init)).....
7fc60 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d ........(let.((parent.(js2-node-
7fc80 70 61 72 65 6e 74 20 6e 6f 64 65 2d 69 6e 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 parent.node-init))).............
7fca0 20 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74 20 28 77 68 65 6e 20 28 6a 73 32 2d 76 61 72 ..(setq.node-init.(when.(js2-var
7fcc0 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 -init-node-p.parent)............
7fce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 61 72 63 68 .....................(js2-search
7fd00 2d 6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -object-for-prop................
7fd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d ..................(js2-var-init-
7fd40 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 node-initializer.parent)........
7fd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 6e ..........................(cdr.n
7fd80 61 6d 65 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 ames)))))))..........((js2-objec
7fda0 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 2d 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 t-node-p.node-init)...........(s
7fdc0 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74 20 28 6a 73 32 2d 73 65 61 72 63 68 2d 6f 62 6a 65 63 74 etq.node-init.(js2-search-object
7fde0 2d 66 6f 72 2d 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -for-prop.......................
7fe00 20 20 20 20 20 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....node-init..................
7fe20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 6e 61 6d 65 73 29 29 29 29 29 29 0a 0a 20 20 20 20 ..........(cdr.names))))))......
7fe40 20 20 3b 3b 20 43 68 65 63 6b 20 61 6c 6c 20 61 73 73 69 67 6e 20 6e 6f 64 65 73 0a 20 20 20 20 ..;;.Check.all.assign.nodes.....
7fe60 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 0a 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 ..(js2-visit-ast........js2-mode
7fe80 2d 61 73 74 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 20 65 6e 64 70 29 0a -ast........(lambda.(node.endp).
7fea0 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 6e 64 70 0a 20 20 20 20 20 20 20 20 20 20 .........(unless.endp...........
7fec0 20 28 69 66 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 .(if.(js2-assign-node-p.node)...
7fee0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 28 6a 73 32 2d 61 73 .............(let.((left.(js2-as
7ff00 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 sign-node-left.node))...........
7ff20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f ...........(right.(js2-assign-no
7ff40 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-right.node)).................
7ff60 20 20 20 20 20 28 74 65 6d 70 2d 6e 61 6d 65 73 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 .....(temp-names.names))........
7ff80 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f ..........(when.(js2-prop-get-no
7ffa0 64 65 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c de-p.left)....................(l
7ffc0 65 74 2a 20 28 28 70 72 6f 70 2d 6c 69 73 74 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 et*.((prop-list.(js2-compute-nes
7ffe0 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 6c 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ted-prop-get.left)).............
80000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 27 74 68 69 73 27 20 6f 72 20 27 73 75 70 65 ..............;;.'this'.or.'supe
80020 72 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 61 r'...........................(ta
80040 72 67 65 74 2d 69 73 2d 6b 65 79 77 6f 72 64 20 28 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 rget-is-keyword.(js2-keyword-nod
80060 65 2d 70 20 28 63 61 72 20 74 65 6d 70 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 e-p.(car.temp-names)))..........
80080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 77 68 65 6e 20 74 61 72 67 65 74 .................(_.(when.target
800a0 2d 69 73 2d 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -is-keyword.....................
800c0 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 74 65 6d 70 2d 6e 61 6d 65 73 29 29 29 0a 20 20 ...........(pop.temp-names)))...
800e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 75 6e 64 20 28 ........................(found.(
80100 75 6e 6c 65 73 73 20 74 61 72 67 65 74 2d 69 73 2d 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 unless.target-is-keyword........
80120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d ............................(cl-
80140 6c 6f 6f 70 20 66 6f 72 20 70 72 6f 70 20 69 6e 20 70 72 6f 70 2d 6c 69 73 74 0a 20 20 20 20 20 loop.for.prop.in.prop-list......
80160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80180 20 20 20 20 20 20 20 75 6e 74 69 6c 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d .......until.(not.(string=.(js2-
801a0 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name-node-name..................
801c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
801e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 74 65 6d 70 2d 6e 61 6d 65 73 29 ................(pop.temp-names)
80200 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
80220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80240 20 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 70 72 6f 70 29 0a 20 20 ..(and.(js2-name-node-p.prop)...
80260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
802a0 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 72 6f 70 29 29 29 29 0a ...(js2-name-node-name.prop)))).
802c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
802e0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6e 6f 74 20 74 65 6d 70 2d 6e 61 6d 65 73 29 20 ............if.(not.temp-names).
80300 72 65 74 75 72 6e 20 70 72 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 return.prop)))..................
80320 20 20 20 20 20 20 20 20 20 28 66 6f 75 6e 64 2d 6e 6f 64 65 20 28 6f 72 20 66 6f 75 6e 64 0a 20 .........(found-node.(or.found..
80340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80360 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d .........(when.(js2-object-node-
80380 70 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.right)........................
803a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 61 72 63 68 .....................(js2-search
803c0 2d 6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 -object-for-prop.right..........
803e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 ...............................t
80420 65 6d 70 2d 6e 61 6d 65 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emp-names)))))..................
80440 20 20 20 20 28 69 66 20 66 6f 75 6e 64 2d 6e 6f 64 65 20 28 70 75 73 68 20 66 6f 75 6e 64 2d 6e ....(if.found-node.(push.found-n
80460 6f 64 65 20 6e 6f 64 65 2d 69 6e 69 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 ode.node-init))))))............t
80480 29 29 29 29 0a 20 20 20 20 6e 6f 64 65 2d 69 6e 69 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 )))).....node-init))..(defun.js2
804a0 2d 67 65 74 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6e 6f 64 65 20 6e 61 -get-symbol-declaration.(node.na
804c0 6d 65 29 0a 20 20 22 46 69 6e 64 20 73 63 6f 70 65 20 66 6f 72 20 4e 41 4d 45 20 66 72 6f 6d 20 me)..."Find.scope.for.NAME.from.
804e0 4e 4f 44 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 63 6f 70 65 20 28 6a 73 32 2d 67 65 74 2d 64 NODE."...(let.((scope.(js2-get-d
80500 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6a 73 32 efining-scope...........(or.(js2
80520 2d 6e 6f 64 65 2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70 65 20 6e 6f 64 65 29 0a -node-get-enclosing-scope.node).
80540 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 29 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 .............node).name))).....(
80560 69 66 20 73 63 6f 70 65 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 61 73 74 2d 6e 6f 64 65 20 28 6a if.scope.(js2-symbol-ast-node.(j
80580 73 32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 73 63 6f 70 65 20 6e 61 6d 65 29 29 s2-scope-get-symbol.scope.name))
805a0 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 6a 73 )))..(provide.'js2-mode)..;;;.js
805c0 32 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 2-mode.el.ends.here.............
805e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80600 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 js2-mode-20231224/js2-imenu-extr
80620 61 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 as.el...........................
80640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
80680 30 30 35 30 31 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 36 37 00 20 30 00 00 00 0050102.00000000000.015467..0...
806a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
806c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
806e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
80720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
80740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
807e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80800 3b 3b 3b 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2e 65 6c 20 2d 2d 2d 20 49 6d 65 6e ;;;.js2-imenu-extras.el.---.Imen
80820 75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 73 74 72 75 u.support.for.additional.constru
80840 63 74 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d cts..-*-.lexical-binding:.t;.-*-
80860 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 32 2d 32 30 31 34 20 20 46 72 ..;;.Copyright.(C).2012-2014..Fr
80880 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b ee.Software.Foundation,.Inc...;;
808a0 20 41 75 74 68 6f 72 3a 20 20 20 20 44 6d 69 74 72 79 20 47 75 74 6f 76 20 3c 64 67 75 74 6f 76 .Author:....Dmitry.Gutov.<dgutov
808c0 40 79 61 6e 64 65 78 2e 72 75 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 20 6c 61 6e 67 75 61 @yandex.ru>.;;.Keywords:..langua
808e0 67 65 73 2c 20 6a 61 76 61 73 63 72 69 70 74 2c 20 69 6d 65 6e 75 0a 0a 3b 3b 20 54 68 69 73 20 ges,.javascript,.imenu..;;.This.
80900 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 47 file.is.part.of.GNU.Emacs...;;.G
80920 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 NU.Emacs.is.free.software:.you.c
80940 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 an.redistribute.it.and/or.modify
80960 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e .;;.it.under.the.terms.of.the.GN
80980 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c U.General.Public.License.as.publ
809a0 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f ished.by.;;.the.Free.Software.Fo
809c0 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 undation,.either.version.3.of.th
809e0 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e e.License,.or.;;.(at.your.option
80a00 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45 6d 61 ).any.later.version...;;.GNU.Ema
80a20 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 cs.is.distributed.in.the.hope.th
80a40 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 at.it.will.be.useful,.;;.but.WIT
80a60 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 HOUT.ANY.WARRANTY;.without.even.
80a80 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 the.implied.warranty.of.;;.MERCH
80aa0 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 ANTABILITY.or.FITNESS.FOR.A.PART
80ac0 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 ICULAR.PURPOSE...See.the.;;.GNU.
80ae0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 General.Public.License.for.more.
80b00 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 details...;;.You.should.have.rec
80b20 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 eived.a.copy.of.the.GNU.General.
80b40 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 Public.License.;;.along.with.GNU
80b60 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 .Emacs...If.not,.see.<http://www
80b80 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e .gnu.org/licenses/>...;;;.Commen
80ba0 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 61 64 64 73 20 49 6d 65 6e tary:..;;.This.package.adds.Imen
80bc0 75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 72 61 6d 65 77 6f u.support.for.additional.framewo
80be0 72 6b 20 63 6f 6e 73 74 72 75 63 74 73 20 61 6e 64 0a 3b 3b 20 73 74 72 75 63 74 75 72 61 6c 20 rk.constructs.and.;;.structural.
80c00 70 61 74 74 65 72 6e 73 20 74 6f 20 60 6a 73 32 2d 6d 6f 64 65 27 2e 0a 0a 3b 3b 20 55 73 61 67 patterns.to.`js2-mode'...;;.Usag
80c20 65 3a 0a 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 e:..;;.(add-hook.'js2-mode-hook.
80c40 27 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 6d 6f 64 65 29 0a 0a 3b 3b 20 54 6f 20 63 'js2-imenu-extras-mode)..;;.To.c
80c60 75 73 74 6f 6d 69 7a 65 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 3a 0a 3b 3b 20 20 20 4d 2d 78 20 ustomize.how.it.works:.;;...M-x.
80c80 63 75 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45 54 20 6a 73 32 2d 69 6d 65 6e 75 20 52 45 customize-group.RET.js2-imenu.RE
80ca0 54 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6a T..(require.'cl-lib).(require.'j
80cc0 73 32 2d 6d 6f 64 65 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 s2-mode)..(eval-when-compile...(
80ce0 77 68 65 6e 20 28 3c 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 36 29 when.(<=.emacs-major-version.26)
80d00 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 29 0a 0a 28 64 65 66 76 61 .....(require.'subr-x)))..(defva
80d20 72 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 65 6e 73 69 6f 6e 2d 73 74 79 6c 65 73 0a 20 20 60 r.js2-imenu-extension-styles...`
80d40 28 28 3a 66 72 61 6d 65 77 6f 72 6b 20 6a 71 75 65 72 79 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72 ((:framework.jquery......:call-r
80d60 65 20 20 20 22 5c 5c 5f 3c 5c 5c 28 3f 3a 6a 51 75 65 72 79 5c 5c 7c 5c 5c 24 5c 5c 7c 5f 5c 5c e..."\\_<\\(?:jQuery\\|\\$\\|_\\
80d80 29 5c 5c 2e 65 78 74 65 6e 64 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 )\\.extend\\s-*("......:recorder
80da0 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6a 71 75 65 72 79 2d 65 78 74 65 6e 64 ..js2-imenu-record-jquery-extend
80dc0 29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 6a 71 75 65 72 79 2d 75 69 0a 20 20 20 )......(:framework.jquery-ui....
80de0 20 20 3a 63 61 6c 6c 2d 72 65 20 20 20 22 5e 5c 5c 73 2d 2a 5c 5c 28 3f 3a 6a 51 75 65 72 79 5c ..:call-re..."^\\s-*\\(?:jQuery\
80e00 5c 7c 5c 5c 24 5c 5c 29 5c 5c 2e 77 69 64 67 65 74 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20 3a 72 \|\\$\\)\\.widget\\s-*("......:r
80e20 65 63 6f 72 64 65 72 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 73 74 72 69 6e 67 ecorder..js2-imenu-record-string
80e40 2d 64 65 63 6c 61 72 65 29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 64 6f 6a 6f 0a -declare)......(:framework.dojo.
80e60 20 20 20 20 20 3a 63 61 6c 6c 2d 72 65 20 20 20 22 5e 5c 5c 73 2d 2a 64 6f 6a 6f 2e 64 65 63 6c .....:call-re..."^\\s-*dojo.decl
80e80 61 72 65 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 20 6a 73 32 2d 69 are\\s-*("......:recorder..js2-i
80ea0 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 73 74 72 69 6e 67 2d 64 65 63 6c 61 72 65 29 0a 0a 20 20 20 menu-record-string-declare).....
80ec0 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 62 61 63 6b 62 6f 6e 65 0a 20 20 20 20 20 3a 63 61 6c 6c .(:framework.backbone......:call
80ee0 2d 72 65 20 20 20 2c 28 63 6f 6e 63 61 74 20 22 5c 5c 5f 3c 22 20 6a 73 32 2d 6d 6f 64 65 2d 69 -re...,(concat."\\_<".js2-mode-i
80f00 64 65 6e 74 69 66 69 65 72 2d 72 65 20 22 5c 5c 2e 65 78 74 65 6e 64 5c 5c 73 2d 2a 28 22 29 0a dentifier-re."\\.extend\\s-*(").
80f20 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 .....:recorder..js2-imenu-record
80f40 2d 62 61 63 6b 62 6f 6e 65 2d 65 78 74 65 6e 64 29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f -backbone-extend)......(:framewo
80f60 72 6b 20 65 6e 79 6f 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72 65 20 20 20 22 5c 5c 5f 3c 65 6e 79 rk.enyo......:call-re..."\\_<eny
80f80 6f 5c 5c 2e 6b 69 6e 64 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 20 o\\.kind\\s-*("......:recorder..
80fa0 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 65 6e 79 6f 2d 6b 69 6e 64 29 0a 0a 20 20 20 js2-imenu-record-enyo-kind).....
80fc0 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 72 65 61 63 74 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72 65 .(:framework.react......:call-re
80fe0 20 22 5c 5c 5f 3c 52 65 61 63 74 5c 5c 2e 63 72 65 61 74 65 43 6c 61 73 73 5c 5c 73 2d 2a 28 22 ."\\_<React\\.createClass\\s-*("
81000 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 ......:recorder.js2-imenu-record
81020 2d 72 65 61 63 74 2d 63 6c 61 73 73 29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 6d -react-class)......(:framework.m
81040 6f 63 68 61 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72 65 20 2c 28 72 78 20 6c 69 6e 65 2d 73 74 61 ocha......:call-re.,(rx.line-sta
81060 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 28 73 79 6e 74 61 78 rt....................(*.(syntax
81080 20 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .whitespace))...................
810a0 20 28 6f 72 20 22 64 65 73 63 72 69 62 65 22 20 22 66 64 65 73 63 72 69 62 65 22 20 22 64 65 73 .(or."describe"."fdescribe"."des
810c0 63 72 69 62 65 2e 6f 6e 6c 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cribe.only")....................
810e0 28 2a 20 28 73 79 6e 74 61 78 20 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 (*.(syntax.whitespace)).........
81100 20 20 20 20 20 20 20 20 20 20 20 22 28 22 29 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 6a ..........."(")......:recorder.j
81120 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 29 0a s2-imenu-record-mocha-describe).
81140 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 73 65 6e 63 68 61 0a 20 20 20 20 20 3a 63 61 .....(:framework.sencha......:ca
81160 6c 6c 2d 72 65 20 22 5e 5c 5c 73 2d 2a 45 78 74 5c 5c 2e 64 65 66 69 6e 65 5c 5c 73 2d 2a 28 22 ll-re."^\\s-*Ext\\.define\\s-*("
81180 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 ......:recorder.js2-imenu-record
811a0 2d 73 65 6e 63 68 61 2d 63 6c 61 73 73 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 4a 61 76 61 53 -sencha-class))..."List.of.JavaS
811c0 63 72 69 70 74 20 63 6c 61 73 73 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 72 20 65 78 74 65 6e 73 cript.class.definition.or.extens
811e0 69 6f 6e 20 73 74 79 6c 65 73 2e 0a 0a 3a 66 72 61 6d 65 77 6f 72 6b 20 69 73 20 61 20 76 61 6c ion.styles...:framework.is.a.val
81200 69 64 20 76 61 6c 75 65 20 69 6e 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 65 6e 61 62 6c 65 64 2d 66 id.value.in.`js2-imenu-enabled-f
81220 72 61 6d 65 77 6f 72 6b 73 27 2e 0a 0a 3a 63 61 6c 6c 2d 72 65 20 69 73 20 61 20 72 65 67 75 6c rameworks'...:call-re.is.a.regul
81240 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 61 74 20 68 61 73 20 6e 6f 20 63 61 70 74 75 72 ar.expression.that.has.no.captur
81260 69 6e 67 20 67 72 6f 75 70 73 2e 0a 0a 3a 72 65 63 6f 72 64 65 72 20 69 73 20 61 20 66 75 6e 63 ing.groups...:recorder.is.a.func
81280 74 69 6f 6e 20 6e 61 6d 65 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 68 tion.name.that.will.be.called.wh
812a0 65 6e 20 74 68 65 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 6d 61 74 63 68 65 en.the.regular.expression.matche
812c0 73 20 73 6f 6d 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 20 20 57 68 65 6e s.some.text.in.the.buffer...When
812e0 20 69 74 27 73 20 63 61 6c 6c 65 64 2c 20 70 6f 69 6e 74 20 77 69 6c 6c 20 62 65 0a 61 74 20 74 .it's.called,.point.will.be.at.t
81300 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d 61 74 63 68 2e 20 20 54 68 65 20 66 75 6e 63 74 69 he.end.of.the.match...The.functi
81320 6f 6e 20 6d 75 73 74 20 6b 65 65 70 20 74 68 65 20 70 6f 69 6e 74 20 70 6f 73 69 74 69 6f 6e 2e on.must.keep.the.point.position.
81340 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61 62 6c ")..(defconst.js2-imenu-availabl
81360 65 2d 66 72 61 6d 65 77 6f 72 6b 73 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 e-frameworks...(mapcar.(lambda.(
81380 73 74 79 6c 65 29 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 79 6c 65 20 3a 66 72 61 6d 65 77 6f style).(plist-get.style.:framewo
813a0 72 6b 29 29 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 65 6e 73 69 6f 6e 2d 73 74 79 6c 65 73 29 rk)).js2-imenu-extension-styles)
813c0 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 4a 61 76 61 53 63 72 69 70 74 ..."List.of.available.JavaScript
813e0 20 66 72 61 6d 65 77 6f 72 6b 20 73 79 6d 62 6f 6c 73 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f .framework.symbols.")..(defcusto
81400 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 6e 61 62 6c 65 64 2d 66 72 61 6d 65 77 6f 72 6b 73 20 6a m.js2-imenu-enabled-frameworks.j
81420 73 32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61 62 6c 65 2d 66 72 61 6d 65 77 6f 72 6b 73 0a 20 20 s2-imenu-available-frameworks...
81440 22 46 72 61 6d 65 77 6f 72 6b 73 20 74 6f 20 62 65 20 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20 "Frameworks.to.be.recognized.by.
81460 60 6a 73 32 2d 6d 6f 64 65 27 2e 22 0a 20 20 3a 74 79 70 65 20 28 63 6f 6e 73 20 27 73 65 74 20 `js2-mode'."...:type.(cons.'set.
81480 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6c 69 73 74 20 27 63 6f 6e 73 74 (mapcar.(lambda.(x).(list.'const
814a0 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .x))............................
814c0 6a 73 32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61 62 6c 65 2d 66 72 61 6d 65 77 6f 72 6b 73 29 29 js2-imenu-available-frameworks))
814e0 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a 0a 28 64 65 66 63 75 73 74 6f ...:group.'js2-imenu)..(defcusto
81500 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 m.js2-imenu-show-other-functions
81520 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 68 6f 77 20 66 75 6e 63 74 69 6f 6e 73 20 .t..."Non-nil.to.show.functions.
81540 6e 6f 74 20 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20 6f 74 68 65 72 20 6d 65 63 68 61 6e 69 73 not.recognized.by.other.mechanis
81560 6d 73 2c 0a 69 6e 20 61 20 73 68 61 72 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 22 0a 20 20 3a 74 ms,.in.a.shared.namespace."...:t
81580 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 ype.'boolean...:group.'js2-imenu
815a0 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 6f 74 68 65 72 2d 66 75 )..(defcustom.js2-imenu-other-fu
815c0 6e 63 74 69 6f 6e 73 2d 6e 73 20 22 3f 22 0a 20 20 22 4e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 nctions-ns."?"..."Namespace.name
815e0 20 74 6f 20 75 73 65 20 66 6f 72 20 6f 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 .to.use.for.other.functions."...
81600 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e :type.'string...:group.'js2-imen
81620 75 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d 6f u)..(defcustom.js2-imenu-show-mo
81640 64 75 6c 65 2d 70 61 74 74 65 72 6e 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 72 65 63 dule-pattern.t..."Non-nil.to.rec
81660 6f 67 6e 69 7a 65 20 74 68 65 20 6d 6f 64 75 6c 65 20 70 61 74 74 65 72 6e 3a 0a 0a 76 61 72 20 ognize.the.module.pattern:..var.
81680 66 6f 6f 62 73 20 3d 20 28 66 75 6e 63 74 69 6f 6e 28 61 29 20 7b 0a 20 20 72 65 74 75 72 6e 20 foobs.=.(function(a).{...return.
816a0 7b 66 69 62 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 2c 20 66 75 62 3a 20 66 75 6e 63 74 69 {fib:.function().{},.fub:.functi
816c0 6f 6e 28 29 20 7b 7d 7d 3b 0a 7d 29 28 62 29 3b 0a 0a 57 65 20 72 65 63 6f 72 64 20 74 68 65 20 on().{}};.})(b);..We.record.the.
816e0 72 65 74 75 72 6e 65 64 20 68 61 73 68 20 61 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 returned.hash.as.belonging.to.th
81700 65 20 6e 61 6d 65 64 20 6d 6f 64 75 6c 65 2c 20 61 6e 64 0a 70 72 65 66 69 78 20 61 6e 79 20 66 e.named.module,.and.prefix.any.f
81720 75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 49 49 46 45 unctions.defined.inside.the.IIFE
81740 20 77 69 74 68 20 74 68 65 20 6d 6f 64 75 6c 65 20 6e 61 6d 65 2e 22 0a 20 20 3a 74 79 70 65 20 .with.the.module.name."...:type.
81760 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a 0a 28 'boolean...:group.'js2-imenu)..(
81780 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67 defcustom.js2-imenu-split-string
817a0 2d 69 64 65 6e 74 69 66 69 65 72 73 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 -identifiers.t..."When.non-nil,.
817c0 73 70 6c 69 74 20 73 74 72 69 6e 67 20 69 64 65 6e 74 69 66 69 65 72 73 20 6f 6e 20 64 6f 74 73 split.string.identifiers.on.dots
817e0 2e 0a 43 75 72 72 65 6e 74 6c 79 20 75 73 65 64 20 66 6f 72 20 6a 51 75 65 72 79 20 77 69 64 67 ..Currently.used.for.jQuery.widg
81800 65 74 73 2c 20 44 6f 6a 6f 20 61 6e 64 20 45 6e 79 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e ets,.Dojo.and.Enyo.declarations.
81820 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 "...:type.'boolean...:group.'js2
81840 2d 69 6d 65 6e 75 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f -imenu)..(defcustom.js2-imenu-mo
81860 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 20 27 28 22 64 65 73 63 72 cha-describe-node-names.'("descr
81880 69 62 65 22 20 22 64 65 73 63 72 69 62 65 2e 6f 6e 6c 79 22 20 22 66 64 65 73 63 72 69 62 65 22 ibe"."describe.only"."fdescribe"
818a0 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 61 20 )..."List.of.strings.starting.a.
818c0 64 65 73 63 72 69 62 65 28 29 20 6e 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 describe().node."...:type.'(repe
818e0 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a at.string)...:group.'js2-imenu).
81900 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 69 74 2d 6e .(defcustom.js2-imenu-mocha-it-n
81920 6f 64 65 2d 6e 61 6d 65 73 20 27 28 22 69 74 22 20 22 69 74 2e 6f 6e 6c 79 22 20 22 66 69 74 22 ode-names.'("it"."it.only"."fit"
81940 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 61 20 )..."List.of.strings.starting.a.
81960 69 74 28 29 20 6e 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 it().node."...:type.'(repeat.str
81980 69 6e 67 29 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a 0a 28 64 65 66 63 ing)...:group.'js2-imenu)..(defc
819a0 75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 68 6f 6f 6b 2d 6e 6f 64 65 2d ustom.js2-imenu-mocha-hook-node-
819c0 6e 61 6d 65 73 20 27 28 22 62 65 66 6f 72 65 45 61 63 68 22 20 22 61 66 74 65 72 45 61 63 68 22 names.'("beforeEach"."afterEach"
819e0 20 22 62 65 66 6f 72 65 41 6c 6c 22 20 22 61 66 74 65 72 41 6c 6c 22 29 0a 20 20 22 4c 69 73 74 ."beforeAll"."afterAll")..."List
81a00 20 6f 66 20 73 74 72 69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 61 20 68 6f 6f 6b 20 6e 6f 64 65 .of.strings.starting.a.hook.node
81a20 20 28 65 2e 67 2e 2c 20 62 65 66 6f 72 65 20 61 6e 64 20 61 66 74 65 72 20 68 6f 6f 6b 73 29 2e .(e.g.,.before.and.after.hooks).
81a40 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 "...:type.'(repeat.string)...:gr
81a60 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a oup.'js2-imenu)..;;;###autoload.
81a80 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 73 65 74 75 70 20 28 29 (defun.js2-imenu-extras-setup.()
81aa0 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 6e 61 62 6c 65 64 2d 66 72 61 6d 65 ...(when.js2-imenu-enabled-frame
81ac0 77 6f 72 6b 73 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 62 75 69 6c 64 2d 69 works.....(add-hook.'js2-build-i
81ae0 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 menu-callbacks.'js2-imenu-record
81b00 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 20 74 29 29 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 -declarations.t.t))...(when.(or.
81b20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 20 6a js2-imenu-show-other-functions.j
81b40 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d 6f 64 75 6c 65 2d 70 61 74 74 65 72 6e 29 0a 20 20 s2-imenu-show-module-pattern)...
81b60 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c ..(add-hook.'js2-build-imenu-cal
81b80 6c 62 61 63 6b 73 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 77 61 6c 6b 2d 61 73 74 20 74 20 74 29 29 lbacks.'js2-imenu-walk-ast.t.t))
81ba0 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 72 65 6d 6f 76 )..(defun.js2-imenu-extras-remov
81bc0 65 20 28 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 62 75 69 6c 64 2d 69 e.()...(remove-hook.'js2-build-i
81be0 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 menu-callbacks.'js2-imenu-record
81c00 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 -declarations.t)...(remove-hook.
81c20 27 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 'js2-build-imenu-callbacks.'js2-
81c40 69 6d 65 6e 75 2d 77 61 6c 6b 2d 61 73 74 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 imenu-walk-ast.t))..(defun.js2-i
81c60 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 28 29 0a 20 20 28 6c menu-record-declarations.()...(l
81c80 65 74 2a 20 28 28 73 74 79 6c 65 73 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 73 74 79 6c 65 20 et*.((styles.(cl-loop.for.style.
81ca0 69 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 65 6e 73 69 6f 6e 2d 73 74 79 6c 65 73 0a 20 20 in.js2-imenu-extension-styles...
81cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 6d 65 ........................when.(me
81ce0 6d 71 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 79 6c 65 20 3a 66 72 61 6d 65 77 6f 72 6b 29 0a mq.(plist-get.style.:framework).
81d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
81d20 20 20 20 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 6e 61 62 6c 65 64 2d 66 72 61 6d 65 77 6f 72 6b .....js2-imenu-enabled-framework
81d40 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c s)...........................col
81d60 6c 65 63 74 20 73 74 79 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 20 28 6d 61 70 63 6f lect.style))..........(re.(mapco
81d80 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 73 74 79 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 ncat.(lambda.(style)............
81da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 22 20 28 70 6c ...............(concat."\\(".(pl
81dc0 69 73 74 2d 67 65 74 20 73 74 79 6c 65 20 3a 63 61 6c 6c 2d 72 65 29 20 22 5c 5c 29 22 29 29 0a ist-get.style.:call-re)."\\)")).
81de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 79 6c 65 73 20 22 ........................styles."
81e00 5c 5c 7c 22 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 \\|"))).....(goto-char.(point-mi
81e20 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f n)).....(while.(js2-re-search-fo
81e40 72 77 61 72 64 20 72 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 rward.re.nil.t).......(cl-loop.f
81e60 6f 72 20 69 20 66 72 6f 6d 20 30 20 74 6f 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 73 74 79 6c 65 or.i.from.0.to.(1-.(length.style
81e80 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 6d 61 74 63 68 2d 62 s))................when.(match-b
81ea0 65 67 69 6e 6e 69 6e 67 20 28 31 2b 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eginning.(1+.i))................
81ec0 72 65 74 75 72 6e 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 28 6e 74 68 20 return.(funcall.(plist-get.(nth.
81ee0 69 20 73 74 79 6c 65 73 29 20 3a 72 65 63 6f 72 64 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 i.styles).:recorder))))))..(defu
81f00 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6a 71 75 65 72 79 2d 65 78 74 65 6e 64 n.js2-imenu-record-jquery-extend
81f20 20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 72 65 64 20 28 6c 61 6d 62 64 61 20 28 73 75 62 6a 65 .()...(let.((pred.(lambda.(subje
81f40 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 ct).................(and........
81f60 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 73 ..........(js2-prop-get-node-p.s
81f80 75 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 ubject)..................(string
81fa0 3d 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d =.(js2-name-node-name.(js2-prop-
81fc0 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 73 75 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 get-node-right.subject))........
81fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 74 6f 74 79 70 65 22 29 29 ..................."prototype"))
82000 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 65 78 74 65 6e 64 ))).....(js2-imenu-record-extend
82020 2d 66 69 72 73 74 2d 61 72 67 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 20 70 72 65 64 0a 20 20 20 -first-arg.(1-.(point)).pred....
82040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82060 20 20 20 20 27 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 ....'js2-compute-nested-prop-get
82080 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 73 74 72 )))..(defun.js2-imenu-record-str
820a0 69 6e 67 2d 64 65 63 6c 61 72 65 20 28 29 0a 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f ing-declare.()...(js2-imenu-reco
820c0 72 64 2d 65 78 74 65 6e 64 2d 66 69 72 73 74 2d 61 72 67 0a 20 20 20 28 31 2d 20 28 70 6f 69 6e rd-extend-first-arg....(1-.(poin
820e0 74 29 29 20 27 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 0a 20 20 20 28 6c 61 6d 62 64 t)).'js2-string-node-p....(lambd
82100 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 28 69 66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69 a.(node)......(if.js2-imenu-spli
82120 74 2d 73 74 72 69 6e 67 2d 69 64 65 6e 74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20 20 28 73 t-string-identifiers..........(s
82140 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c plit-string.(js2-string-node-val
82160 75 65 20 6e 6f 64 65 29 20 22 5c 5c 2e 22 20 74 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 ue.node)."\\.".t)........(list.(
82180 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 6f 64 65 29 29 29 29 29 29 js2-string-node-value.node))))))
821a0 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 65 78 74 65 6e 64 ..(defun.js2-imenu-record-extend
821c0 2d 66 69 72 73 74 2d 61 72 67 20 28 70 6f 69 6e 74 20 70 72 65 64 20 71 6e 61 6d 65 2d 66 6e 29 -first-arg.(point.pred.qname-fn)
821e0 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 ...(let*.((node.(js2-node-at-poi
82200 6e 74 20 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63 nt.point))..........(args.(js2-c
82220 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 all-node-args.node))..........(s
82240 75 62 6a 65 63 74 20 28 63 6c 2d 66 69 72 73 74 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 ubject.(cl-first.args))).....(wh
82260 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 73 75 62 6a 65 63 74 29 0a 20 20 20 20 20 20 en.(funcall.pred.subject).......
82280 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 61 72 67 20 69 6e 20 28 63 64 72 20 61 72 67 73 29 0a 20 (cl-loop.for.arg.in.(cdr.args)..
822a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e ..............when.(js2-object-n
822c0 6f 64 65 2d 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 6a 73 ode-p.arg)................do.(js
822e0 32 2d 72 65 63 6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20 2-record-object-literal.........
82300 20 20 20 20 20 20 20 20 20 20 20 61 72 67 20 28 66 75 6e 63 61 6c 6c 20 71 6e 61 6d 65 2d 66 6e ...........arg.(funcall.qname-fn
82320 20 73 75 62 6a 65 63 74 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 61 72 67 29 .subject).(js2-node-abs-pos.arg)
82340 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 62 )))))..(defun.js2-imenu-record-b
82360 61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65 61 63 74 20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f ackbone-or-react.()...(let*.((no
82380 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74 de.(js2-node-at-point.(1-.(point
823a0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f ))))..........(args.(js2-call-no
823c0 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 74 68 6f 64 73 de-args.node))..........(methods
823e0 20 28 63 6c 2d 66 69 72 73 74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 .(cl-first.args))..........(pare
82400 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 nt.(js2-node-parent.node))).....
82420 28 77 68 65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6d 65 74 68 6f 64 73 (when.(js2-object-node-p.methods
82440 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 75 62 6a 65 63 74 20 28 63 6f 6e 64 20 28 28 6a ).......(let.((subject.(cond.((j
82460 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 s2-var-init-node-p.parent)......
82480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d .......................(js2-var-
824a0 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 init-node-target.parent)).......
824c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 61 73 73 69 67 .....................((js2-assig
824e0 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n-node-p.parent)................
82500 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 .............(js2-assign-node-le
82520 66 74 20 70 61 72 65 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 75 62 ft.parent))))).........(when.sub
82540 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 6f 62 6a 65 63 ject...........(js2-record-objec
82560 74 2d 6c 69 74 65 72 61 6c 20 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-literal.methods...............
82580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 .......................(js2-comp
825a0 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 73 75 62 6a 65 63 74 29 0a 20 20 20 ute-nested-prop-get.subject)....
825c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
825e0 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6d 65 74 68 6f 64 73 29 29 29 29 29 ..(js2-node-abs-pos.methods)))))
82600 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d ))..(defalias.'js2-imenu-record-
82620 62 61 63 6b 62 6f 6e 65 2d 65 78 74 65 6e 64 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 backbone-extend.'js2-imenu-recor
82640 64 2d 62 61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65 61 63 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 d-backbone-or-react)..(defalias.
82660 27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 72 65 61 63 74 2d 63 6c 61 73 73 20 27 6a 'js2-imenu-record-react-class.'j
82680 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 62 61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65 61 63 s2-imenu-record-backbone-or-reac
826a0 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 65 6e 79 6f t)..(defun.js2-imenu-record-enyo
826c0 2d 6b 69 6e 64 20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 -kind.()...(let*.((node.(js2-nod
826e0 65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 e-at-point.(1-.(point)))).......
82700 20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 ...(args.(js2-call-node-args.nod
82720 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70 74 69 6f 6e 73 20 28 63 6c 2d 66 69 72 73 74 20 e))..........(options.(cl-first.
82740 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f args))).....(when.(js2-object-no
82760 64 65 2d 70 20 6f 70 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d de-p.options).......(let.((name-
82780 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 value..............(cl-loop.for.
827a0 65 6c 65 6d 20 69 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6f elem.in.(js2-object-node-elems.o
827c0 70 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 ptions).......................th
827e0 65 72 65 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 ereis.......................(let
82800 20 28 28 6b 65 79 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 .((key.(js2-object-prop-node-lef
82820 74 20 65 6c 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.elem))........................
82840 20 20 20 20 20 28 76 61 6c 75 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 .....(value.(js2-object-prop-nod
82860 65 2d 72 69 67 68 74 20 65 6c 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-right.elem))).................
82880 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 75 61 6c 0a 20 20 20 20 20 20 ........(when.(and.(equal.......
828a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ..............................(c
828c0 6f 6e 64 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20 ond.((js2-name-node-p.key)......
828e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82900 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6b 65 79 29 29 0a ......(js2-name-node-name.key)).
82920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82940 20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 65 ..........((js2-string-node-p.ke
82960 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y)..............................
82980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 ..............(js2-string-node-v
829a0 61 6c 75 65 20 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alue.key))).....................
829c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20 ................"name").........
829e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ...........................(js2-
82a00 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 string-node-p.value))...........
82a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 ................(js2-string-node
82a40 2d 76 61 6c 75 65 20 76 61 6c 75 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e -value.value)))))).........(when
82a60 20 6e 61 6d 65 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 .name-value...........(js2-recor
82a80 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 d-object-literal.options........
82aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ..............................(i
82ac0 66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67 2d 69 64 65 6e 74 69 66 f.js2-imenu-split-string-identif
82ae0 69 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iers............................
82b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6e 61 6d 65 ..............(split-string.name
82b20 2d 76 61 6c 75 65 20 22 5c 5c 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -value."\\.")...................
82b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 61 6d 65 2d .....................(list.name-
82b60 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 value)).........................
82b80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6f .............(js2-node-abs-pos.o
82ba0 70 74 69 6f 6e 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d ptions)))))))..(defun.js2-imenu-
82bc0 72 65 63 6f 72 64 2d 73 65 6e 63 68 61 2d 63 6c 61 73 73 20 28 29 0a 20 20 28 6c 65 74 2a 20 28 record-sencha-class.()...(let*.(
82be0 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28 70 6f (node.(js2-node-at-point.(1-.(po
82c00 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c int))))..........(args.(js2-call
82c20 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 -node-args.node))..........(name
82c40 20 28 63 6c 2d 66 69 72 73 74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 74 68 .(cl-first.args))..........(meth
82c60 6f 64 73 20 28 63 6c 2d 73 65 63 6f 6e 64 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e ods.(cl-second.args))).....(when
82c80 20 28 61 6e 64 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6e 61 6d 65 29 20 28 .(and.(js2-string-node-p.name).(
82ca0 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6d 65 74 68 6f 64 73 29 29 0a 20 20 20 20 js2-object-node-p.methods)).....
82cc0 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 76 61 6c 75 65 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d ..(let.((name-value.(js2-string-
82ce0 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d node-value.name))).........(js2-
82d00 72 65 63 6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 6d 65 74 68 6f 64 73 0a 20 20 record-object-literal.methods...
82d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
82d40 20 28 69 66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67 2d 69 64 65 6e .(if.js2-imenu-split-string-iden
82d60 74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tifiers.........................
82d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6e 61 6d ...............(split-string.nam
82da0 65 2d 76 61 6c 75 65 20 22 5c 5c 2e 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-value."\\.".t)................
82dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 61 6d 65 ......................(list.name
82de0 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -value))........................
82e00 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6d 65 ............(js2-node-abs-pos.me
82e20 74 68 6f 64 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 thods))))))..(defun.js2-imenu-re
82e40 63 6f 72 64 2d 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 20 28 29 0a 20 20 22 50 6f 70 75 6c 61 cord-mocha-describe.()..."Popula
82e60 74 65 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 27 20 77 69 74 68 20 6d 6f 63 te.`js2-imenu-recorder'.with.moc
82e80 68 61 2d 6c 69 6b 65 20 64 65 73 63 72 69 62 65 2f 69 74 2f 62 65 66 6f 72 65 45 61 63 68 2f e2 ha-like.describe/it/beforeEach/.
82ea0 80 a6 20 6e 6f 64 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f ...nodes."...(let.((node.(js2-no
82ec0 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 de-at-point.(1-.(point))))).....
82ee0 28 77 68 65 6e 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 74 (when.(js2-imenu-extras--mocha-t
82f00 6f 70 2d 6c 65 76 65 6c 2d 64 65 73 63 72 69 62 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 op-level-describe-p.node).......
82f20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e (js2-imenu-extras--mocha-visit-n
82f40 6f 64 65 20 6e 6f 64 65 20 28 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d ode.node.(list)))))..(defun.js2-
82f60 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 20 28 imenu-extras--mocha-visit-node.(
82f80 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 53 65 61 72 63 68 20 4e 4f 44 45 20 61 6e 64 20 69 node.qname)..."Search.NODE.and.i
82fa0 74 73 20 63 68 69 6c 64 72 65 6e 20 66 6f 72 20 6d 6f 63 68 61 20 74 65 73 74 20 62 6c 6f 63 6b ts.children.for.mocha.test.block
82fc0 73 2e 0a 0a 49 66 20 6d 6f 63 68 61 20 74 65 73 74 20 62 6c 6f 63 6b 73 20 61 72 65 20 66 6f 75 s...If.mocha.test.blocks.are.fou
82fe0 6e 64 20 28 65 2e 67 2e 2c 20 61 20 64 65 73 63 72 69 62 65 28 29 20 6f 72 20 69 74 28 29 20 62 nd.(e.g.,.a.describe().or.it().b
83000 6c 6f 63 6b 29 0a 74 68 65 79 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 60 6a 73 32 2d 69 6d 65 lock).they.are.added.to.`js2-ime
83020 6e 75 2d 72 65 63 6f 72 64 65 72 27 20 77 69 74 68 20 51 4e 41 4d 45 20 61 73 20 70 72 65 66 69 nu-recorder'.with.QNAME.as.prefi
83040 78 2e 0a 0a 51 4e 41 4d 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 20 72 65 70 x...QNAME.is.a.list.of.nodes.rep
83060 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 20 6f 66 0a resenting.the.qualified.name.of.
83080 4e 4f 44 45 27 73 20 70 61 72 65 6e 74 2e 20 20 49 66 20 4e 4f 44 45 20 68 61 73 20 6e 6f 20 70 NODE's.parent...If.NODE.has.no.p
830a0 61 72 65 6e 74 2c 20 51 4e 41 4d 45 20 69 73 20 74 68 65 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a arent,.QNAME.is.the.empty.list..
830c0 54 68 65 20 6c 61 73 74 20 69 74 65 6d 20 6f 66 20 51 4e 41 4d 45 20 69 73 20 4e 4f 44 45 27 73 The.last.item.of.QNAME.is.NODE's
830e0 20 70 61 72 65 6e 74 20 6e 61 6d 65 20 77 68 69 6c 65 20 74 68 65 20 69 74 65 6d 0a 62 65 66 6f .parent.name.while.the.item.befo
83100 72 65 20 74 68 61 74 20 69 73 20 4e 4f 44 45 27 73 20 67 72 61 6e 64 70 61 72 65 6e 74 20 6e 61 re.that.is.NODE's.grandparent.na
83120 6d 65 20 65 74 63 2e 22 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 0a 20 20 20 6e 6f 64 me.etc."...(js2-visit-ast....nod
83140 65 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 68 69 6c 64 20 65 6e 64 2d 70 29 0a 20 20 20 20 20 e....(lambda.(child.end-p)......
83160 28 77 68 65 6e 20 28 6e 6f 74 20 65 6e 64 2d 70 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d (when.(not.end-p)........(js2-im
83180 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 63 68 65 63 6b 2d 75 6e 6b 6e 6f 77 6e 2d enu-extras--mocha-check-unknown-
831a0 6e 6f 64 65 20 63 68 69 6c 64 20 71 6e 61 6d 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 node.child.qname)))))..(defun.js
831c0 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 63 68 65 63 6b 2d 75 6e 6b 6e 2-imenu-extras--mocha-check-unkn
831e0 6f 77 6e 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 49 66 20 4e 4f 44 45 own-node.(node.qname)..."If.NODE
83200 20 69 73 20 61 20 6d 6f 63 68 61 20 74 65 73 74 20 62 6c 6f 63 6b 2c 20 70 6f 70 75 6c 61 74 65 .is.a.mocha.test.block,.populate
83220 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 27 2e 0a 0a 51 4e 41 4d 45 20 69 73 .`js2-imenu-recorder'...QNAME.is
83240 20 74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69 .the.same.as.described.in.`js2-i
83260 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22 menu-extras--mocha-visit-node'."
83280 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d ...(cond....((js2-imenu-extras--
832a0 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 mocha-describe-node-p.node).....
832c0 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d (progn.......(js2-imenu-extras--
832e0 6d 6f 63 68 61 2d 76 69 73 69 74 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 20 6e 6f 64 65 20 71 mocha-visit-describe-node.node.q
83300 6e 61 6d 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 name).......nil))....((js2-imenu
83320 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 69 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 -extras--mocha-it-node-p.node)..
83340 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 ...(progn.......(js2-imenu-extra
83360 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 69 74 2d 6e 6f 64 65 20 6e 6f 64 65 20 71 6e 61 6d s--mocha-visit-it-node.node.qnam
83380 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 e).......nil))....((js2-imenu-ex
833a0 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 62 65 66 6f 72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 2d 70 20 tras--mocha-before-after-node-p.
833c0 6e 6f 64 65 29 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e node).....(progn.......(js2-imen
833e0 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 62 65 66 6f 72 65 2d 61 66 74 u-extras--mocha-visit-before-aft
83400 65 72 2d 6e 6f 64 65 20 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a er-node.node.qname).......nil)).
83420 20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 6e 61 6d ...((js2-imenu-extras--mocha-nam
83440 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 70 72 ed-function-node-p.node).....(pr
83460 6f 67 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 ogn.......(js2-imenu-extras--moc
83480 68 61 2d 76 69 73 69 74 2d 6e 61 6d 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 6e 6f 64 ha-visit-named-function-node.nod
834a0 65 20 71 6e 61 6d 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 28 74 20 74 29 29 29 0a e.qname).......nil))....(t.t))).
834c0 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d .(defun.js2-imenu-extras--mocha-
834e0 74 6f 70 2d 6c 65 76 65 6c 2d 64 65 73 63 72 69 62 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 top-level-describe-p.(node)..."R
83500 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 74 6f 70 2d 6c eturn.non-nil.if.NODE.is.a.top-l
83520 65 76 65 6c 20 6d 6f 63 68 61 20 64 65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e 0a 0a 41 20 evel.mocha.describe().block...A.
83540 74 6f 70 2d 6c 65 76 65 6c 20 62 6c 6f 63 6b 20 69 73 20 6f 6e 65 20 77 68 69 63 68 20 69 73 6e top-level.block.is.one.which.isn
83560 27 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6e 6f 74 68 65 72 20 6d 6f 63 68 61 0a 64 65 73 't.included.in.another.mocha.des
83580 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 69 6d 65 6e cribe().block."...(and.(js2-imen
835a0 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 70 20 u-extras--mocha-describe-node-p.
835c0 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 node)........(not.(js2-imenu-ext
835e0 72 61 73 2d 2d 6d 6f 63 68 61 2d 69 73 2d 6f 72 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62 65 ras--mocha-is-or-within-describe
83600 2d 62 6c 6f 63 6b 2d 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 -block-p.(js2-node-parent.node))
83620 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f )))..(defun.js2-imenu-extras--mo
83640 63 68 61 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62 65 2d 62 6c 6f 63 6b 2d 70 20 28 6e 6f 64 cha-within-describe-block-p.(nod
83660 65 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 e)..."Return.non-nil.if.NODE.is.
83680 77 69 74 68 69 6e 20 61 20 6d 6f 63 68 61 20 64 65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e within.a.mocha.describe().block.
836a0 22 0a 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 69 73 2d "...(js2-imenu-extras--mocha-is-
836c0 6f 72 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62 65 2d 62 6c 6f 63 6b 2d 70 20 28 6a 73 32 2d or-within-describe-block-p.(js2-
836e0 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d node-parent.node)))..(defun.js2-
83700 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 69 73 2d 6f 72 2d 77 69 74 68 69 6e imenu-extras--mocha-is-or-within
83720 2d 64 65 73 63 72 69 62 65 2d 62 6c 6f 63 6b 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 -describe-block-p.(node)..."Retu
83740 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 6f 72 20 77 69 74 68 69 rn.non-nil.if.NODE.is.a.or.withi
83760 6e 20 61 20 6d 6f 63 68 61 20 64 65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 n.a.mocha.describe().block."...(
83780 77 68 65 6e 20 6e 6f 64 65 0a 20 20 20 20 28 6f 72 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 when.node.....(or.(js2-imenu-ext
837a0 72 61 73 2d 2d 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 ras--mocha-describe-node-p.node)
837c0 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 .........(js2-imenu-extras--moch
837e0 61 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62 65 2d 62 6c 6f 63 6b 2d 70 20 6e 6f 64 65 29 29 a-within-describe-block-p.node))
83800 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 ))..(defun.js2-imenu-extras--moc
83820 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ha-describe-node-p.(node)..."Ret
83840 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 6d 6f 63 68 61 20 64 urn.non-nil.if.NODE.is.a.mocha.d
83860 65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 escribe().block."...(when-let.((
83880 6e 61 6d 65 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 63 61 6c 6c 2d 74 61 72 name.(js2-imenu-extras--call-tar
838a0 67 65 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6d 65 6d 62 65 72 20 6e 61 6d get-name.node))).....(member.nam
838c0 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d e.js2-imenu-mocha-describe-node-
838e0 6e 61 6d 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 names)))..(defun.js2-imenu-extra
83900 73 2d 2d 6d 6f 63 68 61 2d 69 74 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 s--mocha-it-node-p.(node)..."Ret
83920 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 6d 6f 63 68 61 20 69 urn.non-nil.if.NODE.is.a.mocha.i
83940 74 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 6e 61 6d 65 20 28 t().block."...(when-let.((name.(
83960 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61 js2-imenu-extras--call-target-na
83980 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6d 65 6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d me.node))).....(member.name.js2-
839a0 69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 69 74 2d 6e 6f 64 65 2d 6e 61 6d 65 73 29 29 29 0a 0a 28 64 imenu-mocha-it-node-names)))..(d
839c0 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 62 65 66 efun.js2-imenu-extras--mocha-bef
839e0 6f 72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 ore-after-node-p.(node)..."Retur
83a00 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61 20 60 7b 62 65 66 6f 72 65 2c n.non-nil.if.NODE.is.a.`{before,
83a20 61 66 74 65 72 7d 7b 45 61 63 68 2c 41 6c 6c 7d 27 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 77 68 65 after}{Each,All}'.block."...(whe
83a40 6e 2d 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d n-let.((name.(js2-imenu-extras--
83a60 63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6d 65 call-target-name.node))).....(me
83a80 6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 68 6f 6f 6b 2d 6e mber.name.js2-imenu-mocha-hook-n
83aa0 6f 64 65 2d 6e 61 6d 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 ode-names)))..(defun.js2-imenu-e
83ac0 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 6e 61 6d 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 xtras--mocha-named-function-node
83ae0 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e -p.(node)..."Return.non-nil.if.N
83b00 4f 44 45 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2e 22 0a 20 ODE.is.a.function.definition."..
83b20 20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 .(and.(js2-function-node-p.node)
83b40 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 20 6e 6f 64 65 29 ........(js2-function-name.node)
83b60 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 ))..(defun.js2-imenu-extras--moc
83b80 68 61 2d 76 69 73 69 74 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 71 6e 61 ha-visit-describe-node.(node.qna
83ba0 6d 65 29 0a 20 20 22 52 65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20 6d 6f 63 68 61 20 64 65 73 63 me)..."Record.NODE,.a.mocha.desc
83bc0 72 69 62 65 28 29 20 62 6c 6f 63 6b 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a 41 6c 73 6f 20 73 65 61 ribe().block,.in.imenu..Also.sea
83be0 72 63 68 20 61 6e 64 20 72 65 63 6f 72 64 20 6f 74 68 65 72 20 6d 6f 63 68 61 20 62 6c 6f 63 6b rch.and.record.other.mocha.block
83c00 73 20 77 69 74 68 69 6e 20 4e 4f 44 45 27 73 20 62 6f 64 79 2e 0a 0a 51 4e 41 4d 45 20 69 73 20 s.within.NODE's.body...QNAME.is.
83c20 74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69 6d the.same.as.described.in.`js2-im
83c40 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22 0a enu-extras--mocha-visit-node'.".
83c60 20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 ..(let*.((args.(js2-call-node-ar
83c80 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 63 6c 2d 66 69 72 gs.node))..........(name.(cl-fir
83ca0 73 74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 71 6e 61 6d 65 20 28 61 70 70 65 6e st.args))..........(qname.(appen
83cc0 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 d.qname.(list.name)))..........(
83ce0 62 6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 body.(car.(last.args))).........
83d00 20 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 .(position.(js2-node-abs-pos.nod
83d20 65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 e))).....(js2-record-imenu-entry
83d40 20 62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 28 6a 73 32 2d 69 .body.qname.position).....(js2-i
83d60 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 20 62 6f menu-extras--mocha-visit-node.bo
83d80 64 79 20 71 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 dy.qname)))..(defun.js2-imenu-ex
83da0 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 69 74 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 tras--mocha-visit-it-node.(node.
83dc0 71 6e 61 6d 65 29 0a 20 20 22 52 65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20 6d 6f 63 68 61 20 69 qname)..."Record.NODE,.a.mocha.i
83de0 74 28 29 20 62 6c 6f 63 6b 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a 0a 51 4e 41 4d 45 20 69 73 20 74 t().block,.in.imenu...QNAME.is.t
83e00 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69 6d 65 he.same.as.described.in.`js2-ime
83e20 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22 0a 20 nu-extras--mocha-visit-node'."..
83e40 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 .(let*.((args.(js2-call-node-arg
83e60 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 63 6c 2d 66 69 72 73 s.node))..........(name.(cl-firs
83e80 74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 71 6e 61 6d 65 20 28 61 70 70 65 6e 64 t.args))..........(qname.(append
83ea0 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 .qname.(list.name)))..........(b
83ec0 6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 ody.(car.(last.args)))..........
83ee0 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 (position.(js2-node-abs-pos.node
83f00 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 ))).....(js2-record-imenu-entry.
83f20 62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a body.qname.position)))..(defun.j
83f40 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 62 65 66 s2-imenu-extras--mocha-visit-bef
83f60 6f 72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 52 ore-after-node.(node.qname)..."R
83f80 65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20 6d 6f 63 68 61 20 7b 62 65 66 6f 72 65 2c 61 66 74 65 ecord.NODE,.a.mocha.{before,afte
83fa0 72 7d 7b 45 61 63 68 2c 41 6c 6c 7d 28 29 20 62 6c 6f 63 6b 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a r}{Each,All}().block,.in.imenu..
83fc0 0a 51 4e 41 4d 45 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 .QNAME.is.the.same.as.described.
83fe0 69 6e 0a 60 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 in.`js2-imenu-extras--mocha-visi
84000 74 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6a 73 32 2d 63 61 t-node'."...(let*.((args.(js2-ca
84020 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 71 6e ll-node-args.node))..........(qn
84040 61 6d 65 20 28 61 70 70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 28 6a 73 32 2d 69 6d 65 ame.(append.qname.(list.(js2-ime
84060 6e 75 2d 65 78 74 72 61 73 2d 2d 63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61 6d 65 20 6e 6f 64 65 nu-extras--call-target-name.node
84080 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20 61 ))))..........(body.(car.(last.a
840a0 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d 6e rgs)))..........(position.(js2-n
840c0 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63 ode-abs-pos.node))).....(js2-rec
840e0 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69 74 ord-imenu-entry.body.qname.posit
84100 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d ion)))..(defun.js2-imenu-extras-
84120 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 61 6d 65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 -mocha-visit-named-function-node
84140 20 28 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 52 65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20 .(node.qname)..."Record.NODE,.a.
84160 66 75 6e 63 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a function.declaration,.in.imenu..
84180 0a 51 4e 41 4d 45 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 .QNAME.is.the.same.as.described.
841a0 69 6e 0a 60 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 in.`js2-imenu-extras--mocha-visi
841c0 74 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 71 6e 61 6d 65 20 28 61 70 70 65 6e t-node'."...(let*.((qname.(appen
841e0 64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 d.qname.(list.(js2-function-name
84200 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 .node))))..........(position.(js
84220 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 2-node-abs-pos.node))).....(js2-
84240 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 6e 6f 64 65 20 71 6e 61 6d 65 20 70 6f record-imenu-entry.node.qname.po
84260 73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 sition)))..(defun.js2-imenu-extr
84280 61 73 2d 2d 63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 as--call-target-name.(node)..."R
842a0 65 74 75 72 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 2c 20 61 73 20 73 74 72 69 eturn.the.function.name,.as.stri
842c0 6e 67 2c 20 63 61 6c 6c 65 64 20 62 79 20 4e 4f 44 45 2e 0a 49 66 20 6e 6f 64 65 20 69 73 20 6e ng,.called.by.NODE..If.node.is.n
842e0 6f 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 ot.a.function.call,.return.nil."
84300 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a ...(when.(js2-call-node-p.node).
84320 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 73 74 72 69 6e 67 2d 63 6f ....(js2-imenu-extras--string-co
84340 6e 74 65 6e 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 ntent.(js2-call-node-target.node
84360 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 73 ))))..(defun.js2-imenu-extras--s
84380 74 72 69 6e 67 2d 63 6f 6e 74 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 tring-content.(node)..."Return.a
843a0 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 76 61 6c 75 65 20 6f .string.representing.the.value.o
843c0 66 20 4e 4f 44 45 2e 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d f.NODE."...(if.(js2-string-node-
843e0 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 p.node).......(js2-string-node-v
84400 61 6c 75 65 20 6e 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 6a 73 32 alue.node).....(let.((start.(js2
84420 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 62 75 66 -node-abs-pos.node))).......(buf
84440 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 fer-substring-no-properties.....
84460 20 20 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 28 2b 20 73 74 61 72 74 20 28 6a 73 32 2d 6e 6f ...start........(+.start.(js2-no
84480 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d de-len.node))))))..(defun.js2-im
844a0 65 6e 75 2d 77 61 6c 6b 2d 61 73 74 20 28 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 enu-walk-ast.()...(js2-visit-ast
844c0 0a 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 ....js2-mode-ast....(lambda.(nod
844e0 65 20 65 6e 64 2d 70 29 0a 20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 6e 64 2d 70 0a 20 20 20 20 e.end-p)......(unless.end-p.....
84500 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75 ...(cond.........((and.js2-imenu
84520 2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 -show-other-functions...........
84540 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 ....(js2-object-prop-node-p.node
84560 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 ))..........(js2-imenu-record-or
84580 70 68 61 6e 2d 70 72 6f 70 2d 6e 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 29 29 0a 20 phan-prop-node-function.node))..
845a0 20 20 20 20 20 20 20 28 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 .......((js2-assign-node-p.node)
845c0 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 ..........(cond...........((and.
845e0 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 js2-imenu-show-other-functions..
84600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 ...............(js2-function-nod
84620 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 67 6e e-p..................(js2-assign
84640 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 -node-right.node)))............(
84660 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 70 68 61 6e 2d 61 73 73 69 67 6e 2d 6e js2-imenu-record-orphan-assign-n
84680 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 ode-function.............(js2-as
846a0 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 sign-node-left.node)............
846c0 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a .(js2-assign-node-right.node))).
846e0 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d ..........((and.js2-imenu-show-m
84700 6f 64 75 6c 65 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a odule-pattern.................(j
84720 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-call-node-p..................
84740 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a 20 (js2-assign-node-right.node)))..
84760 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 64 75 ..........(js2-imenu-record-modu
84780 6c 65 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 le-pattern.............(js2-assi
847a0 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 gn-node-left.node).............(
847c0 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 29 29 0a js2-assign-node-right.node))))).
847e0 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 6e 6f ........((js2-var-init-node-p.no
84800 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 de)..........(cond...........((a
84820 6e 64 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e nd.js2-imenu-show-other-function
84840 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d s.................(js2-function-
84860 6e 6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 node-p..................(js2-var
84880 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 6e 6f 64 65 29 29 29 0a 20 -init-node-initializer.node)))..
848a0 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 70 68 ..........(js2-imenu-record-orph
848c0 61 6e 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 an-assign-node-function.........
848e0 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f ....(js2-var-init-node-target.no
84900 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f de).............(js2-var-init-no
84920 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 de-initializer.node)))..........
84940 20 28 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d 6f 64 75 6c 65 2d 70 61 74 .((and.js2-imenu-show-module-pat
84960 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e tern.................(js2-call-n
84980 6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d ode-p..................(js2-var-
849a0 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 6e 6f 64 65 29 29 29 0a 20 20 init-node-initializer.node)))...
849c0 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 64 75 6c .........(js2-imenu-record-modul
849e0 65 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69 e-pattern.............(js2-var-i
84a00 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 nit-node-target.node)...........
84a20 20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 ..(js2-var-init-node-initializer
84a40 20 6e 6f 64 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e .node))))))........t))))..(defun
84a60 20 6a 73 32 2d 69 6d 65 6e 75 2d 70 61 72 65 6e 74 2d 6b 65 79 2d 6e 61 6d 65 73 20 28 6e 6f 64 .js2-imenu-parent-key-names.(nod
84a80 65 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 61 72 65 6e 74 20 6b 65 79 e)..."Get.the.list.of.parent.key
84aa0 20 6e 61 6d 65 73 20 6f 66 20 4e 4f 44 45 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f .names.of.NODE...For.example,.fo
84ac0 72 20 63 6f 64 65 0a 0a 20 20 7b 72 75 6c 65 73 3a 20 7b 70 61 73 73 77 6f 72 64 3a 20 7b 72 65 r.code....{rules:.{password:.{re
84ae0 71 75 69 72 65 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 7d 7d 0a 0a 77 68 65 6e 20 4e quired:.function().{}}}}..when.N
84b00 4f 44 45 20 69 73 20 74 68 65 20 69 6e 6e 65 72 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f ODE.is.the.inner.`js2-object-pro
84b20 70 2d 6d 6f 64 65 27 2c 0a 69 74 20 72 65 74 75 72 6e 73 20 28 5c 22 72 75 6c 65 73 5c 22 20 5c p-mode',.it.returns.(\"rules\".\
84b40 22 70 61 73 73 77 6f 72 64 5c 22 29 2e 22 0a 20 20 28 6c 65 74 20 28 72 6c 74 20 28 6e 20 6e 6f "password\")."...(let.(rlt.(n.no
84b60 64 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 6e 20 28 6a 73 32 2d 69 6d 65 de)).....(while.(setq.n.(js2-ime
84b80 6e 75 2d 70 61 72 65 6e 74 2d 70 72 6f 70 2d 6e 6f 64 65 20 6e 29 29 0a 20 20 20 20 20 20 28 70 nu-parent-prop-node.n)).......(p
84ba0 75 73 68 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6f 62 6a ush.(js2-prop-node-name.(js2-obj
84bc0 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 29 20 72 6c 74 29 29 0a 20 20 20 ect-prop-node-left.n)).rlt))....
84be0 20 72 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 70 61 72 65 6e 74 2d .rlt))..(defun.js2-imenu-parent-
84c00 70 72 6f 70 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 57 68 65 6e 20 74 68 65 20 70 61 72 prop-node.(node)..."When.the.par
84c20 65 6e 74 20 6f 66 20 4e 4f 44 45 20 69 73 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27 ent.of.NODE.is.`js2-object-node'
84c40 2c 0a 61 6e 64 20 74 68 65 20 67 72 61 6e 64 70 61 72 65 6e 74 20 69 73 20 60 6a 73 32 2d 6f 62 ,.and.the.grandparent.is.`js2-ob
84c60 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 27 2c 0a 72 65 74 75 72 6e 20 74 68 65 20 67 72 61 6e ject-prop-node',.return.the.gran
84c80 64 70 61 72 65 6e 74 2e 22 0a 20 20 3b 3b 20 53 75 70 70 6f 73 65 20 74 68 65 20 63 6f 64 65 20 dparent."...;;.Suppose.the.code.
84ca0 69 73 3a 0a 20 20 3b 3b 20 7b 70 61 72 65 6e 74 2d 6b 65 79 3a 20 7b 72 65 71 75 69 72 65 64 3a is:...;;.{parent-key:.{required:
84cc0 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 7d 0a 20 20 3b 3b 20 4e 4f 44 45 20 69 73 20 60 72 .function().{}}}...;;.NODE.is.`r
84ce0 65 71 75 69 72 65 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 27 2e 0a 20 20 28 6c 65 74 20 equired:.function().{}'....(let.
84d00 28 70 32 20 70 33 29 0a 20 20 20 20 3b 3b 20 50 61 72 65 6e 74 20 69 73 20 60 7b 72 65 71 75 69 (p2.p3).....;;.Parent.is.`{requi
84d20 72 65 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 27 2e 0a 20 20 20 20 28 73 65 74 71 20 red:.function().{}}'......(setq.
84d40 70 32 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 3b p2.(js2-node-parent.node)).....;
84d60 3b 20 47 50 20 69 73 20 60 70 61 72 65 6e 74 2d 6b 65 79 3a 20 7b 72 65 71 75 69 72 65 64 3a 20 ;.GP.is.`parent-key:.{required:.
84d80 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 27 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 function().{}}'......(when.(and.
84da0 70 32 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 70 32 29 29 0a 20 20 20 20 20 p2.(js2-object-node-p.p2))......
84dc0 20 28 73 65 74 71 20 70 33 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 32 29 29 0a .(setq.p3.(js2-node-parent.p2)).
84de0 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 70 33 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 ......(if.(and.p3.(js2-object-pr
84e00 6f 70 2d 6e 6f 64 65 2d 70 20 70 33 29 29 20 70 33 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 op-node-p.p3)).p3))))..(defun.js
84e20 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 70 68 61 6e 2d 70 72 6f 70 2d 6e 6f 64 65 2d 2-imenu-record-orphan-prop-node-
84e40 66 75 6e 63 74 69 6f 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 63 6f 72 64 20 6f 72 70 68 61 6e function.(node)..."Record.orphan
84e60 20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20 69 74 27 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 .function.when.it's.the.value.of
84e80 20 4e 4f 44 45 2e 0a 4e 4f 44 45 20 6d 75 73 74 20 62 65 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d .NODE..NODE.must.be.`js2-object-
84ea0 70 72 6f 70 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69 prop-node'."...(when.(js2-functi
84ec0 6f 6e 2d 6e 6f 64 65 2d 70 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d on-node-p.(js2-object-prop-node-
84ee0 72 69 67 68 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 6e 2d 6e 6f 64 65 20 right.node)).....(let.((fn-node.
84f00 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65 (js2-object-prop-node-right.node
84f20 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75 ))).......(unless.(and.js2-imenu
84f40 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -function-map...................
84f60 20 28 67 65 74 68 61 73 68 20 66 6e 2d 6e 6f 64 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 .(gethash.fn-node.js2-imenu-func
84f80 74 69 6f 6e 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 6e 6f tion-map)).........(let.((key-no
84fa0 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f de.(js2-object-prop-node-left.no
84fc0 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 de))...............chain).......
84fe0 20 20 20 20 28 73 65 74 71 20 63 68 61 69 6e 20 28 6e 63 6f 6e 63 20 28 6a 73 32 2d 69 6d 65 6e ....(setq.chain.(nconc.(js2-imen
85000 75 2d 70 61 72 65 6e 74 2d 6b 65 79 2d 6e 61 6d 65 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 u-parent-key-names.node)........
85020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6a 73 32 ......................(list.(js2
85040 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6b 65 79 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20 -prop-node-name.key-node))))....
85060 20 20 20 20 20 20 20 28 70 75 73 68 20 6a 73 32 2d 69 6d 65 6e 75 2d 6f 74 68 65 72 2d 66 75 6e .......(push.js2-imenu-other-fun
85080 63 74 69 6f 6e 73 2d 6e 73 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d ctions-ns.chain)...........(js2-
850a0 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 66 6e 2d 6e 6f 64 65 20 63 68 61 69 6e record-imenu-entry.fn-node.chain
850c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
850e0 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6b 65 79 2d 6e 6f 64 65 29 29 29 ...(js2-node-abs-pos.key-node)))
85100 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 ))))..(defun.js2-imenu-record-or
85120 70 68 61 6e 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 20 28 74 61 72 67 65 phan-assign-node-function.(targe
85140 74 2d 6e 6f 64 65 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 22 52 65 63 6f 72 64 20 6f 72 70 68 61 6e t-node.fn-node)..."Record.orphan
85160 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2d 4e 4f 44 45 20 61 73 73 69 67 6e 65 64 20 74 6f 20 6e 6f .function.FN-NODE.assigned.to.no
85180 64 65 20 54 41 52 47 45 54 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 6a 73 32 de.TARGET."...(when.(or.(not.js2
851a0 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 -imenu-function-map)............
851c0 20 28 65 71 20 27 73 6b 69 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 .(eq.'skip.................(geth
851e0 61 73 68 20 66 6e 2d 6e 6f 64 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d ash.fn-node.js2-imenu-function-m
85200 61 70 20 27 73 6b 69 70 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 68 61 69 6e 20 28 6a 73 ap.'skip))).....(let.((chain.(js
85220 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 74 61 72 67 65 74 2-compute-nested-prop-get.target
85240 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 68 61 69 6e 0a 20 20 20 20 20 -node))).......(when.chain......
85260 20 20 20 28 70 75 73 68 20 6a 73 32 2d 69 6d 65 6e 75 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f ...(push.js2-imenu-other-functio
85280 6e 73 2d 6e 73 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 ns-ns.chain).........(js2-record
852a0 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 66 6e 2d 6e 6f 64 65 20 63 68 61 69 6e 20 28 6a 73 32 2d -imenu-entry.fn-node.chain.(js2-
852c0 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 29 29 29 29 29 0a 0a 28 64 65 66 node-abs-pos.fn-node))))))..(def
852e0 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 64 75 6c 65 2d 70 61 74 74 65 un.js2-imenu-record-module-patte
85300 72 6e 20 28 74 61 72 67 65 74 20 69 6e 69 74 29 0a 20 20 22 52 65 63 6f 67 6e 69 7a 65 20 61 6e rn.(target.init)..."Recognize.an
85320 64 20 72 65 63 6f 72 64 20 6d 6f 64 75 6c 65 20 70 61 74 74 65 72 6e 20 75 73 65 20 69 6e 73 74 d.record.module.pattern.use.inst
85340 61 6e 63 65 2e 0a 49 4e 49 54 20 6d 75 73 74 20 62 65 20 60 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 ance..INIT.must.be.`js2-call-nod
85360 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6c 6c 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f e'."...(let.((callt.(js2-call-no
85380 64 65 2d 74 61 72 67 65 74 20 69 6e 69 74 29 29 29 0a 20 20 20 20 3b 3b 20 4a 75 73 74 20 62 61 de-target.init))).....;;.Just.ba
853a0 73 69 63 20 63 61 6c 6c 20 66 6f 72 6d 3a 20 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d sic.call.form:.(function().{...}
853c0 29 28 29 3b 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 76 61 72 69 61 74 69 )();.....;;.TODO:.Handle.variati
853e0 6f 6e 73 20 77 69 74 68 6f 75 74 20 64 75 70 6c 69 63 61 74 69 6e 67 20 60 6a 73 32 2d 77 72 61 ons.without.duplicating.`js2-wra
85400 70 70 65 72 2d 66 75 6e 63 74 69 6f 6e 2d 70 27 3f 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 pper-function-p'?.....(when.(and
85420 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 70 20 63 61 6c 6c 74 29 0a 20 20 20 20 20 20 .(js2-paren-node-p.callt).......
85440 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 28 6a .........(js2-function-node-p.(j
85460 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70 72 20 63 61 6c 6c 74 29 29 29 0a 20 20 20 20 s2-paren-node-expr.callt))).....
85480 20 20 28 6c 65 74 2a 20 28 28 66 6e 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70 ..(let*.((fn.(js2-paren-node-exp
854a0 72 20 63 61 6c 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c 6b 20 28 6a 73 32 r.callt))..............(blk.(js2
854c0 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 29 29 0a 20 20 20 20 20 20 20 -function-node-body.fn))........
854e0 20 20 20 20 20 20 28 72 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 28 6a 73 32 2d 62 6c 6f 63 6b ......(ret.(car.(last.(js2-block
85500 2d 6e 6f 64 65 2d 6b 69 64 73 20 62 6c 6b 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 -node-kids.blk))))).........(whe
85520 6e 20 28 61 6e 64 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 2d 70 20 72 65 74 29 0a 20 n.(and.(js2-return-node-p.ret)..
85540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f ..................(js2-object-no
85560 64 65 2d 70 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 2d 72 65 74 76 61 6c 20 72 65 74 de-p.(js2-return-node-retval.ret
85580 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 4d 61 70 20 66 75 6e 63 74 )))...........;;.TODO:.Map.funct
855a0 69 6f 6e 20 6e 61 6d 65 73 20 77 68 65 6e 20 72 65 76 65 61 6c 69 6e 67 20 6d 6f 64 75 6c 65 20 ion.names.when.revealing.module.
855c0 70 61 74 74 65 72 6e 20 69 73 20 75 73 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 pattern.is.used............(let.
855e0 28 28 72 65 74 76 61 6c 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 2d 72 65 74 76 61 6c ((retval.(js2-return-node-retval
85600 20 72 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 71 .ret)).................(target-q
85620 6e 61 6d 65 20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 name.(js2-compute-nested-prop-ge
85640 74 20 74 61 72 67 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 t.target))).............(js2-rec
85660 6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 72 65 74 76 61 6c 20 74 61 72 67 65 74 ord-object-literal.retval.target
85680 2d 71 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -qname..........................
856a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 ..............(js2-node-abs-pos.
856c0 72 65 74 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 retval)).............(js2-record
856e0 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 66 6e 20 74 61 72 67 65 74 2d 71 6e 61 6d 65 0a 20 20 20 -imenu-entry.fn.target-qname....
85700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
85720 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 74 61 72 67 65 74 29 29 29 29 29 29 29 .(js2-node-abs-pos.target)))))))
85740 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d )..;;;###autoload.(define-minor-
85760 6d 6f 64 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 6d 6f 64 65 0a 20 20 22 54 6f mode.js2-imenu-extras-mode..."To
85780 67 67 6c 65 20 49 6d 65 6e 75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 72 61 6d 65 77 6f 72 6b ggle.Imenu.support.for.framework
857a0 73 20 61 6e 64 20 73 74 72 75 63 74 75 72 61 6c 20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 3a 6c s.and.structural.patterns."...:l
857c0 69 67 68 74 65 72 20 22 22 0a 20 20 28 69 66 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 ighter.""...(if.js2-imenu-extras
857e0 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 73 65 -mode.......(js2-imenu-extras-se
85800 74 75 70 29 0a 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 72 65 6d 6f 76 tup).....(js2-imenu-extras-remov
85820 65 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 e)))..(provide.'js2-imenu-extras
85840 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )...............................
85860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
858a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
858c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
858e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
859a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
859c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
859e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a00 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 js2-mode-20231224/LICENSE.......
85a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
85a80 30 31 30 34 35 31 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 30 34 33 00 20 30 00 00 00 0104513.00000000000.013043..0...
85aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
85b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
85b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20 ....................GNU.GENERAL.
85c20 50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PUBLIC.LICENSE..................
85c40 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20 ......Version.3,.29.June.2007...
85c60 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 Copyright.(C).2007.Free.Software
85c80 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 3a 2f 2f 66 73 66 2e 6f 72 .Foundation,.Inc..<http://fsf.or
85ca0 67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 6f g/>..Everyone.is.permitted.to.co
85cc0 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 py.and.distribute.verbatim.copie
85ce0 73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74 s..of.this.license.document,.but
85d00 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 20 .changing.it.is.not.allowed.....
85d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 61 6d 62 ..........................Preamb
85d40 6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 le....The.GNU.General.Public.Lic
85d60 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 65 ense.is.a.free,.copyleft.license
85d80 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 .for.software.and.other.kinds.of
85da0 20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 74 .works.....The.licenses.for.most
85dc0 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 6f .software.and.other.practical.wo
85de0 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 6f rks.are.designed.to.take.away.yo
85e00 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 74 ur.freedom.to.share.and.change.t
85e20 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 20 he.works...By.contrast,.the.GNU.
85e40 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e 64 General.Public.License.is.intend
85e60 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 0a ed.to.guarantee.your.freedom.to.
85e80 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 share.and.change.all.versions.of
85ea0 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d 61 .a.program--to.make.sure.it.rema
85ec0 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 73 ins.free.software.for.all.its.us
85ee0 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ers...We,.the.Free.Software.Foun
85f00 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c dation,.use.the.GNU.General.Publ
85f20 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 77 ic.License.for.most.of.our.softw
85f40 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 65 are;.it.applies.also.to.any.othe
85f60 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 20 r.work.released.this.way.by.its.
85f80 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 6f authors...You.can.apply.it.to.yo
85fa0 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 65 ur.programs,.too.....When.we.spe
85fc0 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 65 ak.of.free.software,.we.are.refe
85fe0 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f 75 rring.to.freedom,.not.price...Ou
86000 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 65 r.General.Public.Licenses.are.de
86020 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 76 signed.to.make.sure.that.you.hav
86040 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 69 e.the.freedom.to.distribute.copi
86060 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 20 es.of.free.software.(and.charge.
86080 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 20 for.them.if.you.wish),.that.you.
860a0 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 69 receive.source.code.or.can.get.i
860c0 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 t.if.you.want.it,.that.you.can.c
860e0 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 73 hange.the.software.or.use.pieces
86100 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e 64 .of.it.in.new.free.programs,.and
86120 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 20 .that.you.know.you.can.do.these.
86140 74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 things.....To.protect.your.right
86160 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 6f s,.we.need.to.prevent.others.fro
86180 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 73 m.denying.you.these.rights.or.as
861a0 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 73 king.you.to.surrender.the.rights
861c0 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 72 ...Therefore,.you.have.certain.r
861e0 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 esponsibilities.if.you.distribut
86200 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 0a e.copies.of.the.software,.or.if.
86220 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 you.modify.it:.responsibilities.
86240 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 73 to.respect.the.freedom.of.others
86260 2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 .....For.example,.if.you.distrib
86280 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 68 ute.copies.of.such.a.program,.wh
862a0 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 6d ether.gratis.or.for.a.fee,.you.m
862c0 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 68 ust.pass.on.to.the.recipients.th
862e0 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 65 e.same.freedoms.that.you.receive
86300 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 79 d...You.must.make.sure.that.they
86320 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 6f ,.too,.receive.or.can.get.the.so
86340 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 68 urce.code...And.you.must.show.th
86360 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 69 em.these.terms.so.they.know.thei
86380 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 65 r.rights.....Developers.that.use
863a0 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73 .the.GNU.GPL.protect.your.rights
863c0 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 79 .with.two.steps:.(1).assert.copy
863e0 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 6f right.on.the.software,.and.(2).o
86400 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f 75 ffer.you.this.License.giving.you
86420 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 .legal.permission.to.copy,.distr
86440 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 74 ibute.and/or.modify.it.....For.t
86460 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f 74 he.developers'.and.authors'.prot
86480 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e 73 ection,.the.GPL.clearly.explains
864a0 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 .that.there.is.no.warranty.for.t
864c0 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 65 his.free.software...For.both.use
864e0 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 72 rs'.and.authors'.sake,.the.GPL.r
86500 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 62 equires.that.modified.versions.b
86520 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65 e.marked.as.changed,.so.that.the
86540 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 74 ir.problems.will.not.be.attribut
86560 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 65 ed.erroneously.to.authors.of.pre
86580 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 20 vious.versions.....Some.devices.
865a0 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 73 are.designed.to.deny.users.acces
865c0 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 72 s.to.install.or.run.modified.ver
865e0 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 sions.of.the.software.inside.the
86600 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 6e m,.although.the.manufacturer.can
86620 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 69 .do.so...This.is.fundamentally.i
86640 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f 74 ncompatible.with.the.aim.of.prot
86660 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 20 ecting.users'.freedom.to.change.
86680 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 61 the.software...The.systematic.pa
866a0 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 68 ttern.of.such.abuse.occurs.in.th
866c0 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61 e.area.of.products.for.individua
866e0 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 68 ls.to.use,.which.is.precisely.wh
86700 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 68 ere.it.is.most.unacceptable...Th
86720 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 76 erefore,.we.have.designed.this.v
86740 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 68 ersion.of.the.GPL.to.prohibit.th
86760 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 20 e.practice.for.those.products...
86780 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 69 If.such.problems.arise.substanti
867a0 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 20 ally.in.other.domains,.we.stand.
867c0 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 74 ready.to.extend.this.provision.t
867e0 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 6f o.those.domains.in.future.versio
86800 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 ns.of.the.GPL,.as.needed.to.prot
86820 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 6e ect.the.freedom.of.users.....Fin
86840 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e 65 ally,.every.program.is.threatene
86860 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 73 d.constantly.by.software.patents
86880 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e 74 ..States.should.not.allow.patent
868a0 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 73 s.to.restrict.development.and.us
868c0 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 e.of.software.on.general-purpose
868e0 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 6f .computers,.but.in.those.that.do
86900 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 64 ,.we.wish.to.avoid.the.special.d
86920 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20 anger.that.patents.applied.to.a.
86940 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 63 free.program.could.make.it.effec
86960 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 20 tively.proprietary...To.prevent.
86980 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 6e this,.the.GPL.assures.that.paten
869a0 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20 ts.cannot.be.used.to.render.the.
869c0 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 65 program.non-free.....The.precise
869e0 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e .terms.and.conditions.for.copyin
86a00 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e g,.distribution.and.modification
86a20 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .follow.........................
86a40 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 69 .TERMS.AND.CONDITIONS....0..Defi
86a60 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69 73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 72 nitions....."This.License".refer
86a80 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 s.to.version.3.of.the.GNU.Genera
86aa0 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 22 l.Public.License....."Copyright"
86ac0 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 20 .also.means.copyright-like.laws.
86ae0 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f 72 that.apply.to.other.kinds.of.wor
86b00 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e ks,.such.as.semiconductor.masks.
86b20 0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 ...."The.Program".refers.to.any.
86b40 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 copyrightable.work.licensed.unde
86b60 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69 r.this.License...Each.licensee.i
86b80 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 65 s.addressed.as."you"..."Licensee
86ba0 73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 76 s".and."recipients".may.be.indiv
86bc0 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 22 iduals.or.organizations.....To."
86be0 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 6f modify".a.work.means.to.copy.fro
86c00 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f m.or.adapt.all.or.part.of.the.wo
86c20 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 69 rk.in.a.fashion.requiring.copyri
86c40 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 6d ght.permission,.other.than.the.m
86c60 61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 73 aking.of.an.exact.copy...The.res
86c80 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 65 ulting.work.is.called.a."modifie
86ca0 64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 6f d.version".of.the.earlier.work.o
86cc0 72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 20 r.a.work."based.on".the.earlier.
86ce0 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 20 work.....A."covered.work".means.
86d00 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f 72 either.the.unmodified.Program.or
86d20 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 .a.work.based.on.the.Program....
86d40 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 .To."propagate".a.work.means.to.
86d60 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f 75 do.anything.with.it.that,.withou
86d80 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 72 t.permission,.would.make.you.dir
86da0 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 0a ectly.or.secondarily.liable.for.
86dc0 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 6f infringement.under.applicable.co
86de0 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 74 pyright.law,.except.executing.it
86e00 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 72 .on.a.computer.or.modifying.a.pr
86e20 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 ivate.copy...Propagation.include
86e40 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f 72 s.copying,.distribution.(with.or
86e60 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 61 .without.modification),.making.a
86e80 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 73 vailable.to.the.public,.and.in.s
86ea0 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 61 ome.countries.other.activities.a
86ec0 73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d 65 s.well.....To."convey".a.work.me
86ee0 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 74 ans.any.kind.of.propagation.that
86f00 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 6f .enables.other.parties.to.make.o
86f20 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 74 r.receive.copies...Mere.interact
86f40 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20 74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 74 ion.with.a.user.through.a.comput
86f60 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 20 er.network,.with.no.transfer.of.
86f80 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e 20 a.copy,.is.not.conveying.....An.
86fa0 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 6c interactive.user.interface.displ
86fc0 61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 0a ays."Appropriate.Legal.Notices".
86fe0 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 to.the.extent.that.it.includes.a
87000 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 69 .convenient.and.prominently.visi
87020 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 6e ble.feature.that.(1).displays.an
87040 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 61 .appropriate.copyright.notice,.a
87060 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 65 nd.(2).tells.the.user.that.there
87080 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 78 .is.no.warranty.for.the.work.(ex
870a0 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 69 cept.to.the.extent.that.warranti
870c0 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 73 es.are.provided),.that.licensees
870e0 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 .may.convey.the.work.under.this.
87100 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 20 License,.and.how.to.view.a.copy.
87120 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 61 of.this.License...If.the.interfa
87140 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d 61 ce.presents.a.list.of.user.comma
87160 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c 20 nds.or.options,.such.as.a.menu,.
87180 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 65 a.prominent.item.in.the.list.mee
871a0 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 20 ts.this.criterion.....1..Source.
871c0 43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 61 Code.....The."source.code".for.a
871e0 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 6f .work.means.the.preferred.form.o
87200 66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 69 f.the.work.for.making.modificati
87220 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 20 ons.to.it..."Object.code".means.
87240 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a 0a any.non-source.form.of.a.work...
87260 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 61 ..A."Standard.Interface".means.a
87280 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f 66 n.interface.that.either.is.an.of
872a0 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 63 ficial.standard.defined.by.a.rec
872c0 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 74 ognized.standards.body,.or,.in.t
872e0 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20 he.case.of.interfaces.specified.
87300 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e for.a.particular.programming.lan
87320 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 61 guage,.one.that.is.widely.used.a
87340 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 20 mong.developers.working.in.that.
87360 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 language.....The."System.Librari
87380 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 64 es".of.an.executable.work.includ
873a0 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b 20 e.anything,.other.than.the.work.
873c0 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 64 as.a.whole,.that.(a).is.included
873e0 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e 67 .in.the.normal.form.of.packaging
87400 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 73 .a.Major.Component,.but.which.is
87420 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 6e .not.part.of.that.Major.Componen
87440 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c 65 t,.and.(b).serves.only.to.enable
87460 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f 72 .use.of.the.work.with.that.Major
87480 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 74 .Component,.or.to.implement.a.St
874a0 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 6d andard.Interface.for.which.an.im
874c0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 plementation.is.available.to.the
874e0 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 0a .public.in.source.code.form...A.
87500 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65 "Major.Component",.in.this.conte
87520 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d 70 xt,.means.a.major.essential.comp
87540 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 6e onent.(kernel,.window.system,.an
87560 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 69 d.so.on).of.the.specific.operati
87580 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 ng.system.(if.any).on.which.the.
875a0 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 69 executable.work.runs,.or.a.compi
875c0 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f 72 ler.used.to.produce.the.work,.or
875e0 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64 .an.object.code.interpreter.used
87600 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 6e .to.run.it.....The."Correspondin
87620 67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 g.Source".for.a.work.in.object.c
87640 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 6f ode.form.means.all.the.source.co
87660 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c 20 de.needed.to.generate,.install,.
87680 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 6e and.(for.an.executable.work).run
876a0 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 74 .the.object.code.and.to.modify.t
876c0 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 6f he.work,.including.scripts.to.co
876e0 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 72 ntrol.those.activities...However
87700 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 73 ,.it.does.not.include.the.work's
87720 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 75 .System.Libraries,.or.general-pu
87740 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 62 rpose.tools.or.generally.availab
87760 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 20 le.free.programs.which.are.used.
87780 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 61 unmodified.in.performing.those.a
877a0 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74 ctivities.but.which.are.not.part
877c0 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 72 .of.the.work...For.example,.Corr
877e0 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 66 esponding.Source.includes.interf
87800 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 ace.definition.files.associated.
87820 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c 20 with.source.files.for.the.work,.
87840 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 6c and.the.source.code.for.shared.l
87860 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 20 ibraries.and.dynamically.linked.
87880 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 65 subprograms.that.the.work.is.spe
878a0 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a 73 cifically.designed.to.require,.s
878c0 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 63 uch.as.by.intimate.data.communic
878e0 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 68 ation.or.control.flow.between.th
87900 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 20 ose.subprograms.and.other.parts.
87920 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e of.the.work.....The.Correspondin
87940 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 g.Source.need.not.include.anythi
87960 6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61 6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 74 ng.that.users.can.regenerate.aut
87980 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 omatically.from.other.parts.of.t
879a0 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 20 he.Corresponding.Source.....The.
879c0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b 20 Corresponding.Source.for.a.work.
879e0 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d 65 in.source.code.form.is.that.same
87a00 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e 0a .work.....2..Basic.Permissions..
87a20 0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 ...All.rights.granted.under.this
87a40 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 72 .License.are.granted.for.the.ter
87a60 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 61 m.of.copyright.on.the.Program,.a
87a80 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 nd.are.irrevocable.provided.the.
87aa0 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 73 stated.conditions.are.met...This
87ac0 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 72 .License.explicitly.affirms.your
87ae0 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 65 .unlimited.permission.to.run.the
87b00 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 74 .unmodified.Program...The.output
87b20 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 20 .from.running.a.covered.work.is.
87b40 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 20 covered.by.this.License.only.if.
87b60 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 63 the.output,.given.its.content,.c
87b80 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 73 onstitutes.a.covered.work...This
87ba0 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 74 .License.acknowledges.your.right
87bc0 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 6e s.of.fair.use.or.other.equivalen
87be0 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e t,.as.provided.by.copyright.law.
87c00 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 67 ....You.may.make,.run.and.propag
87c20 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e 6f ate.covered.works.that.you.do.no
87c40 74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f 20 t.convey,.without.conditions.so.
87c60 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 72 long.as.your.license.otherwise.r
87c80 65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 emains.in.force...You.may.convey
87ca0 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 65 .covered.works.to.others.for.the
87cc0 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 6b .sole.purpose.of.having.them.mak
87ce0 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 20 e.modifications.exclusively.for.
87d00 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 74 you,.or.provide.you.with.facilit
87d20 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 6f ies.for.running.those.works,.pro
87d40 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 74 vided.that.you.comply.with.the.t
87d60 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 6e erms.of.this.License.in.conveyin
87d80 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f 0a g.all.material.for.which.you.do.
87da0 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 68 not.control.copyright...Those.th
87dc0 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 us.making.or.running.the.covered
87de0 20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 73 .works.for.you.must.do.so.exclus
87e00 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 72 ively.on.your.behalf,.under.your
87e20 20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d 73 .direction.and.control,.on.terms
87e40 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 20 .that.prohibit.them.from.making.
87e60 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 6d any.copies.of.your.copyrighted.m
87e80 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 68 aterial.outside.their.relationsh
87ea0 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 ip.with.you.....Conveying.under.
87ec0 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d 69 any.other.circumstances.is.permi
87ee0 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 tted.solely.under.the.conditions
87f00 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 20 .stated.below...Sublicensing.is.
87f20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 74 not.allowed;.section.10.makes.it
87f40 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 55 .unnecessary.....3..Protecting.U
87f60 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 72 sers'.Legal.Rights.From.Anti-Cir
87f80 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f cumvention.Law.....No.covered.wo
87fa0 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66 rk.shall.be.deemed.part.of.an.ef
87fc0 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 6e fective.technological.measure.un
87fe0 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e der.any.applicable.law.fulfillin
88000 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 6f g.obligations.under.article.11.o
88020 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70 f.the.WIPO.copyright.treaty.adop
88040 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d 69 ted.on.20.December.1996,.or.simi
88060 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 74 lar.laws.prohibiting.or.restrict
88080 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 72 ing.circumvention.of.such.measur
880a0 65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 es.....When.you.convey.a.covered
880c0 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 72 .work,.you.waive.any.legal.power
880e0 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 .to.forbid.circumvention.of.tech
88100 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 nological.measures.to.the.extent
88120 20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 20 .such.circumvention.is.effected.
88140 62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 by.exercising.rights.under.this.
88160 4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 65 License.with.respect.to.the.cove
88180 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69 red.work,.and.you.disclaim.any.i
881a0 6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a 6d ntention.to.limit.operation.or.m
881c0 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61 odification.of.the.work.as.a.mea
881e0 6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f 72 ns.of.enforcing,.against.the.wor
88200 6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 73 k's.users,.your.or.third.parties
88220 27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d 76 '.legal.rights.to.forbid.circumv
88240 65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 ention.of.technological.measures
88260 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 65 .....4..Conveying.Verbatim.Copie
88280 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 6f s.....You.may.convey.verbatim.co
882a0 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f 64 pies.of.the.Program's.source.cod
882c0 65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 e.as.you.receive.it,.in.any.medi
882e0 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75 um,.provided.that.you.conspicuou
88300 73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e sly.and.appropriately.publish.on
88320 20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 .each.copy.an.appropriate.copyri
88340 67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 ght.notice;.keep.intact.all.noti
88360 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e ces.stating.that.this.License.an
88380 64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 64 d.any.non-permissive.terms.added
883a0 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 20 .in.accord.with.section.7.apply.
883c0 74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 to.the.code;.keep.intact.all.not
883e0 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 61 ices.of.the.absence.of.any.warra
88400 6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 63 nty;.and.give.all.recipients.a.c
88420 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 opy.of.this.License.along.with.t
88440 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 6e he.Program.....You.may.charge.an
88460 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f 70 y.price.or.no.price.for.each.cop
88480 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f y.that.you.convey,.and.you.may.o
884a0 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74 ffer.support.or.warranty.protect
884c0 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4d ion.for.a.fee.....5..Conveying.M
884e0 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 20 odified.Source.Versions.....You.
88500 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 may.convey.a.work.based.on.the.P
88520 72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a rogram,.or.the.modifications.to.
88540 70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20 produce.it.from.the.Program,.in.
88560 74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68 the.form.of.source.code.under.th
88580 65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 74 e.terms.of.section.4,.provided.t
885a0 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 63 hat.you.also.meet.all.of.these.c
885c0 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 onditions:......a).The.work.must
885e0 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e 67 .carry.prominent.notices.stating
88600 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 67 .that.you.modified.....it,.and.g
88620 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 54 iving.a.relevant.date.......b).T
88640 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 he.work.must.carry.prominent.not
88660 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c 65 ices.stating.that.it.is.....rele
88680 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 ased.under.this.License.and.any.
886a0 63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a 20 conditions.added.under.section..
886c0 20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73 ...7...This.requirement.modifies
886e0 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 6f .the.requirement.in.section.4.to
88700 0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e 0a ....."keep.intact.all.notices"..
88720 0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e 74 .....c).You.must.license.the.ent
88740 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 73 ire.work,.as.a.whole,.under.this
88760 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 73 .....License.to.anyone.who.comes
88780 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 69 .into.possession.of.a.copy...Thi
887a0 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 70 s.....License.will.therefore.app
887c0 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 65 ly,.along.with.any.applicable.se
887e0 63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 6f ction.7.....additional.terms,.to
88800 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c 20 .the.whole.of.the.work,.and.all.
88820 69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 its.parts,.....regardless.of.how
88840 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 .they.are.packaged...This.Licens
88860 65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 63 e.gives.no.....permission.to.lic
88880 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c 20 ense.the.work.in.any.other.way,.
888a0 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 73 but.it.does.not.....invalidate.s
888c0 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 72 uch.permission.if.you.have.separ
888e0 61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 68 ately.received.it.......d).If.th
88900 65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 e.work.has.interactive.user.inte
88920 72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 70 rfaces,.each.must.display.....Ap
88940 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 72 propriate.Legal.Notices;.however
88960 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 ,.if.the.Program.has.interactive
88980 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 70 .....interfaces.that.do.not.disp
889a0 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 79 lay.Appropriate.Legal.Notices,.y
889c0 6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d 20 our.....work.need.not.make.them.
889e0 64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 do.so.....A.compilation.of.a.cov
88a00 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 6e ered.work.with.other.separate.an
88a20 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e d.independent.works,.which.are.n
88a40 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66 ot.by.their.nature.extensions.of
88a60 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 65 .the.covered.work,.and.which.are
88a80 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f .not.combined.with.it.such.as.to
88aa0 20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f 6e .form.a.larger.program,.in.or.on
88ac0 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 .a.volume.of.a.storage.or.distri
88ae0 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 67 bution.medium,.is.called.an."agg
88b00 72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 69 regate".if.the.compilation.and.i
88b20 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a 75 ts.resulting.copyright.are.not.u
88b40 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 6c sed.to.limit.the.access.or.legal
88b60 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65 .rights.of.the.compilation's.use
88b80 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f rs.beyond.what.the.individual.wo
88ba0 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 rks.permit...Inclusion.of.a.cove
88bc0 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e 6f red.work.in.an.aggregate.does.no
88be0 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f t.cause.this.License.to.apply.to
88c00 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 .the.other.parts.of.the.aggregat
88c20 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 6f e.....6..Conveying.Non-Source.Fo
88c40 72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 rms.....You.may.convey.a.covered
88c60 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 20 .work.in.object.code.form.under.
88c80 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 70 the.terms.of.sections.4.and.5,.p
88ca0 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 65 rovided.that.you.also.convey.the
88cc0 0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 .machine-readable.Corresponding.
88ce0 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c Source.under.the.terms.of.this.L
88d00 69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a 20 icense,.in.one.of.these.ways:...
88d20 20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c ...a).Convey.the.object.code.in,
88d40 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 .or.embodied.in,.a.physical.prod
88d60 75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 uct.....(including.a.physical.di
88d80 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 stribution.medium),.accompanied.
88da0 62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 by.the.....Corresponding.Source.
88dc0 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69 fixed.on.a.durable.physical.medi
88de0 75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 um.....customarily.used.for.soft
88e00 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 79 ware.interchange.......b).Convey
88e20 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 .the.object.code.in,.or.embodied
88e40 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e 63 .in,.a.physical.product.....(inc
88e60 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d luding.a.physical.distribution.m
88e80 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 69 edium),.accompanied.by.a.....wri
88ea0 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 74 tten.offer,.valid.for.at.least.t
88ec0 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 20 hree.years.and.valid.for.as.....
88ee0 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f 72 long.as.you.offer.spare.parts.or
88f00 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 75 .customer.support.for.that.produ
88f20 63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 6f ct.....model,.to.give.anyone.who
88f40 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 65 .possesses.the.object.code.eithe
88f60 72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f r.(1).a.....copy.of.the.Correspo
88f80 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 72 nding.Source.for.all.the.softwar
88fa0 65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f 76 e.in.the.....product.that.is.cov
88fc0 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 62 ered.by.this.License,.on.a.durab
88fe0 6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 69 le.physical.....medium.customari
89000 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 ly.used.for.software.interchange
89020 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 79 ,.for.a.price.no.....more.than.y
89040 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c 6c our.reasonable.cost.of.physicall
89060 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 20 y.performing.this.....conveying.
89080 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 79 of.source,.or.(2).access.to.copy
890a0 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 72 .the.....Corresponding.Source.fr
890c0 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 65 om.a.network.server.at.no.charge
890e0 2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69 .......c).Convey.individual.copi
89100 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f 70 es.of.the.object.code.with.a.cop
89120 79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 72 y.of.the.....written.offer.to.pr
89140 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 ovide.the.Corresponding.Source..
89160 20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 64 .This.....alternative.is.allowed
89180 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72 .only.occasionally.and.noncommer
891a0 63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 65 cially,.and.....only.if.you.rece
891c0 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 61 ived.the.object.code.with.such.a
891e0 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 73 n.offer,.in.accord.....with.subs
89200 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 ection.6b.......d).Convey.the.ob
89220 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 6f ject.code.by.offering.access.fro
89240 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 73 m.a.designated.....place.(gratis
89260 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 75 .or.for.a.charge),.and.offer.equ
89280 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 ivalent.access.to.the.....Corres
892a0 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 ponding.Source.in.the.same.way.t
892c0 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 20 hrough.the.same.place.at.no.....
892e0 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65 further.charge...You.need.not.re
89300 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 20 quire.recipients.to.copy.the....
89320 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 68 .Corresponding.Source.along.with
89340 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20 .the.object.code...If.the.place.
89360 74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 61 to.....copy.the.object.code.is.a
89380 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 .network.server,.the.Correspondi
893a0 6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 72 ng.Source.....may.be.on.a.differ
893c0 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 61 ent.server.(operated.by.you.or.a
893e0 20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20 20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 .third.party).....that.supports.
89400 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 70 equivalent.copying.facilities,.p
89420 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 64 rovided.you.maintain.....clear.d
89440 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 irections.next.to.the.object.cod
89460 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 43 e.saying.where.to.find.the.....C
89480 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 73 orresponding.Source...Regardless
894a0 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 6f .of.what.server.hosts.the.....Co
894c0 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 6f rresponding.Source,.you.remain.o
894e0 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 bligated.to.ensure.that.it.is...
89500 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 65 ..available.for.as.long.as.neede
89520 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e d.to.satisfy.these.requirements.
89540 0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 ......e).Convey.the.object.code.
89560 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 2c using.peer-to-peer.transmission,
89580 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 70 .provided.....you.inform.other.p
895a0 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 43 eers.where.the.object.code.and.C
895c0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 orresponding.....Source.of.the.w
895e0 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 6e ork.are.being.offered.to.the.gen
89600 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e 64 eral.public.at.no.....charge.und
89620 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c 65 er.subsection.6d.....A.separable
89640 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 6f .portion.of.the.object.code,.who
89660 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d 20 se.source.code.is.excluded.from.
89680 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 79 the.Corresponding.Source.as.a.Sy
896a0 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 64 stem.Library,.need.not.be.includ
896c0 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 ed.in.conveying.the.object.code.
896e0 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72 20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 74 work.....A."User.Product".is.eit
89700 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 68 her.(1).a."consumer.product",.wh
89720 69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c 20 ich.means.any.tangible.personal.
89740 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 20 property.which.is.normally.used.
89760 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61 6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 6f for.personal,.family,.or.househo
89780 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73 ld.purposes,.or.(2).anything.des
897a0 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 0a igned.or.sold.for.incorporation.
897c0 69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 into.a.dwelling...In.determining
897e0 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 .whether.a.product.is.a.consumer
89800 20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 62 .product,.doubtful.cases.shall.b
89820 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 2e e.resolved.in.favor.of.coverage.
89840 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 69 ..For.a.particular.product.recei
89860 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d 61 ved.by.a.particular.user,."norma
89880 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f 72 lly.used".refers.to.a.typical.or
898a0 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 6f .common.use.of.that.class.of.pro
898c0 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a 6f duct,.regardless.of.the.status.o
898e0 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 20 f.the.particular.user.or.of.the.
89900 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 way.in.which.the.particular.user
89920 0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73 .actually.uses,.or.expects.or.is
89940 20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20 .expected.to.use,.the.product...
89960 41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 20 A.product.is.a.consumer.product.
89980 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63 regardless.of.whether.the.produc
899a0 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 6e t.has.substantial.commercial,.in
899c0 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 75 dustrial.or.non-consumer.uses,.u
899e0 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f 6e nless.such.uses.represent.the.on
89a00 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 68 ly.significant.mode.of.use.of.th
89a20 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f e.product....."Installation.Info
89a40 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 6e rmation".for.a.User.Product.mean
89a60 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f s.any.methods,.procedures,.autho
89a80 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 rization.keys,.or.other.informat
89aa0 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 63 ion.required.to.install.and.exec
89ac0 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72 ute.modified.versions.of.a.cover
89ae0 65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 6f ed.work.in.that.User.Product.fro
89b00 6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72 m.a.modified.version.of.its.Corr
89b20 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 esponding.Source...The.informati
89b40 6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 on.must.suffice.to.ensure.that.t
89b60 68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 20 he.continued.functioning.of.the.
89b80 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 61 modified.object.code.is.in.no.ca
89ba0 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 20 se.prevented.or.interfered.with.
89bc0 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 20 solely.because.modification.has.
89be0 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 6f been.made.....If.you.convey.an.o
89c00 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 bject.code.work.under.this.secti
89c20 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 on.in,.or.with,.or.specifically.
89c40 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20 for.use.in,.a.User.Product,.and.
89c60 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 20 the.conveying.occurs.as.part.of.
89c80 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74 a.transaction.in.which.the.right
89ca0 20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 73 .of.possession.and.use.of.the.Us
89cc0 65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 er.Product.is.transferred.to.the
89ce0 20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 20 .recipient.in.perpetuity.or.for.
89d00 61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20 a.fixed.term.(regardless.of.how.
89d20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 64 the.transaction.is.characterized
89d40 29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 ),.the.Corresponding.Source.conv
89d60 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 eyed.under.this.section.must.be.
89d80 61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 accompanied.by.the.Installation.
89da0 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 Information...But.this.requireme
89dc0 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75 nt.does.not.apply.if.neither.you
89de0 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 65 .nor.any.third.party.retains.the
89e00 20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 6a .ability.to.install.modified.obj
89e20 65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 6f ect.code.on.the.User.Product.(fo
89e40 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e 73 r.example,.the.work.has.been.ins
89e60 74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d 65 talled.in.ROM).....The.requireme
89e80 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 nt.to.provide.Installation.Infor
89ea0 6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 72 mation.does.not.include.a.requir
89ec0 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 70 ement.to.continue.to.provide.sup
89ee0 70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 74 port.service,.warranty,.or.updat
89f00 65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 es.for.a.work.that.has.been.modi
89f20 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 65 fied.or.installed.by.the.recipie
89f40 6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 77 nt,.or.for.the.User.Product.in.w
89f60 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 hich.it.has.been.modified.or.ins
89f80 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 79 talled...Access.to.a.network.may
89fa0 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e .be.denied.when.the.modification
89fc0 20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c 79 .itself.materially.and.adversely
89fe0 20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 .affects.the.operation.of.the.ne
8a000 74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 0a twork.or.violates.the.rules.and.
8a020 70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f protocols.for.communication.acro
8a040 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 ss.the.network.....Corresponding
8a060 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 69 .Source.conveyed,.and.Installati
8a080 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 6f on.Information.provided,.in.acco
8a0a0 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e 20 rd.with.this.section.must.be.in.
8a0c0 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d 65 a.format.that.is.publicly.docume
8a0e0 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e nted.(and.with.an.implementation
8a100 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 72 .available.to.the.public.in.sour
8a120 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20 ce.code.form),.and.must.require.
8a140 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a 75 no.special.password.or.key.for.u
8a160 6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 20 npacking,.reading.or.copying....
8a180 20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 69 .7..Additional.Terms....."Additi
8a1a0 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74 onal.permissions".are.terms.that
8a1c0 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c 69 .supplement.the.terms.of.this.Li
8a1e0 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d 20 cense.by.making.exceptions.from.
8a200 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 41 one.or.more.of.its.conditions..A
8a220 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 dditional.permissions.that.are.a
8a240 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d 20 pplicable.to.the.entire.Program.
8a260 73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 20 shall.be.treated.as.though.they.
8a280 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 were.included.in.this.License,.t
8a2a0 6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64 o.the.extent.that.they.are.valid
8a2c0 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74 .under.applicable.law...If.addit
8a2e0 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 ional.permissions.apply.only.to.
8a300 70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 6d part.of.the.Program,.that.part.m
8a320 61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f 73 ay.be.used.separately.under.thos
8a340 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 e.permissions,.but.the.entire.Pr
8a360 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 4c ogram.remains.governed.by.this.L
8a380 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 64 icense.without.regard.to.the.add
8a3a0 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 itional.permissions.....When.you
8a3c0 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b .convey.a.copy.of.a.covered.work
8a3e0 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 20 ,.you.may.at.your.option.remove.
8a400 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d 20 any.additional.permissions.from.
8a420 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a 69 that.copy,.or.from.any.part.of.i
8a440 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20 t...(Additional.permissions.may.
8a460 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a be.written.to.require.their.own.
8a480 72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f removal.in.certain.cases.when.yo
8a4a0 75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61 u.modify.the.work.)..You.may.pla
8a4c0 63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74 ce.additional.permissions.on.mat
8a4e0 65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64 erial,.added.by.you.to.a.covered
8a500 20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 6e .work,.for.which.you.have.or.can
8a520 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d .give.appropriate.copyright.perm
8a540 69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f ission.....Notwithstanding.any.o
8a560 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 ther.provision.of.this.License,.
8a580 66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 for.material.you.add.to.a.covere
8a5a0 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 62 d.work,.you.may.(if.authorized.b
8a5c0 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 20 y.the.copyright.holders.of.that.
8a5e0 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f material).supplement.the.terms.o
8a600 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 20 f.this.License.with.terms:......
8a620 61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74 a).Disclaiming.warranty.or.limit
8a640 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 74 ing.liability.differently.from.t
8a660 68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20 he.....terms.of.sections.15.and.
8a680 31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 52 16.of.this.License;.or......b).R
8a6a0 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69 equiring.preservation.of.specifi
8a6c0 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a 20 ed.reasonable.legal.notices.or..
8a6e0 20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 6d ...author.attributions.in.that.m
8a700 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 aterial.or.in.the.Appropriate.Le
8a720 67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f 72 gal.....Notices.displayed.by.wor
8a740 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 6f ks.containing.it;.or......c).Pro
8a760 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 hibiting.misrepresentation.of.th
8a780 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 20 e.origin.of.that.material,.or...
8a7a0 20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f ..requiring.that.modified.versio
8a7c0 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 6e ns.of.such.material.be.marked.in
8a7e0 0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 6e .....reasonable.ways.as.differen
8a800 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 0a t.from.the.original.version;.or.
8a820 0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 62 .....d).Limiting.the.use.for.pub
8a840 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 65 licity.purposes.of.names.of.lice
8a860 6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 65 nsors.or.....authors.of.the.mate
8a880 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29 20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 72 rial;.or......e).Declining.to.gr
8a8a0 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 66 ant.rights.under.trademark.law.f
8a8c0 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c 20 or.use.of.some.....trade.names,.
8a8e0 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f 72 trademarks,.or.service.marks;.or
8a900 0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 69 ......f).Requiring.indemnificati
8a920 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 74 on.of.licensors.and.authors.of.t
8a940 68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 hat.....material.by.anyone.who.c
8a960 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64 onveys.the.material.(or.modified
8a980 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 61 .versions.of.....it).with.contra
8a9a0 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74 ctual.assumptions.of.liability.t
8a9c0 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 61 o.the.recipient,.for.....any.lia
8a9e0 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 73 bility.that.these.contractual.as
8aa00 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 20 sumptions.directly.impose.on....
8aa20 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a 20 .those.licensors.and.authors....
8aa40 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 69 .All.other.non-permissive.additi
8aa60 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 68 onal.terms.are.considered."furth
8aa80 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 6e er.restrictions".within.the.mean
8aaa0 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 ing.of.section.10...If.the.Progr
8aac0 61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61 am.as.you.received.it,.or.any.pa
8aae0 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74 rt.of.it,.contains.a.notice.stat
8ab00 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 ing.that.it.is.governed.by.this.
8ab20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69 License.along.with.a.term.that.i
8ab40 73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 79 s.a.further.restriction,.you.may
8ab60 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 65 .remove.that.term...If.a.license
8ab80 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 73 .document.contains.a.further.res
8aba0 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e 67 triction.but.permits.relicensing
8abc0 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 .or.conveying.under.this.License
8abe0 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 ,.you.may.add.to.a.covered.work.
8ac00 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a 6f material.governed.by.the.terms.o
8ac20 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 65 f.that.license.document,.provide
8ac40 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64 d.that.the.further.restriction.d
8ac60 6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67 oes.not.survive.such.relicensing
8ac80 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 72 .or.conveying.....If.you.add.ter
8aca0 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77 ms.to.a.covered.work.in.accord.w
8acc0 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 65 ith.this.section,.you.must.place
8ace0 2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 ,.in.the.relevant.source.files,.
8ad00 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 a.statement.of.the.additional.te
8ad20 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 6f rms.that.apply.to.those.files,.o
8ad40 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 66 r.a.notice.indicating.where.to.f
8ad60 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 64 ind.the.applicable.terms.....Add
8ad80 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f 6e itional.terms,.permissive.or.non
8ada0 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 68 -permissive,.may.be.stated.in.th
8adc0 65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 6c e.form.of.a.separately.written.l
8ade0 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 3b icense,.or.stated.as.exceptions;
8ae00 0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69 .the.above.requirements.apply.ei
8ae20 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 20 ther.way.....8..Termination.....
8ae40 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 You.may.not.propagate.or.modify.
8ae60 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 a.covered.work.except.as.express
8ae80 6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 ly.provided.under.this.License..
8aea0 20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67 .Any.attempt.otherwise.to.propag
8aec0 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 69 ate.or.modify.it.is.void,.and.wi
8aee0 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 ll.automatically.terminate.your.
8af00 72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c 75 rights.under.this.License.(inclu
8af20 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 64 ding.any.patent.licenses.granted
8af40 20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 65 .under.the.third.paragraph.of.se
8af60 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65 ction.11).....However,.if.you.ce
8af80 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 ase.all.violation.of.this.Licens
8afa0 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 e,.then.your.license.from.a.part
8afc0 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 icular.copyright.holder.is.reins
8afe0 74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20 tated.(a).provisionally,.unless.
8b000 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 and.until.the.copyright.holder.e
8b020 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 73 xplicitly.and.finally.terminates
8b040 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74 .your.license,.and.(b).permanent
8b060 6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 6c ly,.if.the.copyright.holder.fail
8b080 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e s.to.notify.you.of.the.violation
8b0a0 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 20 .by.some.reasonable.means.prior.
8b0c0 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e 0a to.60.days.after.the.cessation..
8b0e0 0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 ...Moreover,.your.license.from.a
8b100 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 0a .particular.copyright.holder.is.
8b120 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f reinstated.permanently.if.the.co
8b140 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74 pyright.holder.notifies.you.of.t
8b160 68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 he.violation.by.some.reasonable.
8b180 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f means,.this.is.the.first.time.yo
8b1a0 75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 u.have.received.notice.of.violat
8b1c0 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 ion.of.this.License.(for.any.wor
8b1e0 6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61 k).from.that.copyright.holder,.a
8b200 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20 nd.you.cure.the.violation.prior.
8b220 74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f 66 to.30.days.after.your.receipt.of
8b240 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 79 .the.notice.....Termination.of.y
8b260 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 6f our.rights.under.this.section.do
8b280 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f 66 es.not.terminate.the.licenses.of
8b2a0 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 65 .parties.who.have.received.copie
8b2c0 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 20 s.or.rights.from.you.under.this.
8b2e0 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65 License...If.your.rights.have.be
8b300 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 6c en.terminated.and.not.permanentl
8b320 79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79 y.reinstated,.you.do.not.qualify
8b340 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 65 .to.receive.new.licenses.for.the
8b360 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e .same.material.under.section.10.
8b380 0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66 ....9..Acceptance.Not.Required.f
8b3a0 6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 or.Having.Copies.....You.are.not
8b3c0 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .required.to.accept.this.License
8b3e0 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 6f .in.order.to.receive.or.run.a.co
8b400 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 72 py.of.the.Program...Ancillary.pr
8b420 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 75 opagation.of.a.covered.work.occu
8b440 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 rring.solely.as.a.consequence.of
8b460 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e .using.peer-to-peer.transmission
8b480 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 73 .to.receive.a.copy.likewise.does
8b4a0 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 65 .not.require.acceptance...Howeve
8b4c0 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 6e r,.nothing.other.than.this.Licen
8b4e0 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70 se.grants.you.permission.to.prop
8b500 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b agate.or.modify.any.covered.work
8b520 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69 ...These.actions.infringe.copyri
8b540 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 ght.if.you.do.not.accept.this.Li
8b560 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20 cense...Therefore,.by.modifying.
8b580 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 or.propagating.a.covered.work,.y
8b5a0 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 74 ou.indicate.your.acceptance.of.t
8b5c0 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 74 his.License.to.do.so.....10..Aut
8b5e0 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 52 omatic.Licensing.of.Downstream.R
8b600 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e 76 ecipients.....Each.time.you.conv
8b620 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 ey.a.covered.work,.the.recipient
8b640 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e 73 .automatically.receives.a.licens
8b660 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 74 e.from.the.original.licensors,.t
8b680 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 74 o.run,.modify.and.propagate.that
8b6a0 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 .work,.subject.to.this.License..
8b6c0 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e 66 .You.are.not.responsible.for.enf
8b6e0 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69 orcing.compliance.by.third.parti
8b700 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e 74 es.with.this.License.....An."ent
8b720 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f ity.transaction".is.a.transactio
8b740 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 67 n.transferring.control.of.an.org
8b760 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c 20 anization,.or.substantially.all.
8b780 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 6e assets.of.one,.or.subdividing.an
8b7a0 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e 69 .organization,.or.merging.organi
8b7c0 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f zations...If.propagation.of.a.co
8b7e0 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 74 vered.work.results.from.an.entit
8b800 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 61 y.transaction,.each.party.to.tha
8b820 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f 70 t.transaction.who.receives.a.cop
8b840 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 74 y.of.the.work.also.receives.what
8b860 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61 ever.licenses.to.the.work.the.pa
8b880 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61 rty's.predecessor.in.interest.ha
8b8a0 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 6f d.or.could.give.under.the.previo
8b8c0 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 6f us.paragraph,.plus.a.right.to.po
8b8e0 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f ssession.of.the.Corresponding.So
8b900 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 63 urce.of.the.work.from.the.predec
8b920 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 63 essor.in.interest,.if.the.predec
8b940 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 20 essor.has.it.or.can.get.it.with.
8b960 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6e reasonable.efforts.....You.may.n
8b980 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f ot.impose.any.further.restrictio
8b9a0 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 73 ns.on.the.exercise.of.the.rights
8b9c0 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 .granted.or.affirmed.under.this.
8b9e0 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a 6e License...For.example,.you.may.n
8ba00 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 79 ot.impose.a.license.fee,.royalty
8ba20 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 6f ,.or.other.charge.for.exercise.o
8ba40 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 f.rights.granted.under.this.Lice
8ba60 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c 69 nse,.and.you.may.not.initiate.li
8ba80 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 69 tigation.(including.a.cross-clai
8baa0 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 20 m.or.counterclaim.in.a.lawsuit).
8bac0 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 69 alleging.that.any.patent.claim.i
8bae0 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 65 s.infringed.by.making,.using,.se
8bb00 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d 70 lling,.offering.for.sale,.or.imp
8bb20 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 6f orting.the.Program.or.any.portio
8bb40 6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 63 n.of.it.....11..Patents.....A."c
8bb60 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 ontributor".is.a.copyright.holde
8bb80 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 0a r.who.authorizes.use.under.this.
8bba0 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b License.of.the.Program.or.a.work
8bbc0 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e 20 .on.which.the.Program.is.based..
8bbe0 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c 65 .The.work.thus.licensed.is.calle
8bc00 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f 72 d.the.contributor's."contributor
8bc20 20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 65 .version".....A.contributor's."e
8bc40 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c 20 ssential.patent.claims".are.all.
8bc60 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c 65 patent.claims.owned.or.controlle
8bc80 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 6c d.by.the.contributor,.whether.al
8bca0 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 75 ready.acquired.or.hereafter.acqu
8bcc0 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 79 ired,.that.would.be.infringed.by
8bce0 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 20 .some.manner,.permitted.by.this.
8bd00 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 65 License,.of.making,.using,.or.se
8bd20 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a 62 lling.its.contributor.version,.b
8bd40 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f ut.do.not.include.claims.that.wo
8bd60 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 65 uld.be.infringed.only.as.a.conse
8bd80 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f quence.of.further.modification.o
8bda0 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 0a f.the.contributor.version...For.
8bdc0 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 6f purposes.of.this.definition,."co
8bde0 6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 61 ntrol".includes.the.right.to.gra
8be00 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e 65 nt.patent.sublicenses.in.a.manne
8be20 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e r.consistent.with.the.requiremen
8be40 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e 74 ts.of.this.License.....Each.cont
8be60 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 69 ributor.grants.you.a.non-exclusi
8be80 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 65 ve,.worldwide,.royalty-free.pate
8bea0 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 nt.license.under.the.contributor
8bec0 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a 6d 's.essential.patent.claims,.to.m
8bee0 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20 ake,.use,.sell,.offer.for.sale,.
8bf00 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79 import.and.otherwise.run,.modify
8bf20 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 .and.propagate.the.contents.of.i
8bf40 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 68 ts.contributor.version.....In.th
8bf60 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 20 e.following.three.paragraphs,.a.
8bf80 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 0a "patent.license".is.any.express.
8bfa0 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 72 agreement.or.commitment,.however
8bfc0 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70 .denominated,.not.to.enforce.a.p
8bfe0 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 73 atent.(such.as.an.express.permis
8c000 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76 sion.to.practice.a.patent.or.cov
8c020 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72 enant.not.to.sue.for.patent.infr
8c040 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22 67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 61 ingement)...To."grant".such.a.pa
8c060 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 6f tent.license.to.a.party.means.to
8c080 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 .make.such.an.agreement.or.commi
8c0a0 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 67 tment.not.to.enforce.a.patent.ag
8c0c0 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 ainst.the.party.....If.you.conve
8c0e0 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 y.a.covered.work,.knowingly.rely
8c100 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 65 ing.on.a.patent.license,.and.the
8c120 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 .Corresponding.Source.of.the.wor
8c140 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 6f k.is.not.available.for.anyone.to
8c160 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 20 .copy,.free.of.charge.and.under.
8c180 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75 the.terms.of.this.License,.throu
8c1a0 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20 gh.a.publicly.available.network.
8c1c0 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62 server.or.other.readily.accessib
8c1e0 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28 le.means,.then.you.must.either.(
8c200 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 1).cause.the.Corresponding.Sourc
8c220 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 72 e.to.be.so.available,.or.(2).arr
8c240 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 20 ange.to.deprive.yourself.of.the.
8c260 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 6f benefit.of.the.patent.license.fo
8c280 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 61 r.this.particular.work,.or.(3).a
8c2a0 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 77 rrange,.in.a.manner.consistent.w
8c2c0 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63 ith.the.requirements.of.this.Lic
8c2e0 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e ense,.to.extend.the.patent.licen
8c300 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 4b se.to.downstream.recipients..."K
8c320 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 65 nowingly.relying".means.you.have
8c340 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20 .actual.knowledge.that,.but.for.
8c360 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69 the.patent.license,.your.conveyi
8c380 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 79 ng.the.covered.work.in.a.country
8c3a0 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 65 ,.or.your.recipient's.use.of.the
8c3c0 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 6c .covered.work.in.a.country,.woul
8c3e0 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 61 d.infringe.one.or.more.identifia
8c400 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 74 ble.patents.in.that.country.that
8c420 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20 .you.have.reason.to.believe.are.
8c440 76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e 20 valid.....If,.pursuant.to.or.in.
8c460 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 connection.with.a.single.transac
8c480 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 2c tion.or.arrangement,.you.convey,
8c4a0 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 65 .or.propagate.by.procuring.conve
8c4c0 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72 yance.of,.a.covered.work,.and.gr
8c4e0 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20 ant.a.patent.license.to.some.of.
8c500 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 the.parties.receiving.the.covere
8c520 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c 20 d.work.authorizing.them.to.use,.
8c540 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 70 propagate,.modify.or.convey.a.sp
8c560 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c ecific.copy.of.the.covered.work,
8c580 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 61 .then.the.patent.license.you.gra
8c5a0 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f 20 nt.is.automatically.extended.to.
8c5c0 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 6f all.recipients.of.the.covered.wo
8c5e0 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 70 rk.and.works.based.on.it.....A.p
8c600 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 atent.license.is."discriminatory
8c620 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e 0a ".if.it.does.not.include.within.
8c640 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 69 the.scope.of.its.coverage,.prohi
8c660 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e 64 bits.the.exercise.of,.or.is.cond
8c680 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 6f itioned.on.the.non-exercise.of.o
8c6a0 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 72 ne.or.more.of.the.rights.that.ar
8c6c0 65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 e.specifically.granted.under.thi
8c6e0 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 61 s.License...You.may.not.convey.a
8c700 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 79 .covered.work.if.you.are.a.party
8c720 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 20 .to.an.arrangement.with.a.third.
8c740 70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f 66 party.that.is.in.the.business.of
8c760 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68 .distributing.software,.under.wh
8c780 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 72 ich.you.make.payment.to.the.thir
8c7a0 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 79 d.party.based.on.the.extent.of.y
8c7c0 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 6f our.activity.of.conveying.the.wo
8c7e0 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 61 rk,.and.under.which.the.third.pa
8c800 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 65 rty.grants,.to.any.of.the.partie
8c820 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 20 s.who.would.receive.the.covered.
8c840 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 0a work.from.you,.a.discriminatory.
8c860 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e patent.license.(a).in.connection
8c880 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b .with.copies.of.the.covered.work
8c8a0 0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 65 .conveyed.by.you.(or.copies.made
8c8c0 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d .from.those.copies),.or.(b).prim
8c8e0 61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 arily.for.and.in.connection.with
8c900 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f .specific.products.or.compilatio
8c920 6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b ns.that.contain.the.covered.work
8c940 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 61 ,.unless.you.entered.into.that.a
8c960 72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 6e rrangement,.or.that.patent.licen
8c980 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 63 se.was.granted,.prior.to.28.Marc
8c9a0 68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e h.2007.....Nothing.in.this.Licen
8c9c0 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 69 se.shall.be.construed.as.excludi
8c9e0 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 6e ng.or.limiting.any.implied.licen
8ca00 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 65 se.or.other.defenses.to.infringe
8ca20 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 6c ment.that.may.otherwise.be.avail
8ca40 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 74 able.to.you.under.applicable.pat
8ca60 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 20 ent.law.....12..No.Surrender.of.
8ca80 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f 6e Others'.Freedom.....If.condition
8caa0 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 79 s.are.imposed.on.you.(whether.by
8cac0 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 72 .court.order,.agreement.or.other
8cae0 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 74 wise).that.contradict.the.condit
8cb00 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e 6f ions.of.this.License,.they.do.no
8cb20 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 t.excuse.you.from.the.conditions
8cb40 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f 74 .of.this.License...If.you.cannot
8cb60 20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f 20 .convey.a.covered.work.so.as.to.
8cb80 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c 69 satisfy.simultaneously.your.obli
8cba0 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 gations.under.this.License.and.a
8cbc0 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c 20 ny.other.pertinent.obligations,.
8cbe0 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e 6f then.as.a.consequence.you.may.no
8cc00 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 t.convey.it.at.all...For.example
8cc20 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 6c ,.if.you.agree.to.terms.that.obl
8cc40 69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 66 igate.you.to.collect.a.royalty.f
8cc60 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 20 or.further.conveying.from.those.
8cc80 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 to.whom.you.convey.the.Program,.
8cca0 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 62 the.only.way.you.could.satisfy.b
8ccc0 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 oth.those.terms.and.this.License
8cce0 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 72 .would.be.to.refrain.entirely.fr
8cd00 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 2e om.conveying.the.Program.....13.
8cd20 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c .Use.with.the.GNU.Affero.General
8cd40 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 .Public.License.....Notwithstand
8cd60 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 ing.any.other.provision.of.this.
8cd80 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 License,.you.have.permission.to.
8cda0 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b link.or.combine.any.covered.work
8cdc0 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 73 .with.a.work.licensed.under.vers
8cde0 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 ion.3.of.the.GNU.Affero.General.
8ce00 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f 6d Public.License.into.a.single.com
8ce20 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 65 bined.work,.and.to.convey.the.re
8ce40 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 sulting.work...The.terms.of.this
8ce60 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 20 .License.will.continue.to.apply.
8ce80 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 64 to.the.part.which.is.the.covered
8cea0 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d 65 .work,.but.the.special.requireme
8cec0 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 nts.of.the.GNU.Affero.General.Pu
8cee0 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 72 blic.License,.section.13,.concer
8cf00 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 6f ning.interaction.through.a.netwo
8cf20 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e rk.will.apply.to.the.combination
8cf40 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f 6e .as.such.....14..Revised.Version
8cf60 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 53 s.of.this.License.....The.Free.S
8cf80 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 72 oftware.Foundation.may.publish.r
8cfa0 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 68 evised.and/or.new.versions.of.th
8cfc0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 6f e.GNU.General.Public.License.fro
8cfe0 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 6f m.time.to.time...Such.new.versio
8d000 6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 ns.will.be.similar.in.spirit.to.
8d020 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 66 the.present.version,.but.may.dif
8d040 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f fer.in.detail.to.address.new.pro
8d060 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 69 blems.or.concerns.....Each.versi
8d080 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72 on.is.given.a.distinguishing.ver
8d0a0 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 65 sion.number...If.the.Program.spe
8d0c0 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 76 cifies.that.a.certain.numbered.v
8d0e0 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 ersion.of.the.GNU.General.Public
8d100 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 20 .License."or.any.later.version".
8d120 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 69 applies.to.it,.you.have.the.opti
8d140 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f on.of.following.the.terms.and.co
8d160 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 64 nditions.either.of.that.numbered
8d180 0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e .version.or.of.any.later.version
8d1a0 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a .published.by.the.Free.Software.
8d1c0 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 73 Foundation...If.the.Program.does
8d1e0 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 .not.specify.a.version.number.of
8d200 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c .the.GNU.General.Public.License,
8d220 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72 .you.may.choose.any.version.ever
8d240 20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 .published.by.the.Free.Software.
8d260 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 70 Foundation.....If.the.Program.sp
8d280 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 20 ecifies.that.a.proxy.can.decide.
8d2a0 77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e 55 which.future.versions.of.the.GNU
8d2c0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 75 .General.Public.License.can.be.u
8d2e0 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d 65 sed,.that.proxy's.public.stateme
8d300 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 65 nt.of.acceptance.of.a.version.pe
8d320 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f 6f rmanently.authorizes.you.to.choo
8d340 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 2e se.that.version.for.the.Program.
8d360 0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 67 ....Later.license.versions.may.g
8d380 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 0a ive.you.additional.or.different.
8d3a0 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 69 permissions...However,.no.additi
8d3c0 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 onal.obligations.are.imposed.on.
8d3e0 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 61 any.author.or.copyright.holder.a
8d400 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 66 s.a.result.of.your.choosing.to.f
8d420 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 69 ollow.a.later.version.....15..Di
8d440 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 49 sclaimer.of.Warranty.....THERE.I
8d460 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 54 S.NO.WARRANTY.FOR.THE.PROGRAM,.T
8d480 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 43 O.THE.EXTENT.PERMITTED.BY.APPLIC
8d4a0 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 45 ABLE.LAW...EXCEPT.WHEN.OTHERWISE
8d4c0 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 .STATED.IN.WRITING.THE.COPYRIGHT
8d4e0 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 52 .HOLDERS.AND/OR.OTHER.PARTIES.PR
8d500 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f 55 OVIDE.THE.PROGRAM."AS.IS".WITHOU
8d520 54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 45 T.WARRANTY.OF.ANY.KIND,.EITHER.E
8d540 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 XPRESSED.OR.IMPLIED,.INCLUDING,.
8d560 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 20 BUT.NOT.LIMITED.TO,.THE.IMPLIED.
8d580 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e WARRANTIES.OF.MERCHANTABILITY.AN
8d5a0 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 0a 50 55 52 50 4f D.FITNESS.FOR.A.PARTICULAR.PURPO
8d5c0 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 51 SE...THE.ENTIRE.RISK.AS.TO.THE.Q
8d5e0 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 52 UALITY.AND.PERFORMANCE.OF.THE.PR
8d600 4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 50 OGRAM.IS.WITH.YOU...SHOULD.THE.P
8d620 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 55 ROGRAM.PROVE.DEFECTIVE,.YOU.ASSU
8d640 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 52 ME.THE.COST.OF.ALL.NECESSARY.SER
8d660 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a 20 VICING,.REPAIR.OR.CORRECTION....
8d680 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a 20 .16..Limitation.of.Liability....
8d6a0 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 20 .IN.NO.EVENT.UNLESS.REQUIRED.BY.
8d6c0 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 57 APPLICABLE.LAW.OR.AGREED.TO.IN.W
8d6e0 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 RITING.WILL.ANY.COPYRIGHT.HOLDER
8d700 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 45 ,.OR.ANY.OTHER.PARTY.WHO.MODIFIE
8d720 53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 20 S.AND/OR.CONVEYS.THE.PROGRAM.AS.
8d740 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 4f PERMITTED.ABOVE,.BE.LIABLE.TO.YO
8d760 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 4e U.FOR.DAMAGES,.INCLUDING.ANY.GEN
8d780 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f 4e ERAL,.SPECIAL,.INCIDENTAL.OR.CON
8d7a0 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 4f SEQUENTIAL.DAMAGES.ARISING.OUT.O
8d7c0 46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 48 F.THE.USE.OR.INABILITY.TO.USE.TH
8d7e0 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d E.PROGRAM.(INCLUDING.BUT.NOT.LIM
8d800 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 49 ITED.TO.LOSS.OF.DATA.OR.DATA.BEI
8d820 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 53 NG.RENDERED.INACCURATE.OR.LOSSES
8d840 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 49 .SUSTAINED.BY.YOU.OR.THIRD.PARTI
8d860 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 54 ES.OR.A.FAILURE.OF.THE.PROGRAM.T
8d880 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 4d O.OPERATE.WITH.ANY.OTHER.PROGRAM
8d8a0 53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 52 S),.EVEN.IF.SUCH.HOLDER.OR.OTHER
8d8c0 20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 .PARTY.HAS.BEEN.ADVISED.OF.THE.P
8d8e0 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 31 OSSIBILITY.OF.SUCH.DAMAGES.....1
8d900 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 35 7..Interpretation.of.Sections.15
8d920 20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 66 .and.16.....If.the.disclaimer.of
8d940 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 62 .warranty.and.limitation.of.liab
8d960 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 67 ility.provided.above.cannot.be.g
8d980 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 6e iven.local.legal.effect.accordin
8d9a0 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72 g.to.their.terms,.reviewing.cour
8d9c0 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f ts.shall.apply.local.law.that.mo
8d9e0 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f 6c st.closely.approximates.an.absol
8da00 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74 ute.waiver.of.all.civil.liabilit
8da20 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 6d y.in.connection.with.the.Program
8da40 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f ,.unless.a.warranty.or.assumptio
8da60 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f 70 n.of.liability.accompanies.a.cop
8da80 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61 y.of.the.Program.in.return.for.a
8daa0 20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 20 .fee........................END.
8dac0 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 20 OF.TERMS.AND.CONDITIONS.........
8dae0 20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f .....How.to.Apply.These.Terms.to
8db00 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 76 .Your.New.Programs....If.you.dev
8db20 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 elop.a.new.program,.and.you.want
8db40 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 62 .it.to.be.of.the.greatest.possib
8db60 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 77 le.use.to.the.public,.the.best.w
8db80 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 74 ay.to.achieve.this.is.to.make.it
8dba0 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 61 .free.software.which.everyone.ca
8dbc0 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 20 n.redistribute.and.change.under.
8dbe0 74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 68 these.terms.....To.do.so,.attach
8dc00 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 72 .the.following.notices.to.the.pr
8dc20 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 74 ogram...It.is.safest.to.attach.t
8dc40 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 20 hem.to.the.start.of.each.source.
8dc60 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 74 file.to.most.effectively.state.t
8dc80 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 61 he.exclusion.of.warranty;.and.ea
8dca0 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 65 ch.file.should.have.at.least.the
8dcc0 20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 ."copyright".line.and.a.pointer.
8dce0 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 6e to.where.the.full.notice.is.foun
8dd00 64 2e 0a 0a 20 20 20 20 3c 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 72 d.......<one.line.to.give.the.pr
8dd20 6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f 66 ogram's.name.and.a.brief.idea.of
8dd40 20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 3e 0a 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 .what.it.does.>.....Copyright.(C
8dd60 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 3e 0a 0a 20 20 20 20 ).<year>..<name.of.author>......
8dd80 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 This.program.is.free.software:.y
8dda0 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f ou.can.redistribute.it.and/or.mo
8ddc0 64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 dify.....it.under.the.terms.of.t
8dde0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 he.GNU.General.Public.License.as
8de00 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 .published.by.....the.Free.Softw
8de20 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 are.Foundation,.either.version.3
8de40 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 72 .of.the.License,.or.....(at.your
8de60 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 .option).any.later.version......
8de80 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 .This.program.is.distributed.in.
8dea0 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c the.hope.that.it.will.be.useful,
8dec0 0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 .....but.WITHOUT.ANY.WARRANTY;.w
8dee0 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 ithout.even.the.implied.warranty
8df00 20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 .of.....MERCHANTABILITY.or.FITNE
8df20 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 SS.FOR.A.PARTICULAR.PURPOSE...Se
8df40 65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 e.the.....GNU.General.Public.Lic
8df60 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 20 59 6f 75 20 ense.for.more.details.......You.
8df80 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 should.have.received.a.copy.of.t
8dfa0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 20 he.GNU.General.Public.License...
8dfc0 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e ..along.with.this.program...If.n
8dfe0 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 ot,.see.<http://www.gnu.org/lice
8e000 6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e nses/>...Also.add.information.on
8e020 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f 6e 69 .how.to.contact.you.by.electroni
8e040 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 6f 67 c.and.paper.mail.....If.the.prog
8e060 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 6d ram.does.terminal.interaction,.m
8e080 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c 69 6b ake.it.output.a.short.notice.lik
8e0a0 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e 74 65 e.this.when.it.starts.in.an.inte
8e0c0 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 3c 70 72 6f 67 72 61 6d 3e 20 20 43 6f ractive.mode:......<program>..Co
8e0e0 70 79 72 69 67 68 74 20 28 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 pyright.(C).<year>..<name.of.aut
8e100 68 6f 72 3e 0a 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68 hor>.....This.program.comes.with
8e120 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74 .ABSOLUTELY.NO.WARRANTY;.for.det
8e140 61 69 6c 73 20 74 79 70 65 20 60 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 ails.type.`show.w'......This.is.
8e160 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f free.software,.and.you.are.welco
8e180 6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 72 20 me.to.redistribute.it.....under.
8e1a0 63 65 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 20 63 certain.conditions;.type.`show.c
8e1c0 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 6c '.for.details...The.hypothetical
8e1e0 20 63 6f 6d 6d 61 6e 64 73 20 60 73 68 6f 77 20 77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 27 20 .commands.`show.w'.and.`show.c'.
8e200 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 72 74 should.show.the.appropriate.part
8e220 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e s.of.the.General.Public.License.
8e240 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d 6d ..Of.course,.your.program's.comm
8e260 61 6e 64 73 0a 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 47 ands.might.be.different;.for.a.G
8e280 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e 20 22 UI.interface,.you.would.use.an."
8e2a0 61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 67 about.box".....You.should.also.g
8e2c0 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 61 73 et.your.employer.(if.you.work.as
8e2e0 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 6e 79 .a.programmer).or.school,.if.any
8e300 2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65 ,.to.sign.a."copyright.disclaime
8e320 72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79 r".for.the.program,.if.necessary
8e340 2e 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20 ..For.more.information.on.this,.
8e360 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 and.how.to.apply.and.follow.the.
8e380 47 4e 55 20 47 50 4c 2c 20 73 65 65 0a 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 GNU.GPL,.see.<http://www.gnu.org
8e3a0 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 /licenses/>.....The.GNU.General.
8e3c0 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69 Public.License.does.not.permit.i
8e3e0 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 6f 20 70 ncorporating.your.program.into.p
8e400 72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72 roprietary.programs...If.your.pr
8e420 6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 20 6c 69 62 72 61 72 79 2c 20 79 ogram.is.a.subroutine.library,.y
8e440 6f 75 0a 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74 ou.may.consider.it.more.useful.t
8e460 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 20 61 70 70 o.permit.linking.proprietary.app
8e480 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 0a 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 lications.with.the.library...If.
8e4a0 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65 this.is.what.you.want.to.do,.use
8e4c0 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 20 4c .the.GNU.Lesser.General.Public.L
8e4e0 69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 icense.instead.of.this.License..
8e500 20 42 75 74 20 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 0a 3c 68 74 74 70 3a 2f 2f .But.first,.please.read.<http://
8e520 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c 6f 73 6f 70 68 79 2f 77 68 79 2d 6e 6f 74 2d 6c www.gnu.org/philosophy/why-not-l
8e540 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 gpl.html>.......................
8e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e600 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74 js2-mode-20231224/js2-old-indent
8e620 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.............................
8e640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8e680 30 30 36 35 35 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 32 34 00 20 30 00 00 00 0065563.00000000000.015124..0...
8e6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8e720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8e740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e800 3b 3b 3b 20 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74 2e 65 6c 20 2d 2d 2d 20 49 6e 64 65 6e 74 ;;;.js2-old-indent.el.---.Indent
8e820 61 74 69 6f 6e 20 63 6f 64 65 20 6b 65 70 74 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 ation.code.kept.for.compatibilit
8e840 79 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a y..-*-.lexical-binding:.t;.-*-..
8e860 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 35 20 20 46 72 65 65 20 53 6f 66 74 ;;.Copyright.(C).2015..Free.Soft
8e880 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 ware.Foundation,.Inc...;;.This.f
8e8a0 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 47 4e ile.is.part.of.GNU.Emacs...;;.GN
8e8c0 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 U.Emacs.is.free.software:.you.ca
8e8e0 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a n.redistribute.it.and/or.modify.
8e900 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 ;;.it.under.the.terms.of.the.GNU
8e920 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 .General.Public.License.as.publi
8e940 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 shed.by.;;.the.Free.Software.Fou
8e960 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 ndation,.either.version.3.of.the
8e980 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 .License,.or.;;.(at.your.option)
8e9a0 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 .any.later.version...;;.GNU.Emac
8e9c0 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 s.is.distributed.in.the.hope.tha
8e9e0 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
8ea00 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
8ea20 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
8ea40 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
8ea60 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
8ea80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
8eaa0 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 etails...;;.You.should.have.rece
8eac0 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
8eae0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 ublic.License.;;.along.with.GNU.
8eb00 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e Emacs...If.not,.see.<http://www.
8eb20 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 gnu.org/licenses/>...;;;.Comment
8eb40 61 72 79 3a 0a 0a 3b 3b 20 41 6c 6c 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 68 69 73 20 69 6e ary:..;;.All.features.of.this.in
8eb60 64 65 6e 74 61 74 69 6f 6e 20 63 6f 64 65 20 68 61 76 65 20 62 65 65 6e 20 70 6f 72 74 65 64 20 dentation.code.have.been.ported.
8eb80 74 6f 20 45 6d 61 63 73 27 73 0a 3b 3b 20 62 75 69 6c 74 2d 69 6e 20 60 6a 73 2d 6d 6f 64 65 27 to.Emacs's.;;.built-in.`js-mode'
8eba0 20 62 79 20 6e 6f 77 2c 20 73 6f 20 77 65 20 64 65 72 69 76 65 20 66 72 6f 6d 20 69 74 2e 20 20 .by.now,.so.we.derive.from.it...
8ebc0 41 6e 20 6f 6c 64 65 72 0a 3b 3b 20 63 6f 6d 6d 65 6e 74 61 72 79 20 66 6f 6c 6c 6f 77 73 2e 0a An.older.;;.commentary.follows..
8ebe0 0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 69 73 20 6b 65 70 74 20 66 6f 72 20 45 6d 61 63 73 20 .;;.This.code.is.kept.for.Emacs.
8ec00 32 34 2e 35 20 61 6e 64 20 65 61 6c 69 65 72 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 6e 64 65 6e 74 24.5.and.ealier...;;.This.indent
8ec20 65 72 20 69 73 20 62 61 73 65 64 20 6f 6e 20 4b 61 72 6c 20 4c 61 6e 64 73 74 72 c3 b6 6d 27 73 er.is.based.on.Karl.Landstr..m's
8ec40 20 22 6a 61 76 61 73 63 72 69 70 74 2e 65 6c 22 20 69 6e 64 65 6e 74 65 72 2e 0a 3b 3b 20 4b 61 ."javascript.el".indenter..;;.Ka
8ec60 72 6c 20 63 6c 65 76 65 72 6c 79 20 64 65 64 75 63 65 73 20 74 68 61 74 20 74 68 65 20 64 65 73 rl.cleverly.deduces.that.the.des
8ec80 69 72 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 65 6c 20 69 73 20 6f 66 74 65 6e 20 ired.indentation.level.is.often.
8eca0 61 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 70 61 72 65 6e 2f 62 72 61 63 6b 65 74 2f 62 a.;;.function.of.paren/bracket/b
8ecc0 72 61 63 65 20 6e 65 73 74 69 6e 67 20 64 65 70 74 68 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 race.nesting.depth,.which.can.be
8ece0 20 64 65 74 65 72 6d 69 6e 65 64 0a 3b 3b 20 71 75 69 63 6b 6c 79 20 76 69 61 20 74 68 65 20 62 .determined.;;.quickly.via.the.b
8ed00 75 69 6c 74 2d 69 6e 20 60 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 27 20 66 75 6e uilt-in.`parse-partial-sexp'.fun
8ed20 63 74 69 6f 6e 2e 20 20 48 69 73 20 69 6e 64 65 6e 74 65 72 0a 3b 3b 20 74 68 65 6e 20 64 6f 65 ction...His.indenter.;;.then.doe
8ed40 73 20 73 6f 6d 65 20 65 71 75 61 6c 6c 79 20 63 6c 65 76 65 72 20 63 68 65 63 6b 73 20 74 6f 20 s.some.equally.clever.checks.to.
8ed60 73 65 65 20 69 66 20 77 65 27 72 65 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 66 20 61 see.if.we're.in.the.context.of.a
8ed80 0a 3b 3b 20 73 75 62 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 61 20 70 6f 73 73 69 62 6c 79 20 62 .;;.substatement.of.a.possibly.b
8eda0 72 61 63 65 6c 65 73 73 20 73 74 61 74 65 6d 65 6e 74 20 6b 65 79 77 6f 72 64 20 73 75 63 68 20 raceless.statement.keyword.such.
8edc0 61 73 20 69 66 2c 20 77 68 69 6c 65 2c 0a 3b 3b 20 6f 72 20 66 69 6e 61 6c 6c 79 2e 20 20 54 68 as.if,.while,.;;.or.finally...Th
8ede0 69 73 20 61 70 70 72 6f 61 63 68 20 79 69 65 6c 64 73 20 70 72 65 74 74 79 20 67 6f 6f 64 20 72 is.approach.yields.pretty.good.r
8ee00 65 73 75 6c 74 73 2e 0a 0a 3b 3b 20 54 68 65 20 69 6e 64 65 6e 74 65 72 20 69 73 20 6f 66 74 65 esults...;;.The.indenter.is.ofte
8ee20 6e 20 22 77 72 6f 6e 67 22 2c 20 68 6f 77 65 76 65 72 2c 20 61 6e 64 20 6e 65 65 64 73 20 74 6f n."wrong",.however,.and.needs.to
8ee40 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 3b 3b 20 54 68 65 20 72 69 67 68 74 20 6c 6f 6e .be.overridden..;;.The.right.lon
8ee60 67 2d 74 65 72 6d 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 70 72 6f 62 61 62 6c 79 20 74 6f 20 65 g-term.solution.is.probably.to.e
8ee80 6d 75 6c 61 74 65 20 28 6f 72 20 69 6e 74 65 67 72 61 74 65 0a 3b 3b 20 77 69 74 68 29 20 63 63 mulate.(or.integrate.;;.with).cc
8eea0 2d 65 6e 67 69 6e 65 2c 20 62 75 74 20 69 74 27 73 20 61 20 6e 6f 6e 74 72 69 76 69 61 6c 20 61 -engine,.but.it's.a.nontrivial.a
8eec0 6d 6f 75 6e 74 20 6f 66 20 63 6f 64 69 6e 67 2e 20 20 45 76 65 6e 20 77 68 65 6e 20 61 0a 3b 3b mount.of.coding...Even.when.a.;;
8eee0 20 70 61 72 73 65 20 74 72 65 65 20 66 72 6f 6d 20 60 6a 73 32 2d 70 61 72 73 65 27 20 69 73 20 .parse.tree.from.`js2-parse'.is.
8ef00 70 72 65 73 65 6e 74 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 74 72 75 65 20 61 74 20 74 68 present,.which.is.not.true.at.th
8ef20 65 0a 3b 3b 20 6d 6f 6d 65 6e 74 20 74 68 65 20 75 73 65 72 20 69 73 20 74 79 70 69 6e 67 2c 20 e.;;.moment.the.user.is.typing,.
8ef40 63 6f 6d 70 75 74 69 6e 67 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 69 73 20 73 74 69 6c 6c 20 74 computing.indentation.is.still.t
8ef60 68 6f 75 73 61 6e 64 73 0a 3b 3b 20 6f 66 20 6c 69 6e 65 73 20 6f 66 20 63 6f 64 65 20 74 6f 20 housands.;;.of.lines.of.code.to.
8ef80 68 61 6e 64 6c 65 20 65 76 65 72 79 20 70 6f 73 73 69 62 6c 65 20 73 79 6e 74 61 63 74 69 63 20 handle.every.possible.syntactic.
8efa0 65 64 67 65 20 63 61 73 65 2e 0a 0a 3b 3b 20 49 6e 20 74 68 65 20 6d 65 61 6e 74 69 6d 65 2c 20 edge.case...;;.In.the.meantime,.
8efc0 74 68 65 20 63 6f 6d 70 72 6f 6d 69 73 65 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 74 68 61 74 20 the.compromise.solution.is.that.
8efe0 77 65 20 6f 66 66 65 72 20 61 20 22 62 6f 75 6e 63 65 0a 3b 3b 20 69 6e 64 65 6e 74 65 72 22 2c we.offer.a."bounce.;;.indenter",
8f000 20 63 6f 6e 66 69 67 75 72 65 64 20 77 69 74 68 20 60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 .configured.with.`js2-bounce-ind
8f020 65 6e 74 2d 70 27 2c 20 77 68 69 63 68 20 63 79 63 6c 65 73 20 74 68 65 0a 3b 3b 20 63 75 72 72 ent-p',.which.cycles.the.;;.curr
8f040 65 6e 74 20 6c 69 6e 65 20 69 6e 64 65 6e 74 20 61 6d 6f 6e 67 20 76 61 72 69 6f 75 73 20 6c 69 ent.line.indent.among.various.li
8f060 6b 65 6c 79 20 67 75 65 73 73 20 70 6f 69 6e 74 73 2e 20 20 54 68 69 73 20 61 70 70 72 6f 61 63 kely.guess.points...This.approac
8f080 68 0a 3b 3b 20 69 73 20 66 61 72 20 66 72 6f 6d 20 70 65 72 66 65 63 74 2c 20 62 75 74 20 73 68 h.;;.is.far.from.perfect,.but.sh
8f0a0 6f 75 6c 64 20 61 74 20 6c 65 61 73 74 20 6d 61 6b 65 20 69 74 20 73 6c 69 67 68 74 6c 79 20 65 ould.at.least.make.it.slightly.e
8f0c0 61 73 69 65 72 20 74 6f 0a 3b 3b 20 6d 6f 76 65 20 74 68 65 20 6c 69 6e 65 20 74 6f 77 61 72 64 asier.to.;;.move.the.line.toward
8f0e0 73 20 69 74 73 20 64 65 73 69 72 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 77 68 65 6e 20 6d s.its.desired.indentation.when.m
8f100 61 6e 75 61 6c 6c 79 0a 3b 3b 20 6f 76 65 72 72 69 64 69 6e 67 20 4b 61 72 6c 27 73 20 68 65 75 anually.;;.overriding.Karl's.heu
8f120 72 69 73 74 69 63 20 6e 65 73 74 69 6e 67 20 67 75 65 73 73 65 72 2e 0a 0a 3b 3b 20 49 27 76 65 ristic.nesting.guesser...;;.I've
8f140 20 6d 61 64 65 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 74 77 65 61 6b 73 20 74 6f 20 4b 61 .made.miscellaneous.tweaks.to.Ka
8f160 72 6c 27 73 20 63 6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 73 6f 6d 65 20 45 63 6d 61 0a 3b 3b rl's.code.to.handle.some.Ecma.;;
8f180 20 65 78 74 65 6e 73 69 6f 6e 73 20 73 75 63 68 20 61 73 20 60 6c 65 74 27 20 61 6e 64 20 41 72 .extensions.such.as.`let'.and.Ar
8f1a0 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 2e 20 20 4d 61 6a 6f 72 20 6b 75 64 6f 73 ray.comprehensions...Major.kudos
8f1c0 20 74 6f 0a 3b 3b 20 4b 61 72 6c 20 66 6f 72 20 63 6f 6d 69 6e 67 20 75 70 20 77 69 74 68 20 74 .to.;;.Karl.for.coming.up.with.t
8f1e0 68 65 20 69 6e 69 74 69 61 6c 20 61 70 70 72 6f 61 63 68 2c 20 77 68 69 63 68 20 70 61 63 6b 73 he.initial.approach,.which.packs
8f200 20 61 20 6c 6f 74 20 6f 66 0a 3b 3b 20 70 75 6e 63 68 20 66 6f 72 20 73 6f 20 6c 69 74 74 6c 65 .a.lot.of.;;.punch.for.so.little
8f220 20 63 6f 64 65 2e 20 2d 2d 20 53 74 65 76 65 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 .code..--.Steve..;;;.Code:..(req
8f240 75 69 72 65 20 27 73 67 6d 6c 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6c 61 uire.'sgml-mode)..(defvar.js2-la
8f260 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 nguage-version)..(declare-functi
8f280 6f 6e 20 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 20 22 6a 73 32 2d 6d 6f 64 65 22 29 0a on.js2-backward-sws."js2-mode").
8f2a0 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 (declare-function.js2-forward-sw
8f2c0 73 20 22 6a 73 32 2d 6d 6f 64 65 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 s."js2-mode").(declare-function.
8f2e0 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 22 6a 73 32 2d 6d 6f 64 65 22 29 0a 0a 28 64 65 66 63 js2-same-line."js2-mode")..(defc
8f300 75 73 74 6f 6d 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 20 28 69 66 20 28 61 6e 64 20 ustom.js2-basic-offset.(if.(and.
8f320 28 62 6f 75 6e 64 70 20 27 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 (boundp.'c-basic-offset)........
8f340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e ..............................(n
8f360 75 6d 62 65 72 70 20 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 umberp.c-basic-offset)).........
8f380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 2d 62 61 73 69 63 2d ........................c-basic-
8f3a0 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 offset..........................
8f3c0 20 20 20 20 20 34 29 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 73 70 61 63 65 73 20 74 6f 20 69 .....4)..."Number.of.spaces.to.i
8f3e0 6e 64 65 6e 74 20 6e 65 73 74 65 64 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 53 69 6d 69 6c 61 72 ndent.nested.statements..Similar
8f400 20 74 6f 20 60 63 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 .to.`c-basic-offset'."...:group.
8f420 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 73 61 66 65 20 27 69 6e 74 65 67 65 72 70 0a 20 20 3a 74 'js2-mode...:safe.'integerp...:t
8f440 79 70 65 20 27 69 6e 74 65 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 70 72 ype.'integer)..(defcustom.js2-pr
8f460 65 74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 0a 20 20 etty-multiline-declarations.t...
8f480 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 6c 69 6e 65 20 75 70 20 6d 75 6c 74 69 6c 69 6e 65 20 64 65 "Non-nil.to.line.up.multiline.de
8f4a0 63 6c 61 72 61 74 69 6f 6e 73 20 76 65 72 74 69 63 61 6c 6c 79 3a 0a 0a 20 20 76 61 72 20 61 20 clarations.vertically:....var.a.
8f4c0 3d 20 31 30 2c 0a 20 20 20 20 20 20 62 20 3d 20 32 30 2c 0a 20 20 20 20 20 20 63 20 3d 20 33 30 =.10,.......b.=.20,.......c.=.30
8f4e0 3b 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 74 2c 20 61 6e 64 20 74 68 65 20 66 69 ;..If.the.value.is.t,.and.the.fi
8f500 72 73 74 20 61 73 73 69 67 6e 65 64 20 76 61 6c 75 65 20 69 6e 20 74 68 65 0a 64 65 63 6c 61 72 rst.assigned.value.in.the.declar
8f520 61 74 69 6f 6e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2f 61 72 72 61 79 2f 6f 62 6a 65 63 74 ation.is.a.function/array/object
8f540 20 6c 69 74 65 72 61 6c 20 73 70 61 6e 6e 69 6e 67 20 73 65 76 65 72 61 6c 0a 6c 69 6e 65 73 2c .literal.spanning.several.lines,
8f560 20 69 74 20 77 6f 6e 27 74 20 62 65 20 69 6e 64 65 6e 74 65 64 20 61 64 64 69 74 69 6f 6e 61 6c .it.won't.be.indented.additional
8f580 6c 79 3a 0a 0a 20 20 76 61 72 20 6f 20 3d 20 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ly:....var.o.=.{................
8f5a0 20 20 20 76 61 72 20 62 61 72 20 3d 20 32 2c 0a 20 20 20 20 66 6f 6f 3a 20 33 20 20 20 20 20 20 ...var.bar.=.2,.....foo:.3......
8f5c0 20 20 20 20 76 73 2e 20 20 20 20 20 20 20 20 20 20 20 6f 20 3d 20 7b 0a 20 20 7d 2c 20 20 20 20 ....vs............o.=.{...},....
8f5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 6f 3a ............................foo:
8f600 20 33 0a 20 20 20 20 20 20 62 61 72 20 3d 20 32 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .3.......bar.=.2;...............
8f620 20 20 20 20 20 7d 3b 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 60 61 6c 6c 27 2c 20 .....};..If.the.value.is.`all',.
8f640 69 74 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 65 20 69 6e 64 65 6e 74 65 64 20 61 64 64 69 74 it.will.always.be.indented.addit
8f660 69 6f 6e 61 6c 6c 79 3a 0a 0a 20 20 76 61 72 20 6f 20 3d 20 7b 0a 20 20 20 20 20 20 20 20 66 6f ionally:....var.o.=.{.........fo
8f680 6f 3a 20 33 0a 20 20 20 20 20 20 7d 3b 0a 0a 20 20 76 61 72 20 6f 20 3d 20 7b 0a 20 20 20 20 20 o:.3.......};....var.o.=.{......
8f6a0 20 20 20 66 6f 6f 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 62 61 72 20 3d 20 32 ...foo:.3.......},.......bar.=.2
8f6c0 3b 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 60 64 79 6e 61 6d 69 63 27 2c 20 69 74 ;..If.the.value.is.`dynamic',.it
8f6e0 20 77 69 6c 6c 20 62 65 20 69 6e 64 65 6e 74 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 6f .will.be.indented.additionally.o
8f700 6e 6c 79 0a 69 66 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 20 nly.if.the.declaration.contains.
8f720 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 76 61 72 69 61 62 6c 65 3a 0a 0a 20 20 76 61 72 20 6f more.than.one.variable:....var.o
8f740 20 3d 20 7b 0a 20 20 20 20 66 6f 6f 3a 20 33 0a 20 20 7d 3b 0a 0a 20 20 76 61 72 20 6f 20 3d 20 .=.{.....foo:.3...};....var.o.=.
8f760 7b 0a 20 20 20 20 20 20 20 20 66 6f 6f 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 {.........foo:.3.......},.......
8f780 62 61 72 20 3d 20 32 3b 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a bar.=.2;"...:group.'js2-mode...:
8f7a0 73 61 66 65 20 20 27 73 79 6d 62 6f 6c 70 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a safe..'symbolp...:type.'symbol).
8f7c0 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 73 77 69 74 63 68 2d 62 6f .(defcustom.js2-indent-switch-bo
8f7e0 64 79 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e 69 6c 2c 20 63 61 73 65 20 6c 61 62 65 6c 73 20 dy.nil..."When.nil,.case.labels.
8f800 61 72 65 20 69 6e 64 65 6e 74 65 64 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 6c 65 76 65 6c 20 61 are.indented.on.the.same.level.a
8f820 73 20 74 68 65 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e s.the.containing.switch.statemen
8f840 74 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 61 6c 6c 20 6c 69 6e 65 73 20 69 6e 73 69 64 65 0a t...Otherwise,.all.lines.inside.
8f860 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 20 62 6f 64 79 20 61 72 65 20 69 6e 64 65 6e 74 switch.statement.body.are.indent
8f880 65 64 20 6f 6e 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6c 65 76 65 6c 2e 22 0a 20 20 3a 74 79 70 ed.one.additional.level."...:typ
8f8a0 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 73 61 66 65 20 27 62 6f 6f 6c 65 61 6e 70 0a 20 20 3a e.'boolean...:safe.'booleanp...:
8f8c0 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d group.'js2-mode)..(defconst.js2-
8f8e0 70 6f 73 73 69 62 6c 79 2d 62 72 61 63 65 6c 65 73 73 2d 6b 65 79 77 6f 72 64 73 2d 72 65 0a 20 possibly-braceless-keywords-re..
8f900 20 28 63 6f 6e 63 61 74 20 22 65 6c 73 65 5b 20 5c 74 5d 2b 69 66 5c 5c 7c 66 6f 72 5b 20 5c 74 .(concat."else[.\t]+if\\|for[.\t
8f920 5d 2b 65 61 63 68 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 ]+each\\|"...........(regexp-opt
8f940 20 27 28 22 63 61 74 63 68 22 20 22 64 6f 22 20 22 65 6c 73 65 22 20 22 66 69 6e 61 6c 6c 79 22 .'("catch"."do"."else"."finally"
8f960 20 22 66 6f 72 22 20 22 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."for"."if".....................
8f980 20 20 20 20 22 74 72 79 22 20 22 77 68 69 6c 65 22 20 22 77 69 74 68 22 20 22 6c 65 74 22 29 29 ...."try"."while"."with"."let"))
8f9a0 29 0a 20 20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 61 74 63 68 69 6e 67 )..."Regular.expression.matching
8f9c0 20 6b 65 79 77 6f 72 64 73 20 74 68 61 74 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 0a 66 6f .keywords.that.are.optionally.fo
8f9e0 6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 6f 70 65 6e 69 6e 67 20 62 72 61 63 65 2e 22 29 0a 0a 28 llowed.by.an.opening.brace.")..(
8fa00 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72 2d 72 65 0a defconst.js2-indent-operator-re.
8fa20 20 20 28 63 6f 6e 63 61 74 20 22 5b 2d 2b 2a 2f 25 3c 3e 26 5e 7c 3f 3a 2e 5d 5c 5c 28 5b 5e 2d ..(concat."[-+*/%<>&^|?:.]\\([^-
8fa40 2b 2a 2f 2e 5d 5c 5c 7c 24 5c 5c 29 5c 5c 7c 21 3f 3d 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 +*/.]\\|$\\)\\|!?=\\|"..........
8fa60 20 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 22 69 6e 22 20 22 69 6e 73 74 61 6e 63 65 6f 66 22 .(regexp-opt.'("in"."instanceof"
8fa80 29 20 27 73 79 6d 62 6f 6c 73 29 29 0a 20 20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 ).'symbols))..."Regular.expressi
8faa0 6f 6e 20 6d 61 74 63 68 69 6e 67 20 6f 70 65 72 61 74 6f 72 73 20 74 68 61 74 20 61 66 66 65 63 on.matching.operators.that.affec
8fac0 74 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 6f 66 20 63 6f 6e 74 69 6e 75 65 64 20 65 78 70 72 65 t.indentation.of.continued.expre
8fae0 73 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 64 65 63 6c 61 72 61 ssions.")..(defconst.js2-declara
8fb00 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 0a 20 20 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 tion-keyword-re...(regexp-opt.'(
8fb20 22 76 61 72 22 20 22 6c 65 74 22 20 22 63 6f 6e 73 74 22 29 20 27 73 79 6d 62 6f 6c 73 29 0a 20 "var"."let"."const").'symbols)..
8fb40 20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 61 74 63 68 69 6e 67 20 76 61 ."Regular.expression.matching.va
8fb60 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6b 65 79 77 6f 72 64 73 2e 22 29 0a 0a riable.declaration.keywords.")..
8fb80 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e (defun.js2-re-search-forward-inn
8fba0 65 72 20 28 72 65 67 65 78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 63 6f 75 6e 74 er.(regexp.&optional.bound.count
8fbc0 29 0a 20 20 22 41 75 78 69 6c 69 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 6a 73 32 )..."Auxiliary.function.for.`js2
8fbe0 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 27 2e 22 0a 20 20 28 6c 65 74 20 28 70 61 -re-search-forward'."...(let.(pa
8fc00 72 73 65 20 73 61 76 65 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 63 rse.saved-point).....(while.(>.c
8fc20 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 ount.0).......(re-search-forward
8fc40 20 72 65 67 65 78 70 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 73 65 .regexp.bound).......(setq.parse
8fc60 20 28 69 66 20 73 61 76 65 64 2d 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(if.saved-point................
8fc80 20 20 20 20 20 20 20 28 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 20 73 61 76 65 64 .......(parse-partial-sexp.saved
8fca0 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -point.(point)).................
8fcc0 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 73 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 ....(syntax-ppss.(point)))).....
8fce0 20 20 28 63 6f 6e 64 20 28 28 6e 74 68 20 33 20 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 ..(cond.((nth.3.parse)..........
8fd00 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 ....(re-search-forward..........
8fd20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 5c 5c 3d 5c 5c 7c 5b 5e 5c 5c 5d 5c 5c 7c 5e .....(concat."\\(\\=\\|[^\\]\\|^
8fd40 5c 5c 29 22 20 28 73 74 72 69 6e 67 20 28 6e 74 68 20 33 20 70 61 72 73 65 29 29 29 0a 20 20 20 \\)".(string.(nth.3.parse)))....
8fd60 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 65 6e 64 2d ...........(save-excursion.(end-
8fd80 6f 66 2d 6c 69 6e 65 29 20 28 70 6f 69 6e 74 29 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 of-line).(point)).t))...........
8fda0 20 20 28 28 6e 74 68 20 37 20 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 ..((nth.7.parse)..............(f
8fdc0 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 orward-line)).............((or.(
8fde0 6e 74 68 20 34 20 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 nth.4.parse)..................(a
8fe00 6e 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c 2f 29 20 28 65 71 20 28 63 nd.(eq.(char-before).?\/).(eq.(c
8fe20 68 61 72 2d 61 66 74 65 72 29 20 3f 5c 2a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 har-after).?\*)))..............(
8fe40 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 2a 2f 22 29 29 0a 20 20 20 20 20 re-search-forward."\\*/"))......
8fe60 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 .......(t..............(setq.cou
8fe80 6e 74 20 28 31 2d 20 63 6f 75 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 61 76 nt.(1-.count)))).......(setq.sav
8fea0 65 64 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a ed-point.(point))))...(point))..
8fec0 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 72 65 (defun.js2-re-search-forward.(re
8fee0 67 65 78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 6e 6f 65 72 72 6f 72 20 63 6f 75 gexp.&optional.bound.noerror.cou
8ff00 6e 74 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f 72 77 61 72 64 20 62 75 74 20 69 67 6e 6f 72 65 nt)..."Search.forward.but.ignore
8ff20 20 73 74 72 69 6e 67 73 20 61 6e 64 20 63 6f 6d 6d 65 6e 74 73 2e 0a 49 6e 76 6f 6b 65 73 20 60 .strings.and.comments..Invokes.`
8ff40 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 27 20 62 75 74 20 74 72 65 61 74 73 20 74 68 re-search-forward'.but.treats.th
8ff60 65 20 62 75 66 66 65 72 20 61 73 20 69 66 20 73 74 72 69 6e 67 73 0a 61 6e 64 20 63 6f 6d 6d 65 e.buffer.as.if.strings.and.comme
8ff80 6e 74 73 20 68 61 76 65 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 nts.have.been.removed."...(let.(
8ffa0 28 73 61 76 65 64 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 (saved-point.(point))).....(cond
8ffc0 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e ition-case.err.........(cond.((n
8ffe0 75 6c 6c 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 ull.count)................(js2-r
90000 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62 6f e-search-forward-inner.regexp.bo
90020 75 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 und.1))...............((<.count.
90040 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 0)................(js2-re-search
90060 2d 62 61 63 6b 77 61 72 64 2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62 6f 75 6e 64 20 28 2d 20 -backward-inner.regexp.bound.(-.
90080 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74 count)))...............((>.count
900a0 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 .0)................(js2-re-searc
900c0 68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62 6f 75 6e 64 20 63 6f 75 h-forward-inner.regexp.bound.cou
900e0 6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 61 69 6c 65 64 0a 20 20 20 20 20 nt))).......(search-failed......
90100 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 61 76 65 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 ..(goto-char.saved-point).......
90120 20 28 75 6e 6c 65 73 73 20 6e 6f 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 .(unless.noerror..........(error
90140 20 28 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 2d 73 74 72 69 6e 67 20 65 72 72 29 29 29 29 29 29 .(error-message-string.err))))))
90160 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 )..(defun.js2-re-search-backward
90180 2d 69 6e 6e 65 72 20 28 72 65 67 65 78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 63 -inner.(regexp.&optional.bound.c
901a0 6f 75 6e 74 29 0a 20 20 22 41 75 78 69 6c 69 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 ount)..."Auxiliary.function.for.
901c0 60 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 27 2e 22 0a 20 20 28 6c 65 `js2-re-search-backward'."...(le
901e0 74 20 28 70 61 72 73 65 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 63 6f 75 6e 74 20 30 29 t.(parse).....(while.(>.count.0)
90200 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 72 65 67 65 78 .......(re-search-backward.regex
90220 70 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 73 65 20 28 73 79 6e 74 p.bound).......(setq.parse.(synt
90240 61 78 2d 70 70 73 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 ax-ppss.(point))).......(cond.((
90260 6e 74 68 20 33 20 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 nth.3.parse)..............(re-se
90280 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e arch-backward...............(con
902a0 63 61 74 20 22 5c 5c 28 5b 5e 5c 5c 5d 5c 5c 7c 5e 5c 5c 29 22 20 28 73 74 72 69 6e 67 20 28 6e cat."\\([^\\]\\|^\\)".(string.(n
902c0 74 68 20 33 20 70 61 72 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e th.3.parse)))...............(lin
902e0 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 20 20 e-beginning-position).t)).......
90300 20 20 20 20 20 20 28 28 6e 74 68 20 37 20 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......((nth.7.parse)............
90320 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e 74 68 20 38 20 70 61 72 73 65 29 29 29 0a 20 20 20 ..(goto-char.(nth.8.parse)))....
90340 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 6e 74 68 20 34 20 70 61 72 73 65 29 0a 20 20 20 20 .........((or.(nth.4.parse).....
90360 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f .............(and.(eq.(char-befo
90380 72 65 29 20 3f 2f 29 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 2a 29 29 29 0a 20 re).?/).(eq.(char-after).?*)))..
903a0 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 ............(re-search-backward.
903c0 22 2f 5c 5c 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 "/\\*")).............(t.........
903e0 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 20 28 31 2d 20 63 6f 75 6e 74 29 29 29 29 29 29 .....(setq.count.(1-.count))))))
90400 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65 61 72 63 ...(point))..(defun.js2-re-searc
90420 68 2d 62 61 63 6b 77 61 72 64 20 28 72 65 67 65 78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75 h-backward.(regexp.&optional.bou
90440 6e 64 20 6e 6f 65 72 72 6f 72 20 63 6f 75 6e 74 29 0a 20 20 22 53 65 61 72 63 68 20 62 61 63 6b nd.noerror.count)..."Search.back
90460 77 61 72 64 20 62 75 74 20 69 67 6e 6f 72 65 20 73 74 72 69 6e 67 73 20 61 6e 64 20 63 6f 6d 6d ward.but.ignore.strings.and.comm
90480 65 6e 74 73 2e 0a 49 6e 76 6f 6b 65 73 20 60 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 ents..Invokes.`re-search-backwar
904a0 64 27 20 62 75 74 20 74 72 65 61 74 73 20 74 68 65 20 62 75 66 66 65 72 20 61 73 20 69 66 20 73 d'.but.treats.the.buffer.as.if.s
904c0 74 72 69 6e 67 73 0a 61 6e 64 20 63 6f 6d 6d 65 6e 74 73 20 68 61 76 65 20 62 65 65 6e 20 72 65 trings.and.comments.have.been.re
904e0 6d 6f 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 61 76 65 64 2d 70 6f 69 6e 74 20 28 70 6f moved."...(let.((saved-point.(po
90500 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 int))).....(condition-case.err..
90520 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 .......(cond.((null.count)......
90540 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 ..........(js2-re-search-backwar
90560 64 2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62 6f 75 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 d-inner.regexp.bound.1))........
90580 20 20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......((<.count.0).............
905a0 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e 65 72 20 ...(js2-re-search-forward-inner.
905c0 72 65 67 65 78 70 20 62 6f 75 6e 64 20 28 2d 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20 regexp.bound.(-.count)))........
905e0 20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .......((>.count.0).............
90600 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 2d 69 6e 6e 65 72 ...(js2-re-search-backward-inner
90620 20 72 65 67 65 78 70 20 62 6f 75 6e 64 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 .regexp.bound.count))).......(se
90640 61 72 63 68 2d 66 61 69 6c 65 64 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 61 arch-failed........(goto-char.sa
90660 76 65 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 65 72 72 6f ved-point)........(unless.noerro
90680 72 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 r..........(error.(error-message
906a0 2d 73 74 72 69 6e 67 20 65 72 72 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6c -string.err)))))))..(defun.js2-l
906c0 6f 6f 6b 69 6e 67 2d 61 74 2d 6f 70 65 72 61 74 6f 72 2d 70 20 28 29 0a 20 20 22 52 65 74 75 72 ooking-at-operator-p.()..."Retur
906e0 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 65 78 74 20 61 66 74 65 72 20 70 6f 69 6e 74 20 69 73 n.non-nil.if.text.after.point.is
90700 20 61 20 6e 6f 6e 2d 63 6f 6d 6d 61 20 6f 70 65 72 61 74 6f 72 2e 22 0a 20 20 28 64 65 66 76 61 .a.non-comma.operator."...(defva
90720 72 20 6a 73 32 2d 6d 6f 64 65 2d 69 64 65 6e 74 69 66 69 65 72 2d 72 65 29 0a 20 20 28 61 6e 64 r.js2-mode-identifier-re)...(and
90740 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72 .(looking-at.js2-indent-operator
90760 2d 72 65 29 0a 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 28 65 71 20 28 63 68 61 72 2d 61 -re)........(or.(not.(eq.(char-a
90780 66 74 65 72 29 20 3f 3a 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 fter).?:))............(save-excu
907a0 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 72 65 2d rsion..............(and.(js2-re-
907c0 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5b 3f 3a 7b 5d 5c 5c 7c 5c 5c 5f 3c 63 61 73 search-backward."[?:{]\\|\\_<cas
907e0 65 5c 5c 5f 3e 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e\\_>".nil.t)...................
90800 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 3f 29 29 29 29 0a 20 20 20 20 20 20 20 28 (eq.(char-after).??))))........(
90820 6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d not.(and..............(eq.(char-
90840 61 66 74 65 72 29 20 3f 2f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 after).?/)..............(save-ex
90860 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 6e 74 68 20 cursion................(eq.(nth.
90880 33 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 20 3f 2f 29 29 29 29 0a 20 20 20 20 20 20 20 28 3.(syntax-ppss)).?/))))........(
908a0 6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d not.(and..............(eq.(char-
908c0 61 66 74 65 72 29 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 47 65 6e 65 72 after).?*)..............;;.Gener
908e0 61 74 6f 72 20 6d 65 74 68 6f 64 20 28 70 6f 73 73 69 62 6c 79 20 75 73 69 6e 67 20 63 6f 6d 70 ator.method.(possibly.using.comp
90900 75 74 65 64 20 70 72 6f 70 65 72 74 79 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f uted.property)...............(lo
90920 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74 20 22 5c 5c 2a 20 2a 5c 5c 28 3f 3a 5c 5c 5b 5c oking-at.(concat."\\*.*\\(?:\\[\
90940 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \|".............................
90960 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 69 64 65 6e 74 69 66 69 65 72 2d 72 65 0a 20 20 20 20 .....js2-mode-identifier-re.....
90980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a .............................".*
909a0 28 5c 5c 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 (\\)"))..............(save-excur
909c0 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 sion................(js2-backwar
909e0 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 6d 69 67 68 d-sws)................;;.We.migh
90a00 74 20 6d 69 73 69 6e 64 65 6e 74 20 73 6f 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61 t.misindent.some.expressions.tha
90a20 74 20 77 6f 75 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 74 75 72 6e t.would................;;.return
90a40 20 4e 61 4e 20 61 6e 79 77 61 79 2e 20 20 53 68 6f 75 6c 64 6e 27 74 20 62 65 20 61 20 70 72 6f .NaN.anyway...Shouldn't.be.a.pro
90a60 62 6c 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 61 72 blem.................(memq.(char
90a80 2d 62 65 66 6f 72 65 29 20 27 28 3f 2c 20 3f 7d 20 3f 7b 29 29 29 29 29 29 29 0a 0a 28 64 65 66 -before).'(?,.?}.?{)))))))..(def
90aa0 75 6e 20 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 70 20 28 29 un.js2-continued-expression-p.()
90ac0 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e ..."Return.non-nil.if.the.curren
90ae0 74 20 6c 69 6e 65 20 63 6f 6e 74 69 6e 75 65 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 t.line.continues.an.expression."
90b00 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d ...(save-excursion.....(back-to-
90b20 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6c 6f 6f 6b 69 6e indentation).....(if.(js2-lookin
90b40 67 2d 61 74 2d 6f 70 65 72 61 74 6f 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f g-at-operator-p).........(or.(no
90b60 74 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 27 28 3f 2d 20 3f 2b 29 29 29 0a t.(memq.(char-after).'(?-.?+))).
90b80 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............(progn..............
90ba0 20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e 74 20 28 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 .(forward-comment.(-.(point)))..
90bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 62 65 .............(not.(memq.(char-be
90be0 66 6f 72 65 29 20 27 28 3f 2c 20 3f 5c 5b 20 3f 5c 28 29 29 29 29 29 0a 20 20 20 20 20 20 28 66 fore).'(?,.?\[.?\())))).......(f
90c00 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e 74 20 28 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 orward-comment.(-.(point))).....
90c20 20 20 28 6f 72 20 28 62 6f 62 70 29 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 0a 20 20 ..(or.(bobp).(backward-char))...
90c40 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 6f 70 65 72 61 74 ....(when.(js2-looking-at-operat
90c60 6f 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a 20 20 or-p).........(backward-char)...
90c80 20 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 7c 5c 5c ......(not.(looking-at."\\*\\|\\
90ca0 2b 5c 5c 2b 5c 5c 7c 2d 2d 5c 5c 7c 2f 5b 2f 2a 5d 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e +\\+\\|--\\|/[/*]"))))))..(defun
90cc0 20 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 6f 2d 77 68 69 6c 65 2d 6c 6f 6f 70 2d 70 20 28 29 0a 20 .js2-end-of-do-while-loop-p.()..
90ce0 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 77 6f 72 64 20 61 66 74 65 72 20 70 ."Return.non-nil.if.word.after.p
90d00 6f 69 6e 74 20 69 73 20 60 77 68 69 6c 65 27 20 6f 66 20 61 20 64 6f 2d 77 68 69 6c 65 0a 73 74 oint.is.`while'.of.a.do-while.st
90d20 61 74 65 6d 65 6e 74 2c 20 65 6c 73 65 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 41 20 62 72 61 atement,.else.returns.nil..A.bra
90d40 63 65 6c 65 73 73 20 64 6f 2d 77 68 69 6c 65 20 73 74 61 74 65 6d 65 6e 74 0a 73 70 61 6e 6e 69 celess.do-while.statement.spanni
90d60 6e 67 20 73 65 76 65 72 61 6c 20 6c 69 6e 65 73 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 74 ng.several.lines.requires.that.t
90d80 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 6c 6f 6f 70 20 69 73 0a 69 6e 64 65 6e 74 65 64 he.start.of.the.loop.is.indented
90da0 20 74 6f 20 74 68 65 20 73 61 6d 65 20 63 6f 6c 75 6d 6e 20 61 73 20 74 68 65 20 63 75 72 72 65 .to.the.same.column.as.the.curre
90dc0 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 nt.line."...(interactive)...(sav
90de0 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 e-excursion.....(when.(looking-a
90e00 74 20 22 5c 5c 73 2d 2a 5c 5c 5f 3c 77 68 69 6c 65 5c 5c 5f 3e 22 29 0a 20 20 20 20 20 20 28 69 t."\\s-*\\_<while\\_>").......(i
90e20 66 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 f.(save-excursion.............(s
90e40 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 5b 20 5c 74 5c 6e 5d 2a 7d 22 29 0a kip-chars-backward."[.\t\n]*}").
90e60 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5c 6e 5d ............(looking-at."[.\t\n]
90e80 2a 7d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a *}"))...........(save-excursion.
90ea0 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 6c 69 73 74 29 20 28 62 61 63 ............(backward-list).(bac
90ec0 6b 77 61 72 64 2d 77 6f 72 64 20 31 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3c 64 kward-word.1).(looking-at."\\_<d
90ee0 6f 5c 5c 5f 3e 22 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d o\\_>")).........(js2-re-search-
90f00 62 61 63 6b 77 61 72 64 20 22 5c 5c 5f 3c 64 6f 5c 5c 5f 3e 22 20 28 70 6f 69 6e 74 2d 61 74 2d backward."\\_<do\\_>".(point-at-
90f20 62 6f 6c 29 20 74 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 bol).t).........(or.(looking-at.
90f40 22 5c 5c 5f 3c 64 6f 5c 5c 5f 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 "\\_<do\\_>").............(let.(
90f60 28 73 61 76 65 64 2d 69 6e 64 65 6e 74 20 28 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 (saved-indent.(current-indentati
90f80 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 on)))...............(while.(and.
90fa0 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5e 5b 20 5c 74 5d 2a (js2-re-search-backward."^[.\t]*
90fc0 5c 5c 5f 3c 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \\_<".nil.t)....................
90fe0 20 20 20 20 20 20 20 28 2f 3d 20 28 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 .......(/=.(current-indentation)
91000 20 73 61 76 65 64 2d 69 6e 64 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .saved-indent)))...............(
91020 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5d 2a 5c 5c 5f 3c 64 6f 5c 5c 5f and.(looking-at."[.\t]*\\_<do\\_
91040 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 >")....................(not.(js2
91060 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -re-search-forward..............
91080 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5f 3c 77 68 69 6c 65 5c 5c 5f 3e 22 20 28 70 6f 69 ............"\\_<while\\_>".(poi
910a0 6e 74 2d 61 74 2d 65 6f 6c 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-at-eol).t))..................
910c0 20 20 28 3d 20 28 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 73 61 76 65 64 ..(=.(current-indentation).saved
910e0 2d 69 6e 64 65 6e 74 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 6c 74 -indent))))))))..(defun.js2-mult
91100 69 6c 69 6e 65 2d 64 65 63 6c 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 74 iline-decl-indentation.()..."Ret
91120 75 72 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 urn.the.declaration.indentation.
91140 63 6f 6c 75 6d 6e 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 62 65 6c 6f 6e column.if.the.current.line.belon
91160 67 73 0a 74 6f 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 73 74 gs.to.a.multiline.declaration.st
91180 61 74 65 6d 65 6e 74 2e 20 20 53 65 65 20 60 6a 73 32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c atement...See.`js2-pretty-multil
911a0 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 66 6f 72 77 ine-declarations'."...(let.(forw
911c0 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 20 3b 20 75 73 65 20 4c 69 73 70 20 76 65 72 ard-sexp-function.;.use.Lisp.ver
911e0 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 61 74 2d 6f 70 65 6e 69 6e 67 2d 62 72 61 63 6b 65 74 29 sion.........at-opening-bracket)
91200 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 62 61 63 6b .....(save-excursion.......(back
91220 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f -to-indentation).......(when.(no
91240 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 t.(looking-at.js2-declaration-ke
91260 79 77 6f 72 64 2d 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e yword-re)).........(when.(lookin
91280 67 2d 61 74 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72 2d 72 65 29 0a 20 20 20 g-at.js2-indent-operator-re)....
912a0 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 .......(goto-char.(match-end.0))
912c0 29 20 3b 20 63 6f 6e 74 69 6e 75 65 64 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 6f 6b ).;.continued.expressions.are.ok
912e0 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 61 74 2d 6f 70 65 .........(while.(and.(not.at-ope
91300 6e 69 6e 67 2d 62 72 61 63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ning-bracket)...................
91320 20 20 28 6e 6f 74 20 28 62 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(not.(bobp))..................
91340 20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 ...(let.((pos.(point))).........
91360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 ..............(save-excursion...
91380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 ......................(js2-backw
913a0 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ard-sws)........................
913c0 20 28 6f 72 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 2c 29 0a 20 20 20 20 20 .(or.(eq.(char-before).?,)......
913e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 .......................(and.(not
91400 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c 3b 29 29 0a 20 20 20 20 20 20 20 .(eq.(char-before).?\;))........
91420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 32 ..........................(prog2
91440 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 62 61 63 6b 77 61 72 64 20 22 2e 22 29 0a 20 20 20 20 .(skip-syntax-backward.".").....
91460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91480 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72 .(looking-at.js2-indent-operator
914a0 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -re)............................
914c0 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 29 0a 20 20 20 20 ........(js2-backward-sws)).....
914e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f .............................(no
91500 74 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c 3b 29 29 29 0a 20 20 20 20 20 t.(eq.(char-before).?\;)))......
91520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 61 6d 65 .......................(js2-same
91540 2d 6c 69 6e 65 20 70 6f 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 -line.pos)))))...........(condit
91560 69 6f 6e 2d 63 61 73 65 20 5f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 ion-case._...............(backwa
91580 72 64 2d 73 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 61 6e 2d 65 72 72 6f 72 rd-sexp).............(scan-error
915a0 20 28 73 65 74 71 20 61 74 2d 6f 70 65 6e 69 6e 67 2d 62 72 61 63 6b 65 74 20 74 29 29 29 29 0a .(setq.at-opening-bracket.t)))).
915c0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 64 65 ........(when.(looking-at.js2-de
915e0 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 claration-keyword-re)...........
91600 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 (goto-char.(match-end.0)).......
91620 20 20 20 20 28 31 2b 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 29 29 29 0a 0a ....(1+.(current-column)))))))..
91640 28 64 65 66 75 6e 20 6a 73 32 2d 63 74 72 6c 2d 73 74 61 74 65 6d 65 6e 74 2d 69 6e 64 65 6e 74 (defun.js2-ctrl-statement-indent
91660 61 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 72 6f 70 65 72 20 69 6e ation.()..."Return.the.proper.in
91680 64 65 6e 74 61 74 69 6f 6e 20 6f 66 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 69 66 20 69 74 20 dentation.of.current.line.if.it.
916a0 69 73 20 61 20 63 6f 6e 74 72 6f 6c 20 73 74 61 74 65 6d 65 6e 74 2e 0a 52 65 74 75 72 6e 73 20 is.a.control.statement..Returns.
916c0 61 6e 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 69 66 20 74 68 69 73 20 6c 69 6e 65 20 73 74 61 72 an.indentation.if.this.line.star
916e0 74 73 20 74 68 65 20 62 6f 64 79 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 0a 73 74 61 74 65 6d 65 ts.the.body.of.a.control.stateme
91700 6e 74 20 77 69 74 68 6f 75 74 20 62 72 61 63 65 73 2c 20 65 6c 73 65 20 72 65 74 75 72 6e 73 20 nt.without.braces,.else.returns.
91720 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 nil."...(let.(forward-sexp-funct
91740 69 6f 6e 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 ion).....(save-excursion.......(
91760 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 77 68 65 6e back-to-indentation).......(when
91780 20 28 61 6e 64 20 28 6e 6f 74 20 28 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 28 70 6f 69 6e 74 .(and.(not.(js2-same-line.(point
917a0 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6c -min)))..................(not.(l
917c0 6f 6f 6b 69 6e 67 2d 61 74 20 22 7b 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ooking-at."{")).................
917e0 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5b 5b 3a 67 72 61 .(js2-re-search-backward."[[:gra
91800 70 68 3a 5d 5d 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ph:]]".nil.t)..................(
91820 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 7b 28 5b 5d 22 29 29 0a 20 20 20 20 20 20 not.(looking-at."[{([]")).......
91840 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(progn...............
91860 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....(forward-char).............
91880 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c .......(when.(=.(char-before).?\
918a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 63 61 6e 2d ))......................;;.scan-
918c0 73 65 78 70 73 20 73 6f 6d 65 74 69 6d 65 73 20 74 68 72 6f 77 73 20 61 6e 20 65 72 72 6f 72 0a sexps.sometimes.throws.an.error.
918e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 .....................(ignore-err
91900 6f 72 73 20 28 62 61 63 6b 77 61 72 64 2d 73 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ors.(backward-sexp))............
91920 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 ..........(skip-chars-backward."
91940 20 5c 74 22 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .\t".(point-at-bol)))...........
91960 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 .........(let.((pt.(point)))....
91980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e ..................(back-to-inden
919a0 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 tation)......................(wh
919c0 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 7d 5b 20 5c 74 5d 2a 22 29 0a 20 20 20 20 20 20 en.(looking-at."}[.\t]*").......
919e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 .................(goto-char.(mat
91a00 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-end.0))).....................
91a20 20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 70 6f 73 73 69 62 6c 79 2d 62 .(and.(looking-at.js2-possibly-b
91a40 72 61 63 65 6c 65 73 73 2d 6b 65 79 77 6f 72 64 73 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 raceless-keywords-re)...........
91a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 ................(=.(match-end.0)
91a80 20 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .pt)...........................(
91aa0 6e 6f 74 20 28 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 6f 2d 77 68 69 6c 65 2d 6c 6f 6f 70 2d 70 29 not.(js2-end-of-do-while-loop-p)
91ac0 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 2b 20 28 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 ))))).........(+.(current-indent
91ae0 61 74 69 6f 6e 29 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 28 64 ation).js2-basic-offset)))))..(d
91b00 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 69 6e 2d 61 72 72 61 79 2d 63 6f 6d 70 20 28 70 efun.js2-indent-in-array-comp.(p
91b20 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 arse-status)..."Return.non-nil.i
91b40 66 20 77 65 20 74 68 69 6e 6b 20 77 65 27 72 65 20 69 6e 20 61 6e 20 61 72 72 61 79 20 63 6f 6d f.we.think.we're.in.an.array.com
91b60 70 72 65 68 65 6e 73 69 6f 6e 2e 0a 49 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 72 65 74 75 72 prehension..In.particular,.retur
91b80 6e 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 72 n.the.buffer.position.of.the.fir
91ba0 73 74 20 60 66 6f 72 27 20 6b 77 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 72 61 63 6b 65 74 20 st.`for'.kwd."...(let.((bracket.
91bc0 28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 65 (nth.1.parse-status)).........(e
91be0 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 62 72 61 63 6b 65 74 0a 20 nd.(point))).....(when.bracket..
91c00 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f .....(save-excursion.........(go
91c20 74 6f 2d 63 68 61 72 20 62 72 61 63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 to-char.bracket).........(when.(
91c40 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5b 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 looking-at."\\[")...........(for
91c60 77 61 72 64 2d 63 68 61 72 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 77 ward-char.1)...........(js2-forw
91c80 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d ard-sws)...........(if.(looking-
91ca0 61 74 20 22 5b 5b 7b 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 66 at."[[{]")...............(let.(f
91cc0 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 29 20 3b 20 75 73 65 20 4c 69 73 70 orward-sexp-function).;.use.Lisp
91ce0 20 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 .version.................(forwar
91d00 64 2d 73 65 78 70 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 6b 69 70 20 64 65 73 74 72 d-sexp).............;.skip.destr
91d20 75 63 74 75 72 69 6e 67 20 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ucturing.form.................(j
91d40 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s2-forward-sws).................
91d60 28 69 66 20 28 61 6e 64 20 28 2f 3d 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 2c 29 20 3b 20 (if.(and.(/=.(char-after).?,).;.
91d80 72 65 67 75 6c 61 72 20 61 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regular.array...................
91da0 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 66 6f 72 22 29 29 0a 20 20 20 20 20 .......(looking-at."for"))......
91dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 ...............(match-beginning.
91de0 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 73 6b 69 70 20 61 72 62 69 0))).............;;.to.skip.arbi
91e00 74 72 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 65 20 6e 65 65 64 20 74 68 65 20 70 61 trary.expressions.we.need.the.pa
91e20 72 73 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 27 6c 6c 20 6a 75 rser,.............;;.so.we'll.ju
91e40 73 74 20 67 75 65 73 73 20 61 74 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 st.guess.at.it..............(if.
91e60 28 61 6e 64 20 28 3e 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 20 3b 20 6e 6f 74 20 65 6d 70 74 79 (and.(>.end.(point)).;.not.empty
91e80 20 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 .literal......................(r
91ea0 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5b 5e 2c 5d 5d 2a 20 5c 5c 28 66 6f 72 5c e-search-forward."[^,]]*.\\(for\
91ec0 5c 29 20 22 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \).".end.t).....................
91ee0 20 3b 3b 20 6e 6f 74 20 69 6e 73 69 64 65 20 63 6f 6d 6d 65 6e 74 20 6f 72 20 73 74 72 69 6e 67 .;;.not.inside.comment.or.string
91f00 20 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .literal......................(l
91f20 65 74 20 28 28 73 74 61 74 65 20 28 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 20 62 et.((state.(parse-partial-sexp.b
91f40 72 61 63 6b 65 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 racket.(point))))...............
91f60 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 31 20 28 63 61 72 20 73 74 61 74 65 29 29 0a .........(and.(=.1.(car.state)).
91f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 ............................(not
91fa0 20 28 6e 74 68 20 38 20 73 74 61 74 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(nth.8.state)))))..............
91fc0 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 31 29 29 29 29 29 29 29 29 0a 0a 28 ...(match-beginning.1))))))))..(
91fe0 64 65 66 75 6e 20 6a 73 32 2d 61 72 72 61 79 2d 63 6f 6d 70 2d 69 6e 64 65 6e 74 61 74 69 6f 6e defun.js2-array-comp-indentation
92000 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 20 66 6f 72 2d 6b 77 64 29 0a 20 20 28 69 66 20 28 6a .(parse-status.for-kwd)...(if.(j
92020 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 66 6f 72 2d 6b 77 64 29 0a 20 20 20 20 20 20 3b 3b 20 66 s2-same-line.for-kwd).......;;.f
92040 69 72 73 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 0a 20 20 20 20 20 20 28 73 61 irst.continuation.line.......(sa
92060 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ve-excursion.........(goto-char.
92080 28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 66 (nth.1.parse-status)).........(f
920a0 6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 0a 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 orward-char.1).........(skip-cha
920c0 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 rs-forward.".\t").........(curre
920e0 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a nt-column)).....(save-excursion.
92100 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 66 6f 72 2d 6b 77 64 29 0a 20 20 20 20 20 20 ......(goto-char.for-kwd).......
92120 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d (current-column))))..(defun.js2-
92140 6d 61 79 62 65 2d 67 6f 74 6f 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 65 maybe-goto-declaration-keyword-e
92160 6e 64 20 28 62 72 61 63 6b 65 74 29 0a 20 20 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 nd.(bracket)..."Helper.function.
92180 66 6f 72 20 60 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 27 2e 0a 44 65 for.`js2-proper-indentation'..De
921a0 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 6a 73 32 2d 70 72 65 pending.on.the.value.of.`js2-pre
921c0 74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 27 2c 0a 6d 6f 76 tty-multiline-declarations',.mov
921e0 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 e.point.to.the.end.of.a.variable
92200 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6b 65 79 77 6f 72 64 20 73 6f 20 74 68 61 74 0a 69 6e 64 .declaration.keyword.so.that.ind
92220 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 6c 69 67 6e 65 64 20 74 6f 20 74 68 61 74 20 63 6f 6c 75 entation.is.aligned.to.that.colu
92240 6d 6e 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 65 71 20 6a 73 32 2d 70 72 65 74 74 79 2d mn."...(cond....((eq.js2-pretty-
92260 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 27 61 6c 6c 29 0a 20 20 20 multiline-declarations.'all)....
92280 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 64 65 63 6c 61 72 61 74 69 .(when.(looking-at.js2-declarati
922a0 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 on-keyword-re).......(goto-char.
922c0 28 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a 20 20 20 28 28 65 71 20 6a 73 (1+.(match-end.0)))))....((eq.js
922e0 32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 2-pretty-multiline-declarations.
92300 27 64 79 6e 61 6d 69 63 29 0a 20 20 20 20 28 6c 65 74 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 2d 'dynamic).....(let.(declaration-
92320 6b 65 79 77 6f 72 64 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 61 74 2d 63 6c 6f 73 69 6e 67 keyword-end...........at-closing
92340 2d 62 72 61 63 6b 65 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 2d 70 29 0a 20 20 -bracket-p...........comma-p)...
92360 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 64 65 63 6c 61 72 ....(when.(looking-at.js2-declar
92380 61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 ation-keyword-re).........;;.Pre
923a0 73 65 72 76 65 20 74 68 65 20 6d 61 74 63 68 20 64 61 74 61 20 6c 65 73 74 20 69 74 20 73 6f 6d serve.the.match.data.lest.it.som
923c0 65 68 6f 77 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 ehow.be.overridden..........(set
923e0 71 20 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 65 6e 64 20 28 6d 61 74 63 68 q.declaration-keyword-end.(match
92400 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e -end.0)).........(save-excursion
92420 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 72 61 63 6b 65 74 29 0a 20 ...........(goto-char.bracket)..
92440 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65 .........(setq.at-closing-bracke
92460 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 73 63 t-p.................;;.Handle.sc
92480 61 6e 20 65 72 72 6f 72 73 20 67 72 61 63 65 66 75 6c 6c 79 2e 0a 20 20 20 20 20 20 20 20 20 20 an.errors.gracefully............
924a0 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 ......(condition-case.nil.......
924c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(progn............
924e0 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 74 68 65 20 72 65 67 75 6c 61 72 20 60 66 ...........;;.Use.the.regular.`f
92500 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 27 20 62 65 63 61 75 73 65 20 74 68 orward-sexp-function'.because.th
92520 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 72 6d 61 e.......................;;.norma
92540 6c 20 6f 6e 65 20 66 6f 72 20 74 68 69 73 20 6d 6f 64 65 20 75 73 65 73 20 74 68 65 20 41 53 54 l.one.for.this.mode.uses.the.AST
92560 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 66 6f ........................(let.(fo
92580 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 rward-sexp-function)............
925a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 29 29 0a 20 20 20 .............(forward-sexp))....
925c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 ...................t)...........
925e0 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ........(error.nil)))...........
92600 28 77 68 65 6e 20 61 74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65 74 2d 70 0a 20 20 20 20 20 (when.at-closing-bracket-p......
92620 20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 .......(js2-forward-sws)........
92640 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 2d 70 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 .....(setq.comma-p.(looking-at-p
92660 20 22 2c 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6d 6d 61 2d 70 0a 20 .",")))).........(when.comma-p..
92680 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 2b 20 64 65 63 6c 61 72 61 74 .........(goto-char.(1+.declarat
926a0 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 65 6e 64 29 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 ion-keyword-end))))))))..(cl-def
926c0 75 6e 20 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 28 70 61 72 73 65 un.js2-proper-indentation.(parse
926e0 2d 73 74 61 74 75 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 72 6f 70 65 72 20 69 6e -status)..."Return.the.proper.in
92700 64 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 dentation.for.the.current.line."
92720 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d ...(save-excursion.....(back-to-
92740 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 74 68 20 34 20 70 61 indentation).....(when.(nth.4.pa
92760 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 2d 66 72 6f rse-status).......(cl-return-fro
92780 6d 20 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 28 6a 73 32 2d 2d 63 m.js2-proper-indentation.(js2--c
927a0 6f 6d 6d 65 6e 74 2d 69 6e 64 65 6e 74 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 29 0a 20 20 omment-indent.parse-status)))...
927c0 20 20 28 6c 65 74 2a 20 28 28 61 74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65 74 20 28 6c 6f ..(let*.((at-closing-bracket.(lo
927e0 6f 6b 69 6e 67 2d 61 74 20 22 5b 5d 7d 29 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 oking-at."[]})]"))............(s
92800 61 6d 65 2d 69 6e 64 65 6e 74 2d 70 20 28 6f 72 20 61 74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63 ame-indent-p.(or.at-closing-brac
92820 6b 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ket.............................
92840 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3c 63 61 73 65 5c 5c 5f 3e 5b 5e 3a 5d 22 ..(looking-at."\\_<case\\_>[^:]"
92860 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
92880 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3c 64 65 66 61 75 6c 74 3a 22 29 (and.(looking-at."\\_<default:")
928a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
928c0 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(save-excursion.............
928e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 .........................(js2-ba
92900 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ckward-sws).....................
92920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71 20 28 63 68 61 .................(not.(memq.(cha
92940 72 2d 62 65 66 6f 72 65 29 20 27 28 3f 2c 20 3f 7b 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 r-before).'(?,.?{)))))))........
92960 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 64 2d 65 78 70 72 2d 70 20 28 6a 73 32 2d 63 6f 6e 74 69 ....(continued-expr-p.(js2-conti
92980 6e 75 65 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 nued-expression-p))............(
929a0 64 65 63 6c 61 72 61 74 69 6f 6e 2d 69 6e 64 65 6e 74 20 28 61 6e 64 20 6a 73 32 2d 70 72 65 74 declaration-indent.(and.js2-pret
929c0 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 ty-multiline-declarations.......
929e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a ..............................(j
92a00 73 32 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 29 29 s2-multiline-decl-indentation)))
92a20 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 72 61 63 6b 65 74 20 28 6e 74 68 20 31 20 70 61 72 73 ............(bracket.(nth.1.pars
92a40 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 69 6e 64 65 6e 74 e-status))............beg.indent
92a60 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 65 6e 74 20 61 ).......(cond........;;.indent.a
92a80 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 rray.comprehension.continuation.
92aa0 6c 69 6e 65 73 20 73 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 62 72 61 lines.specially........((and.bra
92ac0 63 6b 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 cket..............(>=.js2-langua
92ae0 67 65 2d 76 65 72 73 69 6f 6e 20 31 37 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f ge-version.170)..............(no
92b00 74 20 28 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 62 72 61 63 6b 65 74 29 29 0a 20 20 20 20 20 t.(js2-same-line.bracket))......
92b20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 69 6e ........(setq.beg.(js2-indent-in
92b40 2d 61 72 72 61 79 2d 63 6f 6d 70 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 -array-comp.parse-status))......
92b60 20 20 20 20 20 20 20 20 28 3e 3d 20 28 70 6f 69 6e 74 29 20 28 73 61 76 65 2d 65 78 63 75 72 73 ........(>=.(point).(save-excurs
92b80 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ion............................(
92ba0 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 goto-char.beg)..................
92bc0 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 29 20 3b 20 61 74 ..........(point-at-bol)))).;.at
92be0 20 6f 72 20 61 66 74 65 72 20 66 69 72 73 74 20 6c 6f 6f 70 3f 0a 20 20 20 20 20 20 20 20 28 6a .or.after.first.loop?.........(j
92c00 73 32 2d 61 72 72 61 79 2d 63 6f 6d 70 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 61 72 73 65 2d s2-array-comp-indentation.parse-
92c20 73 74 61 74 75 73 20 62 65 67 29 29 0a 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 63 74 72 6c 2d status.beg)).........((js2-ctrl-
92c40 73 74 61 74 65 6d 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 29 0a 0a 20 20 20 20 20 20 20 statement-indentation)).........
92c60 28 28 61 6e 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 2d 69 6e 64 65 6e 74 20 63 6f 6e 74 69 6e 75 ((and.declaration-indent.continu
92c80 65 64 2d 65 78 70 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 2b 20 64 65 63 6c 61 72 61 74 69 6f ed-expr-p).........(+.declaratio
92ca0 6e 2d 69 6e 64 65 6e 74 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 0a 0a 20 20 20 n-indent.js2-basic-offset)).....
92cc0 20 20 20 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 2d 69 6e 64 65 6e 74 29 0a 0a 20 20 20 20 20 20 ....(declaration-indent)........
92ce0 20 28 62 72 61 63 6b 65 74 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 72 61 .(bracket.........(goto-char.bra
92d00 63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6c cket).........(cond..........((l
92d20 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 28 7b 5b 5d 5b 20 5c 74 5d 2a 5c 5c 28 2f 5b 2f 2a 5d 5c 5c ooking-at."[({[][.\t]*\\(/[/*]\\
92d40 7c 24 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 61 76 65 2d 65 78 |$\\)")...........(when.(save-ex
92d60 63 75 72 73 69 6f 6e 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c cursion.(skip-chars-backward.".\
92d80 74 5c 6e 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t\n)")..........................
92da0 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 29 22 29 29 0a 20 20 20 20 20 20 20 .......(looking-at.")"))........
92dc0 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 .....(backward-list))...........
92de0 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 (back-to-indentation)...........
92e00 28 6a 73 32 2d 6d 61 79 62 65 2d 67 6f 74 6f 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77 (js2-maybe-goto-declaration-keyw
92e20 6f 72 64 2d 65 6e 64 20 62 72 61 63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 ord-end.bracket)...........(setq
92e40 20 69 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 73 .indent.................(cond.(s
92e60 61 6d 65 2d 69 6e 64 65 6e 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame-indent-p....................
92e80 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 ....(current-column))...........
92ea0 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 64 2d 65 78 70 72 2d 70 0a 20 20 ............(continued-expr-p...
92ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 63 75 72 72 65 6e 74 .....................(+.(current
92ee0 2d 63 6f 6c 75 6d 6e 29 20 28 2a 20 32 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 -column).(*.2.js2-basic-offset))
92f00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 ).......................(t......
92f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 63 75 72 72 65 6e 74 2d 63 6f ..................(+.(current-co
92f40 6c 75 6d 6e 29 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 29 29 0a 20 20 20 20 20 lumn).js2-basic-offset))))......
92f60 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 73 77 69 74 63 68 2d .....(if.(and.js2-indent-switch-
92f80 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 61 74 2d body....................(not.at-
92fa0 63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 closing-bracket)................
92fc0 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3c 73 77 69 74 63 68 5c 5c 5f 3e 22 ....(looking-at."\\_<switch\\_>"
92fe0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 69 6e 64 65 6e 74 20 6a 73 32 2d 62 ))...............(+.indent.js2-b
93000 61 73 69 63 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 6e 74 29 asic-offset).............indent)
93020 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 )..........(t...........(unless.
93040 73 61 6d 65 2d 69 6e 64 65 6e 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 same-indent-p.............(forwa
93060 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 rd-char).............(skip-chars
93080 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 -forward.".\t"))...........(curr
930a0 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 0a 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 ent-column)))).........(continue
930c0 64 2d 65 78 70 72 2d 70 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 0a 0a 20 20 20 20 d-expr-p.js2-basic-offset)......
930e0 20 20 20 28 74 20 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 63 6f 6d 6d 65 6e ...(t.0)))))..(defun.js2--commen
93100 74 2d 69 6e 64 65 6e 74 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 22 49 6e 64 65 6e t-indent.(parse-status)..."Inden
93120 74 61 74 69 6f 6e 20 69 6e 73 69 64 65 20 61 20 6d 75 6c 74 69 2d 6c 69 6e 65 20 62 6c 6f 63 6b tation.inside.a.multi-line.block
93140 20 63 6f 6d 6d 65 6e 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 2e 22 0a 20 20 28 .comment.continuation.line."...(
93160 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e save-excursion.....(goto-char.(n
93180 74 68 20 38 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 28 69 66 20 28 6c 6f 6f th.8.parse-status)).....(if.(loo
931a0 6b 69 6e 67 2d 61 74 20 22 2f 5c 5c 2a 22 29 0a 20 20 20 20 20 20 20 20 28 2b 20 31 20 28 63 75 king-at."/\\*").........(+.1.(cu
931c0 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 30 29 29 29 0a 0a 28 64 65 66 75 rrent-column)).......0)))..(defu
931e0 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 62 6f n.js2-indent-line.(&optional._bo
93200 75 6e 63 65 2d 62 61 63 6b 77 61 72 64 73 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 75 unce-backwards)..."Indent.the.cu
93220 72 72 65 6e 74 20 6c 69 6e 65 20 61 73 20 4a 61 76 61 53 63 72 69 70 74 20 73 6f 75 72 63 65 20 rrent.line.as.JavaScript.source.
93240 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 70 text."...(interactive)...(let.(p
93260 61 72 73 65 2d 73 74 61 74 75 73 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 44 6f arse-status.offset.........;;.Do
93280 6e 27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 n't.whine.about.errors/warnings.
932a0 77 68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e 74 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 3b 3b when.we're.indenting..........;;
932c0 20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20 73 65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 .This.has.to.be.set.before.calli
932e0 6e 67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20 ng.parse-partial-sexp.below.....
93300 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 70 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 .....(inhibit-point-motion-hooks
93320 20 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 61 72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76 .t)).....(setq.parse-status.(sav
93340 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-excursion.....................
93360 20 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 .....(syntax-ppss.(point-at-bol)
93380 29 29 0a 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 ))...........offset.(-.(point).(
933a0 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 save-excursion..................
933c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f .............(back-to-indentatio
933e0 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n)..............................
93400 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 74 6f 75 63 68 20 6d .(point)))).....;;.Don't.touch.m
93420 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6e ultiline.strings......(unless.(n
93440 74 68 20 33 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 28 69 6e 64 65 6e 74 th.3.parse-status).......(indent
93460 2d 6c 69 6e 65 2d 74 6f 20 28 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e -line-to.(js2-proper-indentation
93480 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d .parse-status)).......(when.(cl-
934a0 70 6c 75 73 70 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 plusp.offset).........(forward-c
934c0 68 61 72 20 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 3b 3b 3b 20 4a 53 58 20 49 6e 64 65 6e 74 61 har.offset)))))..;;;.JSX.Indenta
934e0 74 69 6f 6e 0a 0a 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 4a 53 58 20 69 6e 64 65 6e tion..;;.The.following.JSX.inden
93500 74 61 74 69 6f 6e 20 63 6f 64 65 20 69 73 20 63 6f 70 69 65 64 20 62 61 73 69 63 61 6c 6c 79 20 tation.code.is.copied.basically.
93520 76 65 72 62 61 74 69 6d 20 66 72 6f 6d 20 6a 73 2e 65 6c 20 61 74 0a 3b 3b 20 39 35 38 64 61 37 verbatim.from.js.el.at.;;.958da7
93540 66 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 70 72 65 66 69 78 65 73 20 6f 6e 20 74 f,.except.that.the.prefixes.on.t
93560 68 65 20 66 75 6e 63 74 69 6f 6e 73 2f 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 63 68 61 6e 67 he.functions/variables.are.chang
93580 65 64 2e 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 2d 6a 73 78 2d 66 69 6e 64 2d 62 65 66 ed...(defsubst.js2--jsx-find-bef
935a0 6f 72 65 2d 74 61 67 20 28 29 0a 20 20 22 46 69 6e 64 20 77 68 65 72 65 20 4a 53 58 20 73 74 61 ore-tag.()..."Find.where.JSX.sta
935c0 72 74 73 2e 0a 0a 41 73 73 75 6d 65 20 4a 53 58 20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20 rts...Assume.JSX.appears.in.the.
935e0 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 73 74 61 6e 63 65 73 3a 0a 2d 20 49 6e 73 69 64 65 20 70 61 following.instances:.-.Inside.pa
93600 72 65 6e 74 68 65 73 65 73 2c 20 77 68 65 6e 20 72 65 74 75 72 6e 65 64 20 6f 72 20 61 73 20 74 rentheses,.when.returned.or.as.t
93620 68 65 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 0a 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f he.first.argument...to.a.functio
93640 6e 2c 20 61 6e 64 20 61 66 74 65 72 20 61 20 6e 65 77 6c 69 6e 65 0a 2d 20 57 68 65 6e 20 61 73 n,.and.after.a.newline.-.When.as
93660 73 69 67 6e 65 64 20 74 6f 20 76 61 72 69 61 62 6c 65 73 20 6f 72 20 6f 62 6a 65 63 74 20 70 72 signed.to.variables.or.object.pr
93680 6f 70 65 72 74 69 65 73 2c 20 62 75 74 20 6f 6e 6c 79 0a 20 20 6f 6e 20 61 20 73 69 6e 67 6c 65 operties,.but.only...on.a.single
936a0 20 6c 69 6e 65 0a 2d 20 41 73 20 74 68 65 20 4e 2b 31 74 68 20 61 72 67 75 6d 65 6e 74 20 74 6f .line.-.As.the.N+1th.argument.to
936c0 20 61 20 66 75 6e 63 74 69 6f 6e 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 6f 70 74 69 6d 69 7a 65 .a.function..This.is.an.optimize
936e0 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 d.version.of.(re-search-backward
93700 20 5c 22 5b 28 2c 5d 5c 6e 5c 22 0a 6e 69 6c 20 74 29 2c 20 65 78 63 65 70 74 20 73 65 74 20 70 .\"[(,]\n\".nil.t),.except.set.p
93720 6f 69 6e 74 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d 61 74 63 68 2e 20 20 54 oint.to.the.end.of.the.match...T
93740 68 69 73 20 6c 6f 67 69 63 0a 65 78 65 63 75 74 65 73 20 75 70 20 74 6f 20 74 68 65 20 6e 75 6d his.logic.executes.up.to.the.num
93760 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 2c 20 73 6f 20 69 74 20 ber.of.lines.in.the.file,.so.it.
93780 73 68 6f 75 6c 64 20 62 65 0a 72 65 61 6c 6c 79 20 66 61 73 74 20 74 6f 20 72 65 64 75 63 65 20 should.be.really.fast.to.reduce.
937a0 74 68 61 74 20 69 6d 70 61 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 70 6f 73 29 0a 20 20 20 20 28 that.impact."...(let.(pos).....(
937c0 77 68 69 6c 65 20 28 61 6e 64 20 28 3e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 69 6e while.(and.(>.(point).(point-min
937e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 72 6f 67 6e 0a 20 )).................(not.(progn..
93800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 ......................(end-of-li
93820 6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 ne.0)........................(wh
93840 65 6e 20 28 6f 72 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 34 30 29 20 20 20 3b en.(or.(eq.(char-before).40)...;
93860 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(..............................
93880 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 34 34 29 29 20 20 3b 20 2c 0a ....(eq.(char-before).44))..;.,.
938a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 .........................(setq.p
938c0 6f 73 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 70 6f 73 29 29 0a os.(1-.(point)))))))).....pos)).
938e0 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 2d 6a 73 78 2d 65 6e 64 2d 74 61 67 2d 72 65 0a 20 .(defconst.js2--jsx-end-tag-re..
93900 20 28 63 6f 6e 63 61 74 20 22 3c 2f 22 20 73 67 6d 6c 2d 6e 61 6d 65 2d 72 65 20 22 3e 5c 5c 7c .(concat."</".sgml-name-re.">\\|
93920 2f 3e 22 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 4a 53 58 20 65 6c />")..."Find.the.end.of.a.JSX.el
93940 65 6d 65 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 2d 6a 73 78 2d 61 66 74 ement.")..(defconst.js2--jsx-aft
93960 65 72 2d 74 61 67 2d 72 65 20 22 5b 29 2c 5d 22 0a 20 20 22 46 69 6e 64 20 77 68 65 72 65 20 4a er-tag-re."[),]"..."Find.where.J
93980 53 58 20 65 6e 64 73 2e 0a 54 68 69 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 61 73 SX.ends..This.complements.the.as
939a0 73 75 6d 70 74 69 6f 6e 20 6f 66 20 77 68 65 72 65 20 4a 53 58 20 61 70 70 65 61 72 73 20 66 72 sumption.of.where.JSX.appears.fr
939c0 6f 6d 0a 60 6a 73 2d 2d 6a 73 78 2d 62 65 66 6f 72 65 2d 74 61 67 2d 72 65 27 2c 20 77 68 69 63 om.`js--jsx-before-tag-re',.whic
939e0 68 20 73 65 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 6a 73 78 2d 69 6e 64 65 6e 74 h.see.")..(defun.js2--jsx-indent
93a00 65 64 2d 65 6c 65 6d 65 6e 74 2d 70 20 28 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 66 2f ed-element-p.()..."Determine.if/
93a20 68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 73 68 6f 75 6c 64 20 62 65 20 69 how.the.current.line.should.be.i
93a40 6e 64 65 6e 74 65 64 20 61 73 20 4a 53 58 2e 0a 0a 52 65 74 75 72 6e 20 60 66 69 72 73 74 27 20 ndented.as.JSX...Return.`first'.
93a60 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 4a 53 58 45 6c 65 6d 65 6e 74 20 6f 6e 20 69 74 73 20 for.the.first.JSXElement.on.its.
93a80 6f 77 6e 20 6c 69 6e 65 2e 0a 52 65 74 75 72 6e 20 60 6e 74 68 27 20 66 6f 72 20 73 75 62 73 65 own.line..Return.`nth'.for.subse
93aa0 71 75 65 6e 74 20 6c 69 6e 65 73 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 4a 53 58 45 6c 65 6d quent.lines.of.the.first.JSXElem
93ac0 65 6e 74 2e 0a 52 65 74 75 72 6e 20 60 65 78 70 72 65 73 73 69 6f 6e 27 20 66 6f 72 20 61 6e 20 ent..Return.`expression'.for.an.
93ae0 65 6d 62 65 64 64 65 64 20 4a 53 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 52 65 74 75 72 6e 20 60 embedded.JS.expression..Return.`
93b00 61 66 74 65 72 27 20 66 6f 72 20 61 6e 79 74 68 69 6e 67 20 61 66 74 65 72 20 74 68 65 20 6c 61 after'.for.anything.after.the.la
93b20 73 74 20 4a 53 58 45 6c 65 6d 65 6e 74 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 66 6f 72 20 6e 6f st.JSXElement..Return.nil.for.no
93b40 6e 2d 4a 53 58 20 6c 69 6e 65 73 2e 0a 0a 43 75 72 72 65 6e 74 6c 79 2c 20 4a 53 58 20 69 6e 64 n-JSX.lines...Currently,.JSX.ind
93b60 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 entation.supports.the.following.
93b80 73 74 79 6c 65 73 3a 0a 0a 2d 20 53 69 6e 67 6c 65 2d 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 73 20 styles:..-.Single-line.elements.
93ba0 28 69 6e 64 65 6e 74 65 64 20 6c 69 6b 65 20 6e 6f 72 6d 61 6c 20 4a 53 29 3a 0a 0a 20 20 76 61 (indented.like.normal.JS):....va
93bc0 72 20 65 6c 65 6d 65 6e 74 20 3d 20 3c 64 69 76 3e 3c 2f 64 69 76 3e 3b 0a 0a 2d 20 4d 75 6c 74 r.element.=.<div></div>;..-.Mult
93be0 69 2d 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 73 20 28 65 6e 63 6c 6f 73 65 64 20 69 6e 20 70 61 72 i-line.elements.(enclosed.in.par
93c00 65 6e 74 68 65 73 65 73 29 3a 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 20 entheses):....function.().{.....
93c20 72 65 74 75 72 6e 20 28 0a 20 20 20 20 20 20 3c 64 69 76 3e 0a 20 20 20 20 20 20 20 20 3c 64 69 return.(.......<div>.........<di
93c40 76 3e 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 29 3b 0a 20 7d 0a v></div>.......</div>.....);..}.
93c60 0a 2d 20 46 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 20 20 52 65 61 63 74 2e .-.Function.arguments:....React.
93c80 72 65 6e 64 65 72 28 0a 20 20 20 20 3c 64 69 76 3e 3c 2f 64 69 76 3e 2c 0a 20 20 20 20 64 6f 63 render(.....<div></div>,.....doc
93ca0 75 6d 65 6e 74 2e 71 75 65 72 79 53 65 6c 65 63 74 6f 72 28 5c 5c 3d 27 2e 72 6f 6f 74 5c 5c 3d ument.querySelector(\\='.root\\=
93cc0 27 29 0a 20 20 29 3b 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 70 6f 73 20 28 70 ')...);"...(let.((current-pos.(p
93ce0 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 28 6c 69 oint)).........(current-line.(li
93d00 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 6c 61 73 74 2d ne-number-at-pos)).........last-
93d20 70 6f 73 0a 20 20 20 20 20 20 20 20 62 65 66 6f 72 65 2d 74 61 67 2d 70 6f 73 20 62 65 66 6f 72 pos.........before-tag-pos.befor
93d40 65 2d 74 61 67 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 e-tag-line.........tag-start-pos
93d60 20 74 61 67 2d 73 74 61 72 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 74 61 67 2d 65 6e 64 2d .tag-start-line.........tag-end-
93d80 70 6f 73 20 74 61 67 2d 65 6e 64 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 2d 74 pos.tag-end-line.........after-t
93da0 61 67 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 70 61 72 65 6e 73 20 70 61 72 65 6e 20 74 79 70 ag-line.........parens.paren.typ
93dc0 65 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 61 6e e).....(save-excursion.......(an
93de0 64 0a 20 20 20 20 20 20 20 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 69 66 20 77 65 27 72 65 20 69 d........;;.Determine.if.we're.i
93e00 6e 73 69 64 65 20 61 20 6a 73 78 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 28 70 72 6f 67 nside.a.jsx.element........(prog
93e20 6e 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 n..........(end-of-line)........
93e40 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 ..(while.(and.(not.tag-start-pos
93e60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 73 )......................(setq.las
93e80 74 2d 70 6f 73 20 28 6a 73 32 2d 2d 6a 73 78 2d 66 69 6e 64 2d 62 65 66 6f 72 65 2d 74 61 67 29 t-pos.(js2--jsx-find-before-tag)
93ea0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d 63 6f ))............(while.(forward-co
93ec0 6d 6d 65 6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 63 mment.1))............(when.(=.(c
93ee0 68 61 72 2d 61 66 74 65 72 29 20 36 30 29 20 3b 20 3c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 har-after).60).;.<..............
93f00 28 73 65 74 71 20 62 65 66 6f 72 65 2d 74 61 67 2d 70 6f 73 20 6c 61 73 74 2d 70 6f 73 0a 20 20 (setq.before-tag-pos.last-pos...
93f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 20 28 .................tag-start-pos.(
93f40 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6c point)))............(goto-char.l
93f60 61 73 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 ast-pos))..........tag-start-pos
93f80 29 0a 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 )........(progn..........(setq.b
93fa0 65 66 6f 72 65 2d 74 61 67 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 efore-tag-line.(line-number-at-p
93fc0 6f 73 20 62 65 66 6f 72 65 2d 74 61 67 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 os.before-tag-pos)..............
93fe0 20 20 74 61 67 2d 73 74 61 72 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 ..tag-start-line.(line-number-at
94000 2d 70 6f 73 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 -pos.tag-start-pos))..........(a
94020 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 20 22 62 65 66 6f 72 65 22 20 6c 69 6e 65 20 nd...........;;.A."before".line.
94040 77 68 69 63 68 20 61 6c 73 6f 20 73 74 61 72 74 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 62 65 67 which.also.starts.an.element.beg
94060 69 6e 73 20 77 69 74 68 20 6a 73 2c 20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 ins.with.js,.so...........;;.ind
94080 65 6e 74 20 69 74 20 6c 69 6b 65 20 6a 73 0a 20 20 20 20 20 20 20 20 20 20 28 3e 20 63 75 72 72 ent.it.like.js...........(>.curr
940a0 65 6e 74 2d 6c 69 6e 65 20 62 65 66 6f 72 65 2d 74 61 67 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 ent-line.before-tag-line).......
940c0 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 69 6e 64 65 6e 74 20 74 68 65 20 6a 73 78 20 6c 69 6e 65 73 ....;;.Only.indent.the.jsx.lines
940e0 20 6c 69 6b 65 20 6a 73 78 0a 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 63 75 72 72 65 6e 74 2d .like.jsx...........(>=.current-
94100 6c 69 6e 65 20 74 61 67 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 28 63 line.tag-start-line)))........(c
94120 6f 6e 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 6e 61 6c 79 7a 65 20 62 6f 75 6e 64 73 20 69 66 ond.........;;.Analyze.bounds.if
94140 20 74 68 65 72 65 20 61 72 65 20 61 6e 79 0a 20 20 20 20 20 20 20 20 28 28 70 72 6f 67 6e 0a 20 .there.are.any.........((progn..
94160 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 74 61 67 2d 65 ..........(while.(and.(not.tag-e
94180 6e 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 nd-pos)........................(
941a0 73 65 74 71 20 6c 61 73 74 2d 70 6f 73 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 setq.last-pos.(re-search-forward
941c0 20 6a 73 32 2d 2d 6a 73 78 2d 65 6e 64 2d 74 61 67 2d 72 65 20 6e 69 6c 20 74 29 29 29 0a 20 20 .js2--jsx-end-tag-re.nil.t)))...
941e0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 ...........(while.(forward-comme
94200 6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 nt.1))..............(when.(looki
94220 6e 67 2d 61 74 20 6a 73 32 2d 2d 6a 73 78 2d 61 66 74 65 72 2d 74 61 67 2d 72 65 29 0a 20 20 20 ng-at.js2--jsx-after-tag-re)....
94240 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 67 2d 65 6e 64 2d 70 6f 73 20 6c 61 ............(setq.tag-end-pos.la
94260 73 74 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 61 67 2d 65 6e 64 2d 70 6f 73 st-pos)))............tag-end-pos
94280 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 67 2d 65 6e 64 2d 6c 69 6e 65 20 28 6c )..........(setq.tag-end-line.(l
942a0 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 74 61 67 2d 65 6e 64 2d 70 6f 73 29 0a 20 ine-number-at-pos.tag-end-pos)..
942c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66 74 65 72 2d 74 61 67 2d 6c 69 6e 65 20 28 6c 69 ..............after-tag-line.(li
942e0 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 61 66 74 65 72 2d 74 61 67 2d 6c 69 6e 65 29 ne-number-at-pos.after-tag-line)
94300 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 )..........(or.(and.............
94320 20 20 3b 3b 20 45 6e 73 75 72 65 20 77 65 27 72 65 20 61 63 74 75 61 6c 6c 79 20 77 69 74 68 69 ..;;.Ensure.we're.actually.withi
94340 6e 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 6a 73 78 0a 20 20 20 20 20 20 20 20 n.the.bounds.of.the.jsx.........
94360 20 20 20 20 20 20 28 3c 3d 20 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 74 61 67 2d 65 6e 64 2d 6c ......(<=.current-line.tag-end-l
94380 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6e 20 22 61 66 74 65 72 22 ine)...............;;.An."after"
943a0 20 6c 69 6e 65 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 65 6e 64 20 61 6e 20 65 6c 65 6d .line.which.does.not.end.an.elem
943c0 65 6e 74 20 62 65 67 69 6e 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ent.begins.with...............;;
943e0 20 6a 73 2c 20 73 6f 20 69 6e 64 65 6e 74 20 69 74 20 6c 69 6b 65 20 6a 73 0a 20 20 20 20 20 20 .js,.so.indent.it.like.js.......
94400 20 20 20 20 20 20 20 20 28 3c 3d 20 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 61 66 74 65 72 2d 74 ........(<=.current-line.after-t
94420 61 67 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 ag-line))..............(and.....
94440 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 61 6e 6f 74 68 65 72 20 63 61 73 65 ..........;;.Handle.another.case
94460 20 77 68 65 72 65 20 74 68 65 72 65 20 63 6f 75 6c 64 20 62 65 20 65 2e 67 2e 20 63 6f 6d 6d 65 .where.there.could.be.e.g..comme
94480 6e 74 73 20 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 65 nts.after...............;;.the.e
944a0 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 63 75 72 72 65 6e 74 2d lement...............(>.current-
944c0 6c 69 6e 65 20 74 61 67 2d 65 6e 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 line.tag-end-line)..............
944e0 20 28 3c 20 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 61 66 74 65 72 2d 74 61 67 2d 6c 69 6e 65 29 .(<.current-line.after-tag-line)
94500 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 79 70 65 20 27 61 66 74 65 72 ...............(setq.type.'after
94520 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 79 20 6d 61 79 20 6e 6f 74 20 62 65 20 )))).........;;.They.may.not.be.
94540 61 6e 79 20 62 6f 75 6e 64 73 20 28 79 65 74 29 0a 20 20 20 20 20 20 20 20 28 74 29 29 0a 20 20 any.bounds.(yet).........(t))...
94560 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 77 65 27 72 65 20 69 6e 73 69 64 65 20 61 6e .....;;.Check.if.we're.inside.an
94580 20 65 6d 62 65 64 64 65 64 20 6d 75 6c 74 69 2d 6c 69 6e 65 20 6a 73 20 65 78 70 72 65 73 73 69 .embedded.multi-line.js.expressi
945a0 6f 6e 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 74 79 on........(cond.........((not.ty
945c0 70 65 29 0a 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 63 75 72 72 65 6e 74 2d pe)..........(goto-char.current-
945e0 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 pos)..........(end-of-line).....
94600 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 73 20 28 6e 74 68 20 39 20 28 73 79 6e 74 61 78 .....(setq.parens.(nth.9.(syntax
94620 2d 70 70 73 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 70 61 -ppss)))..........(while.(and.pa
94640 72 65 6e 73 20 28 6e 6f 74 20 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 rens.(not.type))............(set
94660 71 20 70 61 72 65 6e 20 28 63 61 72 20 70 61 72 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 q.paren.(car.parens))...........
94680 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 3d 20 70 61 72 .(cond.............((and.(>=.par
946a0 65 6e 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 en.tag-start-pos)...............
946c0 20 20 20 20 3b 3b 20 43 75 72 6c 79 20 62 72 61 63 6b 65 74 20 69 6e 64 69 63 61 74 65 73 20 74 ....;;.Curly.bracket.indicates.t
946e0 68 65 20 73 74 61 72 74 20 6f 66 20 61 6e 20 65 6d 62 65 64 64 65 64 20 65 78 70 72 65 73 73 69 he.start.of.an.embedded.expressi
94700 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 28 63 68 61 72 2d 61 66 on...................(=.(char-af
94720 74 65 72 20 70 61 72 65 6e 29 20 31 32 33 29 20 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ter.paren).123).;.{.............
94740 20 20 20 20 20 20 3b 3b 20 54 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 65 ......;;.The.first.line.of.the.e
94760 78 70 72 65 73 73 69 6f 6e 20 69 73 20 69 6e 64 65 6e 74 65 64 20 6c 69 6b 65 20 73 67 6d 6c 0a xpression.is.indented.like.sgml.
94780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 63 75 72 72 65 6e 74 2d 6c 69 6e ..................(>.current-lin
947a0 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 70 61 72 65 6e 29 29 0a 20 20 e.(line-number-at-pos.paren))...
947c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 77 69 74 68 ................;;.Check.if.with
947e0 69 6e 20 61 20 63 6c 6f 73 69 6e 67 20 63 75 72 6c 79 20 62 72 61 63 6b 65 74 20 28 69 66 20 61 in.a.closing.curly.bracket.(if.a
94800 6e 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 65 78 63 6c 75 73 ny)...................;;.(exclus
94820 69 76 65 2c 20 61 73 20 74 68 65 20 63 6c 6f 73 69 6e 67 20 62 72 61 63 6b 65 74 20 69 73 20 69 ive,.as.the.closing.bracket.is.i
94840 6e 64 65 6e 74 65 64 20 6c 69 6b 65 20 73 67 6d 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ndented.like.sgml)..............
94860 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 .....(cond....................((
94880 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 progn.......................(got
948a0 6f 2d 63 68 61 72 20 70 61 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o-char.paren)...................
948c0 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 6c 65 74 20 28 66 6f 72 77 61 72 64 ....(ignore-errors.(let.(forward
948e0 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -sexp-function).................
94900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d .......................(forward-
94920 73 65 78 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 sexp)))).....................(<.
94940 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 current-line.(line-number-at-pos
94960 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 29 29 29 0a 20 20 20 )))....................(t)))....
94980 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64 69 63 61 74 65 20 74 68 69 73 20 67 75 79 20 77 ..........;;.Indicate.this.guy.w
949a0 69 6c 6c 20 62 65 20 69 6e 64 65 6e 74 65 64 20 73 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 20 20 ill.be.indented.specially.......
949c0 20 20 20 20 20 20 20 28 73 65 74 71 20 74 79 70 65 20 27 65 78 70 72 65 73 73 69 6f 6e 29 29 0a .......(setq.type.'expression)).
949e0 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 70 61 72 65 6e 73 20 28 63 64 72 ............(t.(setq.parens.(cdr
94a00 20 70 61 72 65 6e 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 .parens)))))..........t)........
94a20 20 28 74 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28 74 79 70 65 .(t))........(cond.........(type
94a40 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64 65 6e 74 20 74 68 65 20 66 69 72 73 74 20 6a 73 ).........;;.Indent.the.first.js
94a60 78 20 74 68 69 6e 67 20 6c 69 6b 65 20 6a 73 20 73 6f 20 77 65 20 63 61 6e 20 69 6e 64 65 6e 74 x.thing.like.js.so.we.can.indent
94a80 20 66 75 74 75 72 65 20 6a 73 78 20 74 68 69 6e 67 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 .future.jsx.things.........;;.li
94aa0 6b 65 20 73 67 6d 6c 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 74 68 ke.sgml.relative.to.the.first.th
94ac0 69 6e 67 0a 20 20 20 20 20 20 20 20 28 28 3d 20 63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 74 61 67 ing.........((=.current-line.tag
94ae0 2d 73 74 61 72 74 2d 6c 69 6e 65 29 20 27 66 69 72 73 74 29 0a 20 20 20 20 20 20 20 20 28 27 6e -start-line).'first).........('n
94b00 74 68 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 2d 61 73 2d 73 67 6d 6c th))))))..(defmacro.js2--as-sgml
94b20 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 63 75 74 65 20 42 4f 44 59 20 61 73 .(&rest.body)..."Execute.BODY.as
94b40 20 69 66 20 69 6e 20 73 67 6d 6c 2d 6d 6f 64 65 2e 22 0a 20 20 60 28 77 69 74 68 2d 73 79 6e 74 .if.in.sgml-mode."...`(with-synt
94b60 61 78 2d 74 61 62 6c 65 20 73 67 6d 6c 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a ax-table.sgml-mode-syntax-table.
94b80 20 20 20 20 20 28 6c 65 74 20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e .....(let.(forward-sexp-function
94ba0 0a 20 20 20 20 20 20 20 20 20 20 20 70 61 72 73 65 2d 73 65 78 70 2d 6c 6f 6f 6b 75 70 2d 70 72 ............parse-sexp-lookup-pr
94bc0 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 operties)........,@body)))..(def
94be0 75 6e 20 6a 73 32 2d 2d 65 78 70 72 65 73 73 69 6f 6e 2d 69 6e 2d 73 67 6d 6c 2d 69 6e 64 65 6e un.js2--expression-in-sgml-inden
94c00 74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 t-line.()..."Indent.the.current.
94c20 6c 69 6e 65 20 61 73 20 4a 61 76 61 53 63 72 69 70 74 20 6f 72 20 53 47 4d 4c 20 28 77 68 69 63 line.as.JavaScript.or.SGML.(whic
94c40 68 65 76 65 72 20 69 73 20 66 61 72 74 68 65 72 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 69 6e 64 hever.is.farther)."...(let*.(ind
94c60 65 6e 74 2d 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 70 20 28 70 6f 69 6e 74 29 29 ent-col..........(savep.(point))
94c80 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20 65 ..........;;.Don't.whine.about.e
94ca0 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e 74 rrors/warnings.when.we're.indent
94cc0 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20 ing...........;;.This.has.to.be.
94ce0 73 65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c set.before.calling.parse-partial
94d00 2d 73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 70 -sexp.below...........(inhibit-p
94d20 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 70 oint-motion-hooks.t)..........(p
94d40 61 72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 arse-status.(save-excursion.....
94d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 .....................(syntax-pps
94d80 73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 27 s.(point-at-bol))))).....;;.Don'
94da0 74 20 74 6f 75 63 68 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 28 t.touch.multiline.strings......(
94dc0 75 6e 6c 65 73 73 20 28 6e 74 68 20 33 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 unless.(nth.3.parse-status).....
94de0 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 63 6f 6c 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ..(setq.indent-col.(save-excursi
94e00 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 on..........................(bac
94e20 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k-to-indentation)...............
94e40 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 28 70 6f 69 6e 74 29 20 73 61 76 65 70 ...........(if.(>=.(point).savep
94e60 29 20 28 73 65 74 71 20 73 61 76 65 70 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ).(setq.savep.nil)).............
94e80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 2d 61 73 2d 73 67 6d 6c 20 28 73 67 6d 6c .............(js2--as-sgml.(sgml
94ea0 2d 63 61 6c 63 75 6c 61 74 65 2d 69 6e 64 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 -calculate-indent)))).......(if.
94ec0 28 6e 75 6c 6c 20 69 6e 64 65 6e 74 2d 63 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 27 6e 6f 69 (null.indent-col)...........'noi
94ee0 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 77 68 69 63 68 65 76 65 72 20 69 ndent.........;;.Use.whichever.i
94f00 6e 64 65 6e 74 61 74 69 6f 6e 20 63 6f 6c 75 6d 6e 20 69 73 20 67 72 65 61 74 65 72 2c 20 73 75 ndentation.column.is.greater,.su
94f20 63 68 20 74 68 61 74 20 74 68 65 20 73 67 6d 6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 75 ch.that.the.sgml.........;;.colu
94f40 6d 6e 20 69 73 20 65 66 66 65 63 74 69 76 65 6c 79 20 61 20 6d 69 6e 69 6d 75 6d 0a 20 20 20 20 mn.is.effectively.a.minimum.....
94f60 20 20 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 63 6f 6c 20 28 6d 61 78 20 28 6a 73 32 2d 70 ....(setq.indent-col.(max.(js2-p
94f80 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a roper-indentation.parse-status).
94fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b ..............................(+
94fc0 20 69 6e 64 65 6e 74 2d 63 6f 6c 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 29 0a .indent-col.js2-basic-offset))).
94fe0 20 20 20 20 20 20 20 20 28 69 66 20 73 61 76 65 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ........(if.savep.............(s
95000 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 74 6f 20 69 6e ave-excursion.(indent-line-to.in
95020 64 65 6e 74 2d 63 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 6c 69 6e dent-col))...........(indent-lin
95040 65 2d 74 6f 20 69 6e 64 65 6e 74 2d 63 6f 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 e-to.indent-col))))))..(defun.js
95060 32 2d 6a 73 78 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 2-jsx-indent-line.()..."Indent.t
95080 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 61 73 20 4a 53 58 20 28 77 69 74 68 20 53 47 4d he.current.line.as.JSX.(with.SGM
950a0 4c 20 6f 66 66 73 65 74 73 29 2e 0a 69 2e 65 2e 2c 20 63 75 73 74 6f 6d 69 7a 65 20 4a 53 58 20 L.offsets)..i.e.,.customize.JSX.
950c0 65 6c 65 6d 65 6e 74 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 77 69 74 68 20 60 73 67 6d 6c 2d 62 element.indentation.with.`sgml-b
950e0 61 73 69 63 2d 6f 66 66 73 65 74 27 0a 65 74 20 61 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 asic-offset'.et.al."...(interact
95100 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74 79 70 65 20 28 ive)...(let.((indentation-type.(
95120 6a 73 32 2d 2d 6a 73 78 2d 69 6e 64 65 6e 74 65 64 2d 65 6c 65 6d 65 6e 74 2d 70 29 29 29 0a 20 js2--jsx-indented-element-p)))..
95140 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74 ...(cond......((eq.indentation-t
95160 79 70 65 20 27 65 78 70 72 65 73 73 69 6f 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 2d 65 78 70 ype.'expression).......(js2--exp
95180 72 65 73 73 69 6f 6e 2d 69 6e 2d 73 67 6d 6c 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 0a 20 20 ression-in-sgml-indent-line))...
951a0 20 20 20 28 28 6f 72 20 28 65 71 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74 79 70 65 20 27 66 69 ...((or.(eq.indentation-type.'fi
951c0 72 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 71 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74 rst)...........(eq.indentation-t
951e0 79 70 65 20 27 61 66 74 65 72 29 29 0a 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 74 72 65 61 ype.'after)).......;;.Don't.trea
95200 74 20 74 68 69 73 20 66 69 72 73 74 20 74 68 69 6e 67 20 61 73 20 61 20 63 6f 6e 74 69 6e 75 65 t.this.first.thing.as.a.continue
95220 64 20 65 78 70 72 65 73 73 69 6f 6e 20 28 6f 66 74 65 6e 20 61 20 22 3c 22 20 6f 72 0a 20 20 20 d.expression.(often.a."<".or....
95240 20 20 20 3b 3b 20 22 3e 22 20 63 61 75 73 65 73 20 74 68 69 73 20 6d 69 73 69 6e 74 65 72 70 72 ...;;.">".causes.this.misinterpr
95260 65 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f etation).......(cl-letf.(((symbo
95280 6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 64 2d 65 78 70 72 65 l-function.#'js2-continued-expre
952a0 73 73 69 6f 6e 2d 70 29 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d ssion-p).'ignore)).........(js2-
952c0 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 69 6e 64 65 6e 74 61 indent-line)))......((eq.indenta
952e0 74 69 6f 6e 2d 74 79 70 65 20 27 6e 74 68 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 2d 61 73 2d 73 tion-type.'nth).......(js2--as-s
95300 67 6d 6c 20 28 73 67 6d 6c 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 28 74 gml.(sgml-indent-line)))......(t
95320 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 .(js2-indent-line)))))..(provide
95340 20 27 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74 29 0a 0a 3b 3b 3b 20 6a 73 32 2d 6f 6c 64 2d 69 .'js2-old-indent)..;;;.js2-old-i
95360 6e 64 65 6e 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 ndent.el.ends.here..............
95380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
953a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
953c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
953e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95400 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 4e 45 57 53 2e 6d 64 00 00 00 00 00 00 00 js2-mode-20231224/NEWS.md.......
95420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
95480 30 30 32 33 34 31 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 33 34 00 20 30 00 00 00 0023414.00000000000.013134..0...
954a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
954c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
954e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
95520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
95540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95600 23 20 48 69 73 74 6f 72 79 20 6f 66 20 75 73 65 72 2d 76 69 73 69 62 6c 65 20 63 68 61 6e 67 65 #.History.of.user-visible.change
95620 73 0a 0a 23 23 20 32 30 32 33 2d 31 32 2d 32 34 0a 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 s..##.2023-12-24..*.Support.for.
95640 61 73 79 6e 63 20 67 65 6e 65 72 61 74 6f 72 73 20 69 6e 20 6d 65 74 68 6f 64 20 6e 6f 74 61 74 async.generators.in.method.notat
95660 69 6f 6e 0a 20 20 28 5b 23 35 39 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d ion...([#598](https://github.com
95680 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 39 38 29 29 2e 0a 2a 20 53 /mooz/js2-mode/issues/598))..*.S
956a0 75 70 70 6f 72 74 20 66 6f 72 20 73 74 61 74 69 63 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e upport.for.static.initialization
956c0 20 62 6c 6f 63 6b 73 0a 20 20 28 5b 23 35 39 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 .blocks...([#594](https://github
956e0 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 39 34 29 29 2e .com/mooz/js2-mode/issues/594)).
95700 0a 0a 23 23 20 32 30 32 33 2d 30 34 2d 30 38 0a 0a 2a 20 53 75 70 70 6f 72 74 20 74 6f 70 2d 6c ..##.2023-04-08..*.Support.top-l
95720 65 76 65 6c 20 61 77 61 69 74 0a 20 20 28 5b 23 35 39 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 evel.await...([#593](https://git
95740 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 39 33 hub.com/mooz/js2-mode/issues/593
95760 29 29 2e 0a 2a 20 46 69 78 20 66 6f 72 20 65 73 63 61 70 69 6e 67 20 69 6e 73 69 64 65 20 74 65 ))..*.Fix.for.escaping.inside.te
95780 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 0a 20 20 28 5b 23 35 39 32 5d 28 68 74 74 70 73 3a 2f mplate.literal...([#592](https:/
957a0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 /github.com/mooz/js2-mode/issues
957c0 2f 35 39 32 29 29 2e 0a 0a 23 23 20 32 30 32 32 2d 30 37 2d 31 30 0a 0a 2a 20 46 69 78 20 66 6f /592))...##.2022-07-10..*.Fix.fo
957e0 72 20 6e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 60 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 r.node.position.of.`js2-new-node
95800 60 0a 20 20 28 5b 23 35 39 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d `...([#591](https://github.com/m
95820 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 39 31 29 29 2e 0a 2a 20 53 75 70 ooz/js2-mode/issues/591))..*.Sup
95840 70 6f 72 74 20 74 68 65 20 64 20 28 68 61 73 49 6e 64 69 63 65 73 29 20 61 6e 64 20 73 20 28 64 port.the.d.(hasIndices).and.s.(d
95860 6f 74 41 6c 6c 29 20 72 65 67 65 78 70 20 66 6c 61 67 73 0a 20 20 28 5b 23 35 39 30 5d 28 68 74 otAll).regexp.flags...([#590](ht
95880 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 tps://github.com/mooz/js2-mode/p
958a0 75 6c 6c 2f 35 39 30 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 60 5f 60 20 73 65 70 ull/590))..*.Support.for.`_`.sep
958c0 61 72 61 74 6f 72 20 69 6e 20 6e 75 6d 62 65 72 73 20 28 69 2e 65 2e 2c 20 6e 75 6d 65 72 69 63 arator.in.numbers.(i.e.,.numeric
958e0 20 73 65 70 61 72 61 74 6f 72 29 0a 20 20 28 5b 23 35 38 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 .separator)...([#584](https://gi
95900 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75 6c 6c 2f 35 38 34 29 thub.com/mooz/js2-mode/pull/584)
95920 29 2e 0a 0a 23 23 20 32 30 32 31 2d 31 32 2d 32 39 0a 0a 2a 20 49 6d 65 6e 75 20 73 75 70 70 6f )...##.2021-12-29..*.Imenu.suppo
95940 72 74 20 66 6f 72 20 6d 6f 63 68 61 2d 6c 69 6b 65 20 28 69 6e 63 6c 75 64 65 73 20 4a 61 73 6d rt.for.mocha-like.(includes.Jasm
95960 69 6e 65 20 61 6e 64 20 43 79 70 72 65 73 73 29 20 74 65 73 74 0a 20 20 66 69 6c 65 73 3a 20 69 ine.and.Cypress).test...files:.i
95980 2e 65 2e 2c 20 60 4d 2d 78 20 69 6d 65 6e 75 60 20 77 69 6c 6c 20 6e 6f 77 20 6c 69 73 74 20 74 .e.,.`M-x.imenu`.will.now.list.t
959a0 65 73 74 20 62 6c 6f 63 6b 73 20 64 65 66 69 6e 65 64 20 77 69 74 68 0a 20 20 60 64 65 73 63 72 est.blocks.defined.with...`descr
959c0 69 62 65 28 29 60 20 61 6e 64 20 60 69 74 28 29 60 0a 20 20 28 5b 23 35 37 36 5d 28 68 74 74 70 ibe()`.and.`it()`...([#576](http
959e0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75 6c s://github.com/mooz/js2-mode/pul
95a00 6c 2f 35 37 36 29 29 2e 0a 2a 20 4d 69 6e 6f 72 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e l/576))..*.Minor.improvements.in
95a20 20 60 6a 73 32 2d 6a 75 6d 70 2d 74 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 60 0a 20 20 28 5b 23 34 .`js2-jump-to-definition`...([#4
95a40 32 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 23](https://github.com/mooz/js2-
95a60 6d 6f 64 65 2f 69 73 73 75 65 73 2f 34 32 33 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 mode/issues/423))..*.Support.for
95a80 20 70 72 69 76 61 74 65 20 63 6c 61 73 73 20 6d 65 6d 62 65 72 73 0a 20 20 28 5b 23 35 33 37 5d .private.class.members...([#537]
95aa0 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 (https://github.com/mooz/js2-mod
95ac0 65 2f 69 73 73 75 65 73 2f 35 33 37 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 64 79 e/issues/537))..*.Support.for.dy
95ae0 6e 61 6d 69 63 20 69 6d 70 6f 72 74 73 20 61 6e 64 20 60 69 6d 70 6f 72 74 2e 6d 65 74 61 60 0a namic.imports.and.`import.meta`.
95b00 20 20 28 5b 23 35 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f ..([#547](https://github.com/moo
95b20 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 34 37 29 29 2e 0a 2a 20 53 75 70 70 6f z/js2-mode/issues/547))..*.Suppo
95b40 72 74 20 66 6f 72 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 20 69 6e 20 61 72 72 6f 77 20 66 rt.for.trailing.comma.in.arrow.f
95b60 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 28 5b 23 34 38 30 5d 28 68 74 74 unction.parameters...([#480](htt
95b80 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 ps://github.com/mooz/js2-mode/is
95ba0 73 75 65 73 2f 34 38 30 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 60 66 6f 72 20 61 sues/480))..*.Support.for.`for.a
95bc0 77 61 69 74 20 6f 66 60 20 73 79 6e 74 61 78 20 28 5b 23 35 34 33 5d 28 68 74 74 70 73 3a 2f 2f wait.of`.syntax.([#543](https://
95be0 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75 6c 6c 2f 35 34 github.com/mooz/js2-mode/pull/54
95c00 33 29 29 2e 0a 0a 23 23 20 32 30 32 30 2d 31 32 2d 32 30 0a 0a 2a 20 53 75 70 70 6f 72 74 20 66 3))...##.2020-12-20..*.Support.f
95c20 6f 72 20 6c 6f 67 69 63 61 6c 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 70 65 72 61 74 6f 72 73 20 or.logical.assignment.operators.
95c40 28 5b 23 35 36 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f ([#564](https://github.com/mooz/
95c60 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 36 34 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74 js2-mode/issues/564))..*.Support
95c80 20 66 6f 72 20 74 68 65 20 6e 75 6c 6c 69 73 68 20 63 6f 61 6c 65 73 63 69 6e 67 20 6f 70 65 72 .for.the.nullish.coalescing.oper
95ca0 61 74 6f 72 20 28 5b 23 35 36 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ator.([#561](https://github.com/
95cc0 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75 6c 6c 2f 35 36 31 29 29 2e 0a 2a 20 45 6d 61 63 mooz/js2-mode/pull/561))..*.Emac
95ce0 73 20 32 37 20 6e 6f 77 20 70 72 6f 76 69 64 65 73 20 69 6d 70 72 6f 76 65 64 20 4a 53 58 20 69 s.27.now.provides.improved.JSX.i
95d00 6e 64 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 2c 20 61 6c 6f 6e 67 20 77 69 74 68 0a 20 ndentation.support,.along.with..
95d20 20 6e 65 77 20 4a 53 58 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 61 6e 64 20 64 65 74 65 63 74 .new.JSX.highlighting.and.detect
95d40 69 6f 6e 20 73 75 70 70 6f 72 74 2e 20 49 6e 73 74 61 6c 6c 20 45 6d 61 63 73 20 32 37 20 61 6e ion.support..Install.Emacs.27.an
95d60 64 20 75 73 65 0a 20 20 60 6a 73 2d 6d 6f 64 65 60 20 77 69 74 68 20 60 6a 73 32 2d 6d 69 6e 6f d.use...`js-mode`.with.`js2-mino
95d80 72 2d 6d 6f 64 65 60 20 28 73 65 65 20 52 45 41 44 4d 45 29 2c 20 72 61 74 68 65 72 20 74 68 61 r-mode`.(see.README),.rather.tha
95da0 6e 0a 20 20 60 6a 73 32 2d 6a 73 78 2d 6d 6f 64 65 60 2e 0a 2a 20 55 73 69 6e 67 20 60 6a 73 32 n...`js2-jsx-mode`..*.Using.`js2
95dc0 2d 6a 73 78 2d 6d 6f 64 65 60 20 77 69 6c 6c 20 6e 6f 77 20 74 72 69 67 67 65 72 20 61 20 77 61 -jsx-mode`.will.now.trigger.a.wa
95de0 72 6e 69 6e 67 20 69 6e 20 45 6d 61 63 73 20 32 37 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 rning.in.Emacs.27..*.Support.for
95e00 20 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e 69 6e 67 20 6f 70 65 72 61 74 6f 72 20 60 3f 2e 60 .optional-chaining.operator.`?.`
95e20 0a 0a 23 23 20 32 30 31 39 2d 30 32 2d 31 39 0a 0a 2a 20 43 68 61 6e 67 65 64 20 74 68 65 20 64 ..##.2019-02-19..*.Changed.the.d
95e40 65 66 61 75 6c 74 20 6f 66 20 60 6a 73 32 2d 73 74 72 69 63 74 2d 74 72 61 69 6c 69 6e 67 2d 63 efault.of.`js2-strict-trailing-c
95e60 6f 6d 6d 61 2d 77 61 72 6e 69 6e 67 60 20 74 6f 20 6e 69 6c 2e 0a 0a 23 23 20 32 30 31 38 2d 30 omma-warning`.to.nil...##.2018-0
95e80 33 2d 30 31 0a 0a 2a 20 53 75 70 70 6f 72 74 20 73 69 6e 67 6c 65 2d 6c 69 6e 65 20 4a 53 44 6f 3-01..*.Support.single-line.JSDo
95ea0 63 73 2e 0a 2a 20 4e 65 77 20 66 61 63 65 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 cs..*.New.face.`js2-object-prope
95ec0 72 74 79 2d 61 63 63 65 73 73 60 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61 69 6c rty-access`..*.Support.for.trail
95ee0 69 6e 67 20 63 6f 6d 6d 61 20 69 6e 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 0a ing.comma.in.function.arguments.
95f00 2a 20 4a 53 44 6f 63 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 66 6f 72 20 60 40 79 69 65 6c 64 *.JSDoc.highlighting.for.`@yield
95f20 60 2c 20 60 40 79 69 65 6c 64 73 60 2c 20 60 40 61 62 73 74 72 61 63 74 60 2c 20 60 40 76 69 72 `,.`@yields`,.`@abstract`,.`@vir
95f40 74 75 61 6c 60 20 61 6e 64 20 60 40 74 79 70 65 64 65 66 60 2e 0a 2a 20 53 75 70 70 6f 72 74 20 tual`.and.`@typedef`..*.Support.
95f60 66 6f 72 20 61 6e 6f 6e 79 6d 6f 75 73 20 63 6c 61 73 73 20 65 78 70 6f 72 74 73 2e 0a 0a 23 23 for.anonymous.class.exports...##
95f80 20 32 30 31 37 2d 30 37 2d 32 31 0a 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 61 73 79 6e 63 .2017-07-21..*.Support.for.async
95fa0 20 61 72 72 6f 77 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 70 61 72 65 6e 74 68 65 .arrow.function.without.parenthe
95fc0 73 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 60 2f 2a 6a 73 6c 69 6e 74 60 20 64 65 ses..*.Support.for.`/*jslint`.de
95fe0 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 2a 20 55 73 65 72 20 6f 70 74 69 6f 6e 20 60 6a 73 32 2d 67 clarations..*.User.option.`js2-g
96000 65 74 70 72 6f 70 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 60 2e 0a 2a 20 53 75 70 70 etprop-has-side-effects`..*.Supp
96020 6f 72 74 20 66 6f 72 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 73 20 69 6e 20 66 75 6e 63 74 ort.for.trailing.commas.in.funct
96040 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 ion.parameter.lists..*.Support.f
96060 6f 72 20 45 53 37 20 70 75 62 6c 69 63 20 63 6c 61 73 73 20 66 69 65 6c 64 73 2e 0a 2a 20 4e 65 or.ES7.public.class.fields..*.Ne
96080 77 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 60 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69 w.user.option.`js2-ignored-warni
960a0 6e 67 73 60 2e 0a 0a 23 23 20 32 30 31 37 2d 30 31 2d 31 36 0a 0a 2a 20 60 6a 73 32 2d 69 6e 63 ngs`...##.2017-01-16..*.`js2-inc
960c0 6c 75 64 65 2d 2a 2d 65 78 74 65 72 6e 73 60 20 61 72 65 20 6e 6f 77 20 65 76 61 6c 75 61 74 65 lude-*-externs`.are.now.evaluate
960e0 64 20 6f 6e 20 64 65 6d 61 6e 64 2e 20 20 41 73 20 61 20 72 65 73 75 6c 74 2c 0a 20 20 74 68 65 d.on.demand...As.a.result,...the
96100 79 20 63 61 6e 20 6e 6f 77 20 62 65 20 65 66 66 65 63 74 69 76 65 6c 79 20 75 73 65 64 20 61 73 y.can.now.be.effectively.used.as
96120 20 66 69 6c 65 2d 20 6f 72 20 64 69 72 65 63 74 6f 72 79 2d 6c 6f 63 61 6c 0a 20 20 76 61 72 69 .file-.or.directory-local...vari
96140 61 62 6c 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 45 53 37 20 65 78 70 6f 6e 65 6e ables..*.Support.for.ES7.exponen
96160 74 69 61 74 69 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 0a 0a 23 23 20 32 30 31 36 2d 30 36 2d 32 33 tiation.operator...##.2016-06-23
96180 0a 0a 2a 20 4e 65 77 20 76 61 72 69 61 62 6c 65 20 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 73 75 6d ..*.New.variable.`js2-mode-assum
961a0 65 2d 73 74 72 69 63 74 60 2c 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 45 53 36 20 6d 6f 64 75 e-strict`,.for.use.with.ES6.modu
961c0 6c 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 4a 53 44 6f 63 20 40 63 61 6c 6c 62 61 les..*.Support.for.JSDoc.@callba
961e0 63 6b 2c 20 40 66 75 6e 63 20 61 6e 64 20 40 6d 65 74 68 6f 64 20 74 61 67 73 2e 0a 2a 20 4f 62 ck,.@func.and.@method.tags..*.Ob
96200 6a 65 63 74 20 70 72 6f 70 65 72 74 69 65 73 20 61 72 65 20 68 69 67 68 6c 69 67 68 74 65 64 20 ject.properties.are.highlighted.
96220 75 73 69 6e 67 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 61 63 65 3a 0a 20 20 60 6a 73 32 2d 6f using.a.different.face:...`js2-o
96240 62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 60 2c 20 77 68 69 63 68 20 68 61 73 20 6e 6f 20 63 6f bject-property`,.which.has.no.co
96260 6c 6f 72 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 2a 20 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 lor.by.default..*.Experimental.s
96280 75 70 70 6f 72 74 20 66 6f 72 20 6f 62 6a 65 63 74 20 72 65 73 74 2f 73 70 72 65 61 64 20 45 43 upport.for.object.rest/spread.EC
962a0 4d 41 53 63 72 69 70 74 20 70 72 6f 70 6f 73 61 6c 2e 0a 2a 20 60 6a 73 32 2d 67 65 74 74 65 72 MAScript.proposal..*.`js2-getter
962c0 2d 73 65 74 74 65 72 2d 6e 6f 64 65 60 20 69 73 20 72 65 6e 61 6d 65 64 20 74 6f 20 60 6a 73 32 -setter-node`.is.renamed.to.`js2
962e0 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 60 2c 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 0a 20 20 69 -method-node`,.together.with...i
96300 74 73 20 72 65 6c 61 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 2e 20 20 49 74 20 61 6c 72 65 61 64 ts.related.functions...It.alread
96320 79 20 68 61 6e 64 6c 65 73 20 67 65 6e 65 72 61 74 6f 72 20 6d 65 74 68 6f 64 73 2c 20 61 6e 64 y.handles.generator.methods,.and
96340 20 77 65 0a 20 20 61 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 73 79 6e 63 20 6d 65 .we...added.support.for.async.me
96360 74 68 6f 64 73 20 28 73 65 65 20 62 65 6c 6f 77 29 2c 20 73 6f 20 74 68 65 20 6f 6c 64 20 6e 61 thods.(see.below),.so.the.old.na
96380 6d 65 20 77 6f 75 6c 64 20 67 65 74 0a 20 20 6d 6f 72 65 20 63 6f 6e 66 75 73 69 6e 67 2e 0a 2a me.would.get...more.confusing..*
963a0 20 53 75 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c 74 20 70 61 72 61 6d 65 74 65 72 73 20 .Support.for.default.parameters.
963c0 69 6e 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 77 6f 72 in.destructuring...It.should.wor
963e0 6b 20 66 6f 72 20 62 6f 74 68 0a 20 20 6f 62 6a 65 63 74 73 20 61 6e 64 20 61 72 72 61 79 73 2c k.for.both...objects.and.arrays,
96400 20 69 6e 20 62 6f 74 68 20 6c 69 74 65 72 61 6c 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 20 61 .in.both.literals.and.function.a
96420 72 67 75 6d 65 6e 74 73 2e 0a 2a 20 4e 65 77 20 6d 6f 64 65 3a 20 60 6a 73 32 2d 6a 73 78 2d 6d rguments..*.New.mode:.`js2-jsx-m
96440 6f 64 65 60 2c 20 64 65 72 69 76 69 6e 67 20 66 72 6f 6d 20 60 6a 73 32 2d 6d 6f 64 65 60 2e 20 ode`,.deriving.from.`js2-mode`..
96460 20 53 75 70 70 6f 72 74 73 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6f 66 0a 20 20 4a 53 58 45 6c .Supports.indentation.of...JSXEl
96480 65 6d 65 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 72 61 70 70 65 64 20 77 69 74 68 69 6e ement.expressions.wrapped.within
964a0 20 70 61 72 65 6e 74 68 65 73 65 73 20 6f 72 20 61 73 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 .parentheses.or.as.function.argu
964c0 6d 65 6e 74 73 2e 0a 20 20 49 6e 64 65 6e 74 61 74 69 6f 6e 20 69 73 20 63 75 73 74 6f 6d 69 7a ments....Indentation.is.customiz
964e0 61 62 6c 65 20 76 69 61 20 60 73 67 6d 6c 2d 61 74 74 72 69 62 75 74 65 2d 6f 66 66 73 65 74 60 able.via.`sgml-attribute-offset`
96500 2e 0a 2a 20 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 73 79 ..*.Experimental.support.for.asy
96520 6e 63 2f 61 77 61 69 74 20 45 43 4d 41 53 63 72 69 70 74 20 70 72 6f 70 6f 73 61 6c 2e 0a 0a 23 nc/await.ECMAScript.proposal...#
96540 23 20 32 30 31 35 30 39 30 39 0a 0a 2a 20 60 6a 73 32 2d 6d 6f 64 65 60 20 6e 6f 77 20 64 65 72 #.20150909..*.`js2-mode`.now.der
96560 69 76 65 73 20 66 72 6f 6d 20 60 6a 73 2d 6d 6f 64 65 60 2e 20 54 68 61 74 20 6d 65 61 6e 73 20 ives.from.`js-mode`..That.means.
96580 74 68 65 20 66 6f 72 6d 65 72 0a 20 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 72 75 6e 20 60 the.former...function.will.run.`
965a0 6a 73 2d 6d 6f 64 65 2d 68 6f 6f 6b 60 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 60 6a 73 32 2d 6d js-mode-hook`,.as.well.as.`js2-m
965c0 6f 64 65 2d 68 6f 6f 6b 60 2e 20 54 68 65 0a 20 20 6b 65 79 20 62 69 6e 64 69 6e 67 73 20 77 69 ode-hook`..The...key.bindings.wi
965e0 6c 6c 20 64 65 66 61 75 6c 74 20 74 6f 20 60 6a 73 2d 6d 6f 64 65 2d 6d 61 70 60 20 77 68 65 72 ll.default.to.`js-mode-map`.wher
96600 65 20 74 68 65 79 27 72 65 20 6e 6f 74 20 73 65 74 20 69 6e 0a 20 20 60 6a 73 32 2d 6d 6f 64 65 e.they're.not.set.in...`js2-mode
96620 2d 6d 61 70 60 2e 20 41 6e 64 20 69 6e 20 45 6d 61 63 73 20 32 35 20 6f 72 20 6c 61 74 65 72 20 -map`..And.in.Emacs.25.or.later.
96640 28 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 73 6e 61 70 73 68 6f 74 0a 20 20 62 75 69 6c 64 73 (including.the.snapshot...builds
96660 29 2c 20 60 6a 73 32 2d 6d 6f 64 65 60 20 75 73 65 73 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 ),.`js2-mode`.uses.the.indentati
96680 6f 6e 20 63 6f 64 65 20 66 72 6f 6d 20 60 6a 73 2d 6d 6f 64 65 60 2e 20 20 57 68 65 72 65 0a 20 on.code.from.`js-mode`...Where..
966a0 20 66 65 61 73 69 62 6c 65 2c 20 74 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 20 28 61 6e 64 .feasible,.the.user.options.(and
966c0 20 66 75 6e 63 74 69 6f 6e 73 29 20 6e 6f 77 20 68 61 76 65 20 61 6c 69 61 73 65 73 2c 20 62 75 .functions).now.have.aliases,.bu
966e0 74 20 69 66 0a 20 20 79 6f 75 27 72 65 20 75 73 69 6e 67 20 45 6d 61 63 73 20 32 35 20 61 6e 64 t.if...you're.using.Emacs.25.and
96700 20 79 6f 75 20 73 65 65 20 61 6e 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 72 65 6c 61 74 65 64 20 .you.see.an.indentation-related.
96720 73 65 74 74 69 6e 67 0a 20 20 74 68 61 74 20 73 74 6f 70 70 65 64 20 77 6f 72 6b 69 6e 67 2c 20 setting...that.stopped.working,.
96740 74 72 79 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 try.looking.for.a.corresponding.
96760 6f 6e 65 20 69 6e 20 74 68 65 0a 20 20 60 6a 73 60 20 67 72 6f 75 70 3a 20 60 4d 2d 78 20 63 75 one.in.the...`js`.group:.`M-x.cu
96780 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45 54 20 6a 73 20 52 45 54 60 2e 0a 0a 2a 20 4e 65 stomize-group.RET.js.RET`...*.Ne
967a0 77 20 63 6f 6d 6d 61 6e 64 3a 20 60 6a 73 32 2d 6a 75 6d 70 2d 74 6f 2d 64 65 66 69 6e 69 74 69 w.command:.`js2-jump-to-definiti
967c0 6f 6e 60 2e 20 49 74 27 73 20 62 6f 75 6e 64 20 74 6f 20 60 4d 2d 2e 60 20 62 79 0a 20 20 64 65 on`..It's.bound.to.`M-.`.by...de
967e0 66 61 75 6c 74 2c 20 76 69 61 20 72 65 6d 61 70 70 69 6e 67 20 60 6a 73 2d 66 69 6e 64 2d 73 79 fault,.via.remapping.`js-find-sy
96800 6d 62 6f 6c 60 2e 20 54 6f 20 67 65 74 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c mbol`..To.get.back.to.the.defaul
96820 74 0a 20 20 60 4d 2d 2e 60 20 62 69 6e 64 69 6e 67 20 28 65 2e 67 2e 20 60 66 69 6e 64 2d 74 61 t...`M-.`.binding.(e.g..`find-ta
96840 67 60 29 2c 20 70 75 74 20 74 68 69 73 20 69 6e 20 79 6f 75 72 20 69 6e 69 74 20 66 69 6c 65 3a g`),.put.this.in.your.init.file:
96860 0a 0a 20 20 20 20 20 20 28 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 6a 73 20 28 64 65 ........(eval-after-load.'js.(de
96880 66 69 6e 65 2d 6b 65 79 20 6a 73 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 4d 2d 2e 22 29 fine-key.js-mode-map.(kbd."M-.")
968a0 20 6e 69 6c 29 29 0a 0a 23 23 20 32 30 31 35 30 37 31 33 0a 0a 2a 20 4d 6f 72 65 20 63 6f 6d 70 .nil))..##.20150713..*.More.comp
968c0 72 65 68 65 6e 73 69 76 65 20 73 74 72 69 63 74 20 6d 6f 64 65 20 77 61 72 6e 69 6e 67 73 20 61 rehensive.strict.mode.warnings.a
968e0 6e 64 20 73 79 6e 74 61 78 20 65 72 72 6f 72 73 2e 0a 2a 20 4e 65 77 20 6d 69 6e 6f 72 20 6d 6f nd.syntax.errors..*.New.minor.mo
96900 64 65 3a 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 de:.`js2-highlight-unused-variab
96920 6c 65 73 2d 6d 6f 64 65 60 2e 0a 2a 20 60 6a 73 32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69 les-mode`..*.`js2-pretty-multili
96940 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 60 20 63 61 6e 20 74 61 6b 65 20 74 68 65 20 76 61 ne-declarations`.can.take.the.va
96960 6c 75 65 20 60 64 79 6e 61 6d 69 63 60 20 6e 6f 77 2e 0a 0a 23 23 20 32 30 31 35 30 32 30 32 0a lue.`dynamic`.now...##.20150202.
96980 0a 53 75 70 70 6f 72 74 20 66 6f 72 3a 0a 0a 2a 20 5b 45 53 36 20 6d 6f 64 75 6c 65 73 5d 28 68 .Support.for:..*.[ES6.modules](h
969a0 74 74 70 3a 2f 2f 77 77 77 2e 32 61 6c 69 74 79 2e 63 6f 6d 2f 32 30 31 34 2f 30 39 2f 65 73 36 ttp://www.2ality.com/2014/09/es6
969c0 2d 6d 6f 64 75 6c 65 73 2d 66 69 6e 61 6c 2e 68 74 6d 6c 29 2e 0a 2a 20 5b 53 68 6f 72 74 2d 68 -modules-final.html)..*.[Short-h
969e0 61 6e 64 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 73 5d 28 68 74 74 70 3a 2f 2f 61 72 69 79 and.object.literals](http://ariy
96a00 61 2e 6f 66 69 6c 61 62 73 2e 63 6f 6d 2f 32 30 31 33 2f 30 32 2f 65 73 36 2d 61 6e 64 2d 6f 62 a.ofilabs.com/2013/02/es6-and-ob
96a20 6a 65 63 74 2d 6c 69 74 65 72 61 6c 2d 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 65 2d 73 68 6f 72 ject-literal-property-value-shor
96a40 74 68 61 6e 64 2e 68 74 6d 6c 29 2e 0a 2a 20 5b 4d 65 74 68 6f 64 20 64 65 66 69 6e 69 74 69 6f thand.html)..*.[Method.definitio
96a60 6e 73 5d 28 68 74 74 70 3a 2f 2f 61 72 69 79 61 2e 6f 66 69 6c 61 62 73 2e 63 6f 6d 2f 32 30 31 ns](http://ariya.ofilabs.com/201
96a80 33 2f 30 33 2f 65 73 36 2d 61 6e 64 2d 6d 65 74 68 6f 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 2e 3/03/es6-and-method-definitions.
96aa0 68 74 6d 6c 29 2e 0a 2a 20 5b 27 75 27 20 61 6e 64 20 27 79 27 20 52 65 67 45 78 70 20 66 6c 61 html)..*.['u'.and.'y'.RegExp.fla
96ac0 67 73 5d 28 68 74 74 70 73 3a 2f 2f 6d 61 74 68 69 61 73 62 79 6e 65 6e 73 2e 62 65 2f 6e 6f 74 gs](https://mathiasbynens.be/not
96ae0 65 73 2f 65 73 36 2d 75 6e 69 63 6f 64 65 2d 72 65 67 65 78 29 2e 0a 2a 20 5b 43 6f 6d 70 75 74 es/es6-unicode-regex)..*.[Comput
96b00 65 64 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65 73 5d 28 68 74 74 70 3a 2f 2f 70 65 6f 70 6c 65 ed.property.names](http://people
96b20 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 7e 6a 6f 72 65 6e 64 6f 72 66 66 2f 65 73 36 2d 64 72 61 .mozilla.org/~jorendorff/es6-dra
96b40 66 74 2e 68 74 6d 6c 23 73 65 63 2d 6f 62 6a 65 63 74 2d 69 6e 69 74 69 61 6c 69 7a 65 72 29 2e ft.html#sec-object-initializer).
96b60 0a 2a 20 5b 43 6c 61 73 73 20 73 74 61 74 65 6d 65 6e 74 73 20 61 6e 64 20 65 78 70 72 65 73 73 .*.[Class.statements.and.express
96b80 69 6f 6e 73 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 75 6b 65 68 6f 62 ions](https://github.com/lukehob
96ba0 61 6e 2f 65 73 36 66 65 61 74 75 72 65 73 23 63 6c 61 73 73 65 73 29 2e 0a 2a 20 5b 54 65 6d 70 an/es6features#classes)..*.[Temp
96bc0 6c 61 74 65 20 73 74 72 69 6e 67 73 5d 28 68 74 74 70 3a 2f 2f 74 63 33 39 77 69 6b 69 2e 63 61 late.strings](http://tc39wiki.ca
96be0 6c 63 75 6c 69 73 74 2e 6f 72 67 2f 65 73 36 2f 74 65 6d 70 6c 61 74 65 2d 73 74 72 69 6e 67 73 lculist.org/es6/template-strings
96c00 2f 29 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 61 67 67 65 64 20 6f 6e 65 73 2e 0a 0a 54 68 65 20 /),.including.tagged.ones...The.
96c20 76 61 72 69 61 62 6c 65 20 60 6a 73 32 2d 61 6c 6c 6f 77 2d 6b 65 79 77 6f 72 64 73 2d 61 73 2d variable.`js2-allow-keywords-as-
96c40 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 73 60 20 68 61 73 20 62 65 65 6e 0a 72 65 6d 6f 76 65 64 property-names`.has.been.removed
96c60 2e 20 49 6e 73 74 65 61 64 20 77 65 20 63 68 65 63 6b 20 69 66 20 60 6a 73 32 2d 6c 61 6e 67 75 ..Instead.we.check.if.`js2-langu
96c80 61 67 65 2d 76 65 72 73 69 6f 6e 60 20 69 73 20 31 38 30 20 6f 72 20 68 69 67 68 74 65 72 2e 0a age-version`.is.180.or.highter..
96ca0 0a 23 23 20 32 30 31 34 31 31 31 35 0a 0a 53 75 70 70 6f 72 74 20 66 6f 72 3a 0a 0a 2a 20 55 6e .##.20141115..Support.for:..*.Un
96cc0 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 69 64 65 6e 74 69 66 69 65 72 73 20 icode.characters.in.identifiers.
96ce0 28 69 6d 70 72 6f 76 65 64 29 2e 0a 2a 20 5b 44 65 6c 65 67 61 74 69 6e 67 20 79 69 65 6c 64 5d (improved)..*.[Delegating.yield]
96d00 28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d 61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b 75 (http://wiki.ecmascript.org/doku
96d20 2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a 67 65 6e 65 72 61 74 6f 72 73 23 64 65 6c 65 67 .php?id=harmony:generators#deleg
96d40 61 74 69 6e 67 5f 79 69 65 6c 64 29 2e 0a 2a 20 5b 45 53 36 20 6e 75 6d 65 72 69 63 20 6c 69 74 ating_yield)..*.[ES6.numeric.lit
96d60 65 72 61 6c 73 5d 28 68 74 74 70 73 3a 2f 2f 70 65 6f 70 6c 65 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 erals](https://people.mozilla.or
96d80 67 2f 7e 6a 6f 72 65 6e 64 6f 72 66 66 2f 65 73 36 2d 64 72 61 66 74 2e 68 74 6d 6c 23 73 65 63 g/~jorendorff/es6-draft.html#sec
96da0 2d 6c 69 74 65 72 61 6c 73 2d 6e 75 6d 65 72 69 63 2d 6c 69 74 65 72 61 6c 73 29 20 28 6f 63 74 -literals-numeric-literals).(oct
96dc0 61 6c 2c 20 62 69 6e 61 72 79 29 2e 0a 2a 20 48 61 72 6d 6f 6e 79 20 5b 61 72 72 61 79 20 61 6e al,.binary)..*.Harmony.[array.an
96de0 64 20 67 65 6e 65 72 61 74 6f 72 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 5d 28 68 74 74 70 d.generator.comprehensions](http
96e00 3a 2f 2f 77 69 6e 67 6f 6c 6f 67 2e 6f 72 67 2f 61 72 63 68 69 76 65 73 2f 32 30 31 34 2f 30 33 ://wingolog.org/archives/2014/03
96e20 2f 30 37 2f 65 73 36 2d 67 65 6e 65 72 61 74 6f 72 2d 61 6e 64 2d 61 72 72 61 79 2d 63 6f 6d 70 /07/es6-generator-and-array-comp
96e40 72 65 68 65 6e 73 69 6f 6e 73 2d 69 6e 2d 73 70 69 64 65 72 6d 6f 6e 6b 65 79 29 2e 0a 0a 23 23 rehensions-in-spidermonkey)...##
96e60 20 32 30 31 33 31 31 30 36 0a 0a 53 75 70 70 6f 72 74 20 66 6f 72 3a 0a 0a 2a 20 5b 41 72 72 6f .20131106..Support.for:..*.[Arro
96e80 77 20 66 75 6e 63 74 69 6f 6e 73 5d 28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d 61 73 63 72 w.functions](http://wiki.ecmascr
96ea0 69 70 74 2e 6f 72 67 2f 64 6f 6b 75 2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a 61 72 72 6f ipt.org/doku.php?id=harmony:arro
96ec0 77 5f 66 75 6e 63 74 69 6f 6e 5f 73 79 6e 74 61 78 29 0a 2a 20 5b 47 65 6e 65 72 61 74 6f 72 73 w_function_syntax).*.[Generators
96ee0 5d 28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d 61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b ](http://wiki.ecmascript.org/dok
96f00 75 2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a 67 65 6e 65 72 61 74 6f 72 73 29 0a 2a 20 5b u.php?id=harmony:generators).*.[
96f20 53 70 72 65 61 64 20 6f 70 65 72 61 74 6f 72 5d 28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d Spread.operator](http://wiki.ecm
96f40 61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b 75 2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a ascript.org/doku.php?id=harmony:
96f60 73 70 72 65 61 64 29 0a 0a 23 23 20 32 30 31 33 30 35 31 30 0a 0a 23 23 23 20 53 75 70 70 6f 72 spread)..##.20130510..###.Suppor
96f80 74 20 66 6f 72 20 4a 53 4c 69 6e 74 20 67 6c 6f 62 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a t.for.JSLint.global.declaration.
96fa0 0a 53 65 65 20 74 68 65 20 64 6f 63 73 74 72 69 6e 67 20 66 6f 72 20 60 6a 73 32 2d 69 6e 63 6c .See.the.docstring.for.`js2-incl
96fc0 75 64 65 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 60 2e 0a 0a 23 23 20 32 30 31 33 30 32 31 ude-jslint-globals`...##.2013021
96fe0 36 0a 0a 23 23 23 20 57 65 20 64 6f 6e 27 74 20 72 65 62 69 6e 64 20 60 52 45 54 60 20 61 6e 79 6..###.We.don't.rebind.`RET`.any
97000 6d 6f 72 65 0a 0a 42 65 63 61 75 73 65 20 77 65 6c 6c 2d 62 65 68 61 76 69 6e 67 20 6d 61 6a 6f more..Because.well-behaving.majo
97020 72 20 6d 6f 64 65 73 20 61 72 65 6e 27 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 64 6f 20 74 68 r.modes.aren't.supposed.to.do.th
97040 61 74 2e 0a 0a 53 6f 20 70 72 65 73 73 69 6e 67 20 69 74 20 77 6f 6e 27 74 20 63 6f 6e 74 69 6e at...So.pressing.it.won't.contin
97060 75 65 20 61 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 2c 20 6f 72 20 74 75 72 6e 20 61 20 73 74 ue.a.block.comment,.or.turn.a.st
97080 72 69 6e 67 20 69 6e 74 6f 20 61 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 2e 0a 50 72 65 73 73 ring.into.a.concatenation..Press
970a0 69 6e 67 20 60 4d 2d 6a 60 2c 20 68 6f 77 65 76 65 72 2c 20 77 69 6c 6c 2e 0a 0a 54 68 65 20 6f ing.`M-j`,.however,.will...The.o
970c0 70 74 69 6f 6e 73 20 60 6a 73 32 2d 69 6e 64 65 6e 74 2d 6f 6e 2d 65 6e 74 65 72 2d 6b 65 79 60 ptions.`js2-indent-on-enter-key`
970e0 20 61 6e 64 20 60 6a 73 32 2d 65 6e 74 65 72 2d 69 6e 64 65 6e 74 73 2d 6e 65 77 6c 69 6e 65 60 .and.`js2-enter-indents-newline`
97100 20 77 65 72 65 20 61 6c 73 6f 20 72 65 6d 6f 76 65 64 2e 0a 0a 54 6f 20 62 72 69 6e 67 20 62 61 .were.also.removed...To.bring.ba
97120 63 6b 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 65 68 61 76 69 6f 72 2c 20 70 75 74 20 74 68 ck.the.previous.behavior,.put.th
97140 69 73 20 69 6e 20 79 6f 75 72 20 69 6e 69 74 20 66 69 6c 65 3a 0a 0a 60 60 60 6a 73 0a 28 65 76 is.in.your.init.file:..```js.(ev
97160 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 27 28 64 65 66 69 al-after-load.'js2-mode...'(defi
97180 6e 65 2d 6b 65 79 20 6a 73 32 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20 ne-key.js2-mode-map.(kbd."RET").
971a0 27 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 29 29 0a 60 60 60 0a 0a 23 23 20 32 30 31 32 30 36 'js2-line-break)).```..##.201206
971c0 31 37 0a 0a 23 23 23 20 53 75 70 70 6f 72 74 20 66 6f 72 20 5b 64 65 66 61 75 6c 74 5d 28 68 74 17..###.Support.for.[default](ht
971e0 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55 tps://developer.mozilla.org/en-U
97200 53 2f 64 6f 63 73 2f 57 65 62 2f 4a 61 76 61 53 63 72 69 70 74 2f 52 65 66 65 72 65 6e 63 65 2f S/docs/Web/JavaScript/Reference/
97220 64 65 66 61 75 6c 74 5f 70 61 72 61 6d 65 74 65 72 73 29 20 61 6e 64 20 5b 72 65 73 74 5d 28 68 default_parameters).and.[rest](h
97240 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d ttps://developer.mozilla.org/en-
97260 55 53 2f 64 6f 63 73 2f 57 65 62 2f 4a 61 76 61 53 63 72 69 70 74 2f 52 65 66 65 72 65 6e 63 65 US/docs/Web/JavaScript/Reference
97280 2f 72 65 73 74 5f 70 61 72 61 6d 65 74 65 72 73 29 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 23 23 /rest_parameters).parameters..##
972a0 20 32 30 31 32 30 36 31 34 0a 0a 23 23 23 20 53 75 70 70 6f 72 74 20 66 6f 72 20 5b 66 6f 72 2e .20120614..###.Support.for.[for.
972c0 2e 6f 66 20 6c 6f 6f 70 73 5d 28 68 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f 7a .of.loops](https://developer.moz
972e0 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55 53 2f 64 6f 63 73 2f 57 65 62 2f 4a 61 76 61 53 63 72 69 illa.org/en-US/docs/Web/JavaScri
97300 70 74 2f 52 65 66 65 72 65 6e 63 65 2f 53 74 61 74 65 6d 65 6e 74 73 2f 66 6f 72 2e 2e 2e 6f 66 pt/Reference/Statements/for...of
97320 29 0a 0a 23 23 20 4f 6c 64 65 72 20 63 68 61 6e 67 65 73 0a 0a 23 23 23 20 50 6f 70 75 6c 61 72 )..##.Older.changes..###.Popular
97340 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 73 74 79 6c 65 0a 0a 60 60 60 6a 73 0a 5b 66 6f 6f 2c 20 .indentation.style..```js.[foo,.
97360 62 61 72 2c 20 62 61 7a 5d 2e 66 6f 72 45 61 63 68 28 66 75 6e 63 74 69 6f 6e 20 28 76 29 20 7b bar,.baz].forEach(function.(v).{
97380 0a 20 20 20 20 69 66 20 28 76 61 6c 69 64 61 74 65 28 76 29 29 0a 20 20 20 20 20 20 20 20 70 72 .....if.(validate(v)).........pr
973a0 6f 63 65 73 73 28 76 29 3b 0a 7d 29 3b 0a 0a 5b 61 2c 20 62 2c 20 63 5d 2e 73 6f 6d 65 28 66 75 ocess(v);.});..[a,.b,.c].some(fu
973c0 6e 63 74 69 6f 6e 20 28 76 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 76 61 6c 69 64 61 74 65 nction.(v).{.....return.validate
973e0 28 76 29 3b 0a 7d 29 3b 0a 60 60 60 0a 0a 23 23 23 20 50 72 65 74 74 79 20 6d 75 6c 74 69 6c 69 (v);.});.```..###.Pretty.multili
97400 6e 65 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 0a 49 6e 20 74 68 65 20 ne.variable.declaration..In.the.
97420 6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 2c 0a 0a 60 60 60 6a 73 0a 76 61 72 20 66 6f 6f 20 3d 20 original.mode,..```js.var.foo.=.
97440 31 30 2c 0a 62 61 72 20 3d 20 32 30 2c 0a 62 61 7a 20 3d 20 33 30 3b 0a 60 60 60 0a 0a 49 6e 20 10,.bar.=.20,.baz.=.30;.```..In.
97460 74 68 69 73 20 6d 6f 64 65 20 77 68 65 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 6a 73 32 this.mode.when.the.value.of.`js2
97480 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 60 20 -pretty-multiline-declarations`.
974a0 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 0a 0a 60 60 60 6a 73 0a 76 61 72 20 66 6f 6f 20 3d 20 31 30 2c is.non-nil,..```js.var.foo.=.10,
974c0 0a 20 20 20 20 62 61 72 20 3d 20 32 30 2c 0a 20 20 20 20 62 61 7a 20 3d 20 33 30 3b 0a 60 60 60 .....bar.=.20,.....baz.=.30;.```
974e0 0a 0a 23 23 23 20 41 62 62 72 65 76 69 61 74 65 64 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 ..###.Abbreviated.destructuring.
97500 61 73 73 69 67 6e 6d 65 6e 74 73 0a 0a 60 60 60 6a 73 0a 6c 65 74 20 7b 61 2c 20 62 7d 20 20 20 assignments..```js.let.{a,.b}...
97520 20 20 20 20 3d 20 7b 61 3a 20 31 30 2c 20 62 3a 20 32 30 7d 3b 20 2f 2f 20 41 62 62 72 65 76 69 ....=.{a:.10,.b:.20};.//.Abbrevi
97540 61 74 65 64 20 20 20 28 4e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 74 68 65 20 6f 72 69 ated...(Not.supported.in.the.ori
97560 67 69 6e 61 6c 20 6d 6f 64 65 29 0a 6c 65 74 20 7b 61 3a 20 61 2c 20 62 3a 20 62 7d 20 3d 20 7b ginal.mode).let.{a:.a,.b:.b}.=.{
97580 61 3a 20 31 30 2c 20 62 3a 20 32 30 7d 3b 20 2f 2f 20 53 61 6d 65 20 61 73 20 61 62 6f 76 65 20 a:.10,.b:.20};.//.Same.as.above.
975a0 28 53 75 70 70 6f 72 74 65 64 20 69 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 29 (Supported.in.the.original.mode)
975c0 0a 0a 28 66 75 6e 63 74 69 6f 6e 20 28 7b 72 65 73 70 6f 6e 73 65 54 65 78 74 7d 29 20 7b 20 2f ..(function.({responseText}).{./
975e0 2a 20 2a 2f 20 7d 29 28 78 68 72 29 3b 20 2f 2f 20 41 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 *.*/.})(xhr);.//.As.the.argument
97600 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 0a 66 6f 72 20 28 6c 65 74 20 5b 6b 2c 20 7b 20 6e 61 6d .of.function..for.(let.[k,.{.nam
97620 65 2c 20 61 67 65 20 7d 5d 20 69 6e 20 49 74 65 72 61 74 6f 72 28 6f 62 6a 29 29 20 2f 2f 20 6e e,.age.}].in.Iterator(obj)).//.n
97640 65 73 74 65 64 0a 20 20 20 20 70 72 69 6e 74 28 6b 2c 20 6e 61 6d 65 2c 20 61 67 65 29 3b 0a 60 ested.....print(k,.name,.age);.`
97660 60 60 0a 0a 23 23 23 20 45 78 70 72 65 73 73 69 6f 6e 20 63 6c 6f 73 75 72 65 20 69 6e 20 70 72 ``..###.Expression.closure.in.pr
97680 6f 70 65 72 74 79 20 76 61 6c 75 65 0a 0a 60 60 60 6a 73 0a 6c 65 74 20 77 6f 72 6b 65 72 20 3d operty.value..```js.let.worker.=
976a0 20 7b 0a 20 20 20 20 67 65 74 20 61 67 65 28 29 20 32 30 2c 0a 20 20 20 20 67 65 74 20 73 65 78 .{.....get.age().20,.....get.sex
976c0 28 29 20 22 6d 61 6c 65 22 2c 0a 20 20 20 20 66 69 72 65 3a 20 66 75 6e 63 74 69 6f 6e 20 28 29 ()."male",.....fire:.function.()
976e0 20 5f 66 69 72 65 28 29 0a 7d 3b 0a 60 60 60 0a 0a 23 23 23 20 46 69 78 20 66 6f 72 20 6f 64 64 ._fire().};.```..###.Fix.for.odd
97700 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6f 66 20 22 65 6c 73 65 20 69 66 22 20 77 69 74 68 20 6e .indentation.of."else.if".with.n
97720 6f 20 62 72 61 63 65 73 0a 0a 49 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 2c 0a o.braces..In.the.original.mode,.
97740 0a 60 60 60 6a 73 0a 69 66 20 28 66 6f 6f 29 0a 20 20 20 20 72 65 74 75 72 6e 20 66 6f 6f 3b 0a .```js.if.(foo).....return.foo;.
97760 65 6c 73 65 20 69 66 20 28 62 61 72 29 0a 72 65 74 75 72 6e 20 62 61 72 3b 20 20 20 20 20 20 2f else.if.(bar).return.bar;....../
97780 2f 20 68 65 72 65 0a 60 60 60 0a 0a 49 6e 20 74 68 69 73 20 6d 6f 64 65 2c 0a 0a 60 60 60 6a 73 /.here.```..In.this.mode,..```js
977a0 0a 69 66 20 28 66 6f 6f 29 0a 20 20 20 20 72 65 74 75 72 6e 20 66 6f 6f 3b 0a 65 6c 73 65 20 69 .if.(foo).....return.foo;.else.i
977c0 66 20 28 62 61 72 29 0a 20 20 20 20 72 65 74 75 72 6e 20 62 61 72 3b 20 20 2f 2f 20 66 69 78 65 f.(bar).....return.bar;..//.fixe
977e0 64 0a 60 60 60 0a 0a 23 23 23 20 49 6d 65 6e 75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 75 6e d.```..###.Imenu.support.for.fun
97800 63 74 69 6f 6e 20 6e 65 73 74 69 6e 67 0a 0a 53 75 70 70 6f 72 74 73 20 66 75 6e 63 74 69 6f 6e ction.nesting..Supports.function
97820 20 6e 65 73 74 69 6e 67 20 61 6e 64 20 61 6e 6f 6e 79 6d 6f 75 73 20 77 72 61 70 70 65 72 73 3a .nesting.and.anonymous.wrappers:
97840 0a 0a 60 60 60 6a 73 0a 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 76 61 72 20 66 6f 6f 20 ..```js.(function().{...var.foo.
97860 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 62 61 72 28 =.function().{.....function.bar(
97880 29 20 7b 20 2f 2f 20 73 68 6f 77 6e 20 61 73 20 66 6f 6f 2e 62 61 72 2e 3c 64 65 66 69 6e 69 74 ).{.//.shown.as.foo.bar.<definit
978a0 69 6f 6e 2d 31 3e 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 62 61 7a 28 29 20 7b 7d 20 2f ion-1>.......function.baz().{}./
978c0 2f 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 0a 20 20 20 20 20 20 76 61 72 20 71 75 78 20 3d 20 66 75 /.foo.bar.baz.......var.qux.=.fu
978e0 6e 63 74 69 6f 6e 28 29 20 7b 7d 3b 20 2f 2f 20 66 6f 6f 2e 62 61 72 2e 71 75 75 78 0a 20 20 20 nction().{};.//.foo.bar.quux....
97900 20 7d 0a 20 20 7d 3b 0a 7d 29 3b 0a 60 60 60 0a 0a 45 78 61 6d 70 6c 65 73 20 6f 66 20 6f 75 74 .}...};.});.```..Examples.of.out
97920 70 75 74 3a 0a 0a 2a 20 5b 6a 51 75 65 72 79 20 31 2e 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 73 put:..*.[jQuery.1.5](https://gis
97940 74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38 34 35 34 34 39 29 0a 2a 20 5b 55 6e 64 65 72 73 63 6f t.github.com/845449).*.[Undersco
97960 72 65 2e 6a 73 5d 28 68 74 74 70 73 3a 2f 2f 67 69 73 74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38 re.js](https://gist.github.com/8
97980 32 34 32 36 32 29 0a 2a 20 5b 42 61 63 6b 62 6f 6e 65 2e 6a 73 5d 28 68 74 74 70 73 3a 2f 2f 67 24262).*.[Backbone.js](https://g
979a0 69 73 74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38 32 34 32 36 30 29 0a 0a 46 6f 72 20 6c 69 62 72 ist.github.com/824260)..For.libr
979c0 61 72 79 2d 73 70 65 63 69 66 69 63 20 65 78 74 65 6e 73 69 6f 6e 20 6d 65 74 68 6f 64 73 20 6c ary-specific.extension.methods.l
979e0 69 6b 65 20 60 24 2e 65 78 74 65 6e 64 60 20 61 6e 64 20 60 64 6f 6a 6f 2e 64 65 63 6c 61 72 65 ike.`$.extend`.and.`dojo.declare
97a00 60 2c 20 73 65 65 20 5b 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 5d 28 2f 6d 6f 6f 7a 2f `,.see.[js2-imenu-extras](/mooz/
97a20 6a 73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 6a 73 32 2d 69 6d 65 6e 75 2d 65 js2-mode/blob/master/js2-imenu-e
97a40 78 74 72 61 73 2e 65 6c 29 2e 0a 0a 23 23 23 20 55 6e 64 65 63 6c 61 72 65 64 2f 65 78 74 65 72 xtras.el)...###.Undeclared/exter
97a60 6e 61 6c 20 76 61 72 69 61 62 6c 65 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 0a 4f 72 69 67 nal.variables.highlighting..Orig
97a80 69 6e 61 6c 20 6d 6f 64 65 20 68 69 67 68 6c 69 67 68 74 73 20 74 68 65 6d 20 6f 6e 6c 79 20 6f inal.mode.highlights.them.only.o
97aa0 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 6f 66 20 61 73 73 69 67 6e 6d 65 6e 74 73 3a 0a n.the.left.side.of.assignments:.
97ac0 0a 60 60 60 6a 73 0a 76 61 72 20 68 6f 75 73 65 3b 0a 68 6f 73 65 20 3d 20 6e 65 77 20 48 6f 75 .```js.var.house;.hose.=.new.Hou
97ae0 73 65 28 29 3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20 22 68 6f 73 65 22 0a 60 60 60 0a 0a se();.//.highlights."hose".```..
97b00 48 65 72 65 20 74 68 65 79 20 61 72 65 20 68 69 67 68 6c 69 67 68 74 65 64 20 69 6e 20 61 6c 6c Here.they.are.highlighted.in.all
97b20 20 65 78 70 72 65 73 73 69 6f 6e 73 3a 0a 0a 60 60 60 6a 73 0a 66 75 6e 63 74 69 6f 6e 20 66 65 .expressions:..```js.function.fe
97b40 65 64 28 66 69 73 68 65 73 2c 20 66 6f 6f 64 29 20 7b 0a 20 20 20 20 66 6f 72 20 65 61 63 68 20 ed(fishes,.food).{.....for.each.
97b60 28 76 61 72 20 66 69 73 68 20 69 6e 20 66 73 68 65 73 29 20 7b 20 2f 2f 20 68 69 67 68 6c 69 67 (var.fish.in.fshes).{.//.highlig
97b80 68 74 73 20 22 66 73 68 65 73 22 0a 20 20 20 20 20 20 20 20 66 6f 6f 64 2e 66 65 65 64 28 66 73 hts."fshes".........food.feed(fs
97ba0 68 29 3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20 22 66 73 68 22 0a 20 20 20 20 7d 0a 20 20 h);.//.highlights."fsh".....}...
97bc0 20 20 68 6f 6f 64 2e 64 69 73 63 61 72 64 28 29 3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20 ..hood.discard();.//.highlights.
97be0 22 68 6f 6f 64 22 0a 7d 0a 60 60 60 0a 0a 44 65 73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69 "hood".}.```..Destructuring.assi
97c00 67 6e 6d 65 6e 74 73 20 61 6e 64 20 61 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 gnments.and.array.comprehensions
97c20 20 28 4a 53 20 31 2e 37 29 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 3a 0a 0a 60 60 60 6a 73 0a .(JS.1.7).are.supported:..```js.
97c40 6c 65 74 20 74 68 72 65 65 2c 20 5b 6f 6e 65 2c 20 74 77 6f 5d 20 3d 20 5b 31 2c 20 32 5d 3b 0a let.three,.[one,.two].=.[1,.2];.
97c60 74 68 65 65 20 3d 20 6f 6e 65 20 2b 20 74 77 6f 3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20 thee.=.one.+.two;.//.highlights.
97c80 22 74 68 65 65 22 0a 0a 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 6e 75 65 28 67 6f 6f 64 73 29 20 "thee"..function.revenue(goods).
97ca0 7b 0a 20 20 20 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20 22 63 6f 61 73 74 22 0a 20 20 20 20 {.....//.highlights."coast".....
97cc0 72 65 74 75 72 6e 20 5b 70 72 69 63 65 20 2d 20 63 6f 61 73 74 20 66 6f 72 20 65 61 63 68 20 28 return.[price.-.coast.for.each.(
97ce0 7b 70 72 69 63 65 2c 20 63 6f 73 74 7d 20 69 6e 20 67 6f 6f 64 73 29 5d 2e 72 65 64 75 63 65 28 {price,.cost}.in.goods)].reduce(
97d00 61 64 64 29 3b 0a 7d 0a 60 60 60 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 add);.}.```.....................
97d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e00 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 js2-mode-20231224/README.md.....
97e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
97e80 30 30 30 35 35 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 31 35 00 20 30 00 00 00 0005540.00000000000.013315..0...
97ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
97f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
97f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98000 41 62 6f 75 74 20 5b 21 5b 42 75 69 6c 64 20 53 74 61 74 75 73 5d 28 68 74 74 70 73 3a 2f 2f 67 About.[![Build.Status](https://g
98020 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 61 63 74 69 6f 6e 73 2f ithub.com/mooz/js2-mode/actions/
98040 77 6f 72 6b 66 6c 6f 77 73 2f 74 65 73 74 2e 79 6d 6c 2f 62 61 64 67 65 2e 73 76 67 29 5d 28 68 workflows/test.yml/badge.svg)](h
98060 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f ttps://github.com/mooz/js2-mode/
98080 61 63 74 69 6f 6e 73 2f 77 6f 72 6b 66 6c 6f 77 73 2f 74 65 73 74 2e 79 6d 6c 29 20 5b 21 5b 47 actions/workflows/test.yml).[![G
980a0 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 NU.ELPA](https://elpa.gnu.org/pa
980c0 63 6b 61 67 65 73 2f 6a 73 32 2d 6d 6f 64 65 2e 73 76 67 29 5d 28 68 74 74 70 73 3a 2f 2f 65 6c ckages/js2-mode.svg)](https://el
980e0 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 6a 73 32 2d 6d 6f 64 65 2e 68 74 6d pa.gnu.org/packages/js2-mode.htm
98100 6c 29 20 5b 21 5b 4d 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 70 l).[![MELPA](https://melpa.org/p
98120 61 63 6b 61 67 65 73 2f 6a 73 32 2d 6d 6f 64 65 2d 62 61 64 67 65 2e 73 76 67 29 5d 28 68 74 74 ackages/js2-mode-badge.svg)](htt
98140 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 6a 73 32 2d 6d 6f 64 65 29 0a 3d 3d 3d 3d 3d ps://melpa.org/#/js2-mode).=====
98160 3d 0a 0a 49 6d 70 72 6f 76 65 64 20 4a 61 76 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 20 6d =..Improved.JavaScript.editing.m
98180 6f 64 65 20 66 6f 72 20 47 4e 55 20 45 6d 61 63 73 20 28 5b 64 65 73 63 72 69 70 74 69 6f 6e 20 ode.for.GNU.Emacs.([description.
981a0 68 65 72 65 5d 28 68 74 74 70 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67 here](http://elpa.gnu.org/packag
981c0 65 73 2f 6a 73 32 2d 6d 6f 64 65 2e 68 74 6d 6c 29 29 2e 0a 0a 46 6f 72 20 73 6f 6d 65 20 6f 66 es/js2-mode.html))...For.some.of
981e0 20 74 68 65 20 6c 61 74 65 73 74 20 63 68 61 6e 67 65 73 2c 20 73 65 65 20 5b 6c 61 74 65 73 74 .the.latest.changes,.see.[latest
98200 20 75 73 65 72 2d 76 69 73 69 62 6c 65 20 63 68 61 6e 67 65 73 5d 28 68 74 74 70 73 3a 2f 2f 67 .user-visible.changes](https://g
98220 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 6d 61 73 ithub.com/mooz/js2-mode/blob/mas
98240 74 65 72 2f 4e 45 57 53 2e 6d 64 29 2e 0a 0a 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 3d 3d 3d 3d ter/NEWS.md)...Installation.====
98260 3d 3d 0a 0a 54 68 65 20 73 74 61 62 6c 65 20 76 65 72 73 69 6f 6e 73 20 61 72 65 20 68 6f 73 74 ==..The.stable.versions.are.host
98280 65 64 20 61 74 20 5b 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 3a 2f 2f 65 6c 70 61 2e 67 6e 75 ed.at.[GNU.ELPA](http://elpa.gnu
982a0 2e 6f 72 67 2f 29 0a 28 3c 6b 62 64 3e 4d 2d 78 20 6c 69 73 74 2d 70 61 63 6b 61 67 65 73 3c 2f .org/).(<kbd>M-x.list-packages</
982c0 6b 62 64 3e 29 2e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 kbd>)...You.can.also.install.the
982e0 20 6c 61 74 65 73 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 76 65 72 73 69 6f 6e 20 66 72 6f 6d .latest.development.version.from
98300 0a 5b 4d 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 67 65 74 .[MELPA](https://melpa.org/#/get
98320 74 69 6e 67 2d 73 74 61 72 74 65 64 29 2e 0a 0a 52 65 71 75 69 72 65 6d 65 6e 74 73 0a 3d 3d 3d ting-started)...Requirements.===
98340 3d 3d 3d 0a 0a 45 6d 61 63 73 20 32 34 2e 31 2b 20 61 6e 64 20 60 63 6c 2d 6c 69 62 60 20 28 65 ===..Emacs.24.1+.and.`cl-lib`.(e
98360 69 74 68 65 72 20 62 75 69 6c 74 2d 69 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 66 72 6f 6d ither.built-in.or.installed.from
98380 20 47 4e 55 20 45 4c 50 41 29 2e 0a 0a 52 65 61 63 74 20 61 6e 64 20 4a 53 58 0a 3d 3d 3d 3d 3d .GNU.ELPA)...React.and.JSX.=====
983a0 3d 0a 0a 54 68 65 20 63 75 72 72 65 6e 74 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 73 6f 6c =..The.currently.recommended.sol
983c0 75 74 69 6f 6e 20 69 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 45 6d 61 63 73 20 32 37 20 28 79 6f ution.is.to.install.Emacs.27.(yo
983e0 75 20 63 61 6e 20 5b 62 75 69 6c 64 20 66 72 6f 6d 0a 73 6f 75 72 63 65 5d 28 68 74 74 70 3a 2f u.can.[build.from.source](http:/
98400 2f 67 69 74 2e 73 61 76 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 67 2f 63 67 69 74 2f 65 6d 61 63 73 /git.savannah.gnu.org/cgit/emacs
98420 2e 67 69 74 2f 74 72 65 65 2f 49 4e 53 54 41 4c 4c 2e 52 45 50 4f 29 0a 6f 72 20 65 2e 67 2e 20 .git/tree/INSTALL.REPO).or.e.g..
98440 69 6e 73 74 61 6c 6c 20 61 20 73 6e 61 70 73 68 6f 74 20 66 72 6f 6d 20 61 0a 5b 50 50 41 5d 28 install.a.snapshot.from.a.[PPA](
98460 68 74 74 70 73 3a 2f 2f 6c 61 75 6e 63 68 70 61 64 2e 6e 65 74 2f 7e 75 62 75 6e 74 75 2d 65 6c https://launchpad.net/~ubuntu-el
98480 69 73 70 2f 2b 61 72 63 68 69 76 65 2f 75 62 75 6e 74 75 2f 70 70 61 29 29 20 61 6e 64 0a 75 73 isp/+archive/ubuntu/ppa)).and.us
984a0 65 20 60 6a 73 2d 6d 6f 64 65 60 20 61 73 20 74 68 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 2e 20 54 e.`js-mode`.as.the.major.mode..T
984c0 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 4a 53 32 20 41 53 54 20 61 6e 64 20 74 68 o.make.use.of.the.JS2.AST.and.th
984e0 65 0a 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 69 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 69 e.packages.that.integrate.with.i
98500 74 2c 20 77 65 20 72 65 63 6f 6d 6d 65 6e 64 20 60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 60 t,.we.recommend.`js2-minor-mode`
98520 2e 20 53 65 65 0a 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 5b 69 6e 73 74 72 75 63 ..See.the.corresponding.[instruc
98540 74 69 6f 6e 73 20 69 6e 20 74 68 65 0a 43 6f 6d 6d 65 6e 74 61 72 79 5d 28 68 74 74 70 73 3a 2f tions.in.the.Commentary](https:/
98560 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 62 /github.com/mooz/js2-mode/blob/b
98580 62 37 33 34 36 31 63 32 63 37 30 34 38 64 38 31 31 62 33 38 65 36 62 35 33 33 61 33 30 66 62 35 b73461c2c7048d811b38e6b533a30fb5
985a0 66 64 63 65 61 39 33 2f 6a 73 32 2d 6d 6f 64 65 2e 65 6c 23 4c 35 37 29 2e 0a 0a 60 6a 73 2d 6d fdcea93/js2-mode.el#L57)...`js-m
985c0 6f 64 65 60 20 69 6e 20 45 6d 61 63 73 20 32 37 20 69 6e 63 6c 75 64 65 73 20 66 75 6c 6c 20 73 ode`.in.Emacs.27.includes.full.s
985e0 75 70 70 6f 72 74 20 66 6f 72 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 61 upport.for.syntax.highlighting.a
98600 6e 64 20 69 6e 64 65 6e 74 69 6e 67 20 6f 66 20 4a 53 58 20 73 79 6e 74 61 78 2e 0a 0a 5b 72 6a nd.indenting.of.JSX.syntax...[rj
98620 73 78 2d 6d 6f 64 65 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 65 6c 69 sx-mode](https://github.com/feli
98640 70 65 6f 63 68 6f 61 2f 72 6a 73 78 2d 6d 6f 64 65 2f 29 20 69 73 20 61 6e 0a 61 6c 74 65 72 6e peochoa/rjsx-mode/).is.an.altern
98660 61 74 69 76 65 20 6f 70 74 69 6f 6e 20 77 68 69 63 68 20 63 6f 6d 65 73 20 77 69 74 68 20 63 65 ative.option.which.comes.with.ce
98680 72 74 61 69 6e 20 74 72 61 64 65 6f 66 66 73 2e 0a 0a 42 75 67 73 0a 3d 3d 3d 3d 0a 0a 2a 20 53 rtain.tradeoffs...Bugs.====..*.S
986a0 65 65 20 62 72 6f 6b 65 6e 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 61 6e ee.broken.syntax.highlighting.an
986c0 64 20 74 69 6d 65 72 20 65 72 72 6f 72 73 3f 20 52 65 63 65 6e 74 6c 79 20 75 70 67 72 61 64 65 d.timer.errors?.Recently.upgrade
986e0 64 0a 45 6d 61 63 73 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 32 34 2e 32 20 6f 72 20 65 61 72 d.Emacs.from.version.24.2.or.ear
98700 6c 69 65 72 3f 20 54 72 79 0a 5b 72 65 69 6e 73 74 61 6c 6c 69 6e 67 20 6f 72 20 62 79 74 65 2d lier?.Try.[reinstalling.or.byte-
98720 72 65 63 6f 6d 70 69 6c 69 6e 67 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f recompiling](https://github.com/
98740 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 37 32 29 0a 74 68 65 20 70 61 63 mooz/js2-mode/issues/72).the.pac
98760 6b 61 67 65 2e 0a 0a 2a 20 41 6e 79 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d kage...*.Any.indentation.problem
98780 73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 70 6f 72 74 65 64 20 77 69 74 68 20 60 4d 2d 78 20 72 s.should.be.reported.with.`M-x.r
987a0 65 70 6f 72 74 2d 65 6d 61 63 73 2d 62 75 67 60 0a 28 70 6c 65 61 73 65 20 74 72 79 20 72 65 70 eport-emacs-bug`.(please.try.rep
987c0 72 6f 64 75 63 69 6e 67 20 74 68 65 6d 20 77 69 74 68 20 60 6a 73 2d 6d 6f 64 65 60 20 66 69 72 roducing.them.with.`js-mode`.fir
987e0 73 74 2c 20 66 6f 72 20 63 6c 61 72 69 74 79 29 2e 0a 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 st,.for.clarity)..Starting.with.
98800 45 6d 61 63 73 20 32 35 2c 20 60 6a 73 32 2d 6d 6f 64 65 60 20 64 65 6c 65 67 61 74 65 73 20 69 Emacs.25,.`js2-mode`.delegates.i
98820 6e 64 65 6e 74 61 74 69 6f 6e 20 74 6f 0a 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 65 6e ndentation.to.the.indentation.en
98840 67 69 6e 65 20 6f 66 20 60 6a 73 2d 6d 6f 64 65 60 2e 0a 0a 50 6c 65 61 73 65 20 72 65 70 6f 72 gine.of.`js-mode`...Please.repor
98860 74 20 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 73 20 61 74 20 3c 68 74 74 70 3a 2f 2f 67 69 74 68 t.other.problems.at.<http://gith
98880 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 3e 2e 0a 0a 43 ub.com/mooz/js2-mode/issues>...C
988a0 6f 6e 74 72 69 62 75 74 69 6e 67 0a 3d 3d 3d 3d 3d 3d 0a 0a 60 6a 73 32 2d 6d 6f 64 65 60 20 69 ontributing.======..`js2-mode`.i
988c0 73 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 73 61 6d 65 0a 5b 63 6f 70 79 72 69 67 68 74 s.subject.to.the.same.[copyright
988e0 20 61 73 73 69 67 6e 6d 65 6e 74 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f .assignment](http://www.gnu.org/
98900 70 72 65 70 2f 6d 61 69 6e 74 61 69 6e 2f 68 74 6d 6c 5f 6e 6f 64 65 2f 43 6f 70 79 72 69 67 68 prep/maintain/html_node/Copyrigh
98920 74 2d 50 61 70 65 72 73 2e 68 74 6d 6c 29 0a 70 6f 6c 69 63 79 20 61 73 20 45 6d 61 63 73 20 69 t-Papers.html).policy.as.Emacs.i
98940 74 73 65 6c 66 2c 20 60 6f 72 67 2d 6d 6f 64 65 60 2c 20 60 43 45 44 45 54 60 20 61 6e 64 20 6f tself,.`org-mode`,.`CEDET`.and.o
98960 74 68 65 72 20 70 61 63 6b 61 67 65 73 20 69 6e 0a 5b 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 ther.packages.in.[GNU.ELPA](http
98980 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 29 2e 0a 0a 41 6e 79 ://elpa.gnu.org/packages/)...Any
989a0 0a 5b 6c 65 67 61 6c 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 5d 28 68 74 74 70 3a 2f 2f 77 77 .[legally.significant](http://ww
989c0 77 2e 67 6e 75 2e 6f 72 67 2f 70 72 65 70 2f 6d 61 69 6e 74 61 69 6e 2f 68 74 6d 6c 5f 6e 6f 64 w.gnu.org/prep/maintain/html_nod
989e0 65 2f 4c 65 67 61 6c 6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 2e 68 74 6d 6c 23 4c 65 67 61 6c e/Legally-Significant.html#Legal
98a00 6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 29 0a 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 63 61 ly-Significant).contributions.ca
98a20 6e 20 6f 6e 6c 79 20 62 65 20 61 63 63 65 70 74 65 64 20 61 66 74 65 72 20 74 68 65 20 61 75 74 n.only.be.accepted.after.the.aut
98a40 68 6f 72 20 68 61 73 20 63 6f 6d 70 6c 65 74 65 64 20 74 68 65 69 72 0a 70 61 70 65 72 77 6f 72 hor.has.completed.their.paperwor
98a60 6b 2e 20 50 6c 65 61 73 65 20 61 73 6b 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 20 66 6f k..Please.ask.for.the.request.fo
98a80 72 6d 2c 20 61 6e 64 20 77 65 27 6c 6c 20 73 65 6e 64 20 69 74 20 74 6f 20 79 6f 75 2e 0a 0a 53 rm,.and.we'll.send.it.to.you...S
98aa0 65 65 20 41 6c 73 6f 0a 3d 3d 3d 3d 3d 3d 0a 0a 53 6f 6d 65 20 74 68 69 72 64 2d 70 61 72 74 79 ee.Also.======..Some.third-party
98ac0 20 6d 6f 64 65 73 20 74 68 61 74 20 75 73 65 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 73 79 .modes.that.use.the.generated.sy
98ae0 6e 74 61 78 20 74 72 65 65 3a 0a 0a 2a 20 5b 6a 73 32 2d 72 65 66 61 63 74 6f 72 5d 28 68 74 74 ntax.tree:..*.[js2-refactor](htt
98b00 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 6e 61 72 73 2f 6a 73 32 2d 72 65 66 61 ps://github.com/magnars/js2-refa
98b20 63 74 6f 72 2e 65 6c 29 0a 2a 20 5b 73 6b 65 77 65 72 2d 6d 6f 64 65 5d 28 68 74 74 70 73 3a 2f ctor.el).*.[skewer-mode](https:/
98b40 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 6b 65 65 74 6f 2f 73 6b 65 77 65 72 2d 6d 6f 64 65 29 0a /github.com/skeeto/skewer-mode).
98b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c00 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 6a 73 32 2d 6d 6f 64 65 2d 70 6b 67 2e 65 js2-mode-20231224/js2-mode-pkg.e
98c20 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l...............................
98c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
98c80 30 30 30 31 30 37 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 35 35 00 20 30 00 00 00 0001074.00000000000.014555..0...
98ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
98d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
98d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98e00 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
98e20 20 66 72 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 .from.js2-mode.el..-*-.no-byte-c
98e40 6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 6a ompile:.t.-*-.(define-package."j
98e60 73 32 2d 6d 6f 64 65 22 20 22 32 30 32 33 31 32 32 34 22 20 22 49 6d 70 72 6f 76 65 64 20 4a 61 s2-mode"."20231224"."Improved.Ja
98e80 76 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 20 6d 6f 64 65 22 20 27 28 28 65 6d 61 63 73 20 vaScript.editing.mode".'((emacs.
98ea0 22 32 34 2e 31 22 29 20 28 63 6c 2d 6c 69 62 20 22 30 2e 35 22 29 29 20 3a 63 6f 6d 6d 69 74 20 "24.1").(cl-lib."0.5")).:commit.
98ec0 22 30 31 30 61 35 33 36 64 61 36 64 66 33 34 35 61 30 62 39 61 35 35 62 62 64 38 39 32 66 35 66 "010a536da6df345a0b9a55bbd892f5f
98ee0 34 64 30 64 39 66 64 66 63 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 53 74 65 76 65 20 59 65 4d0d9fdfc".:authors.'(("Steve.Ye
98f00 67 67 65 22 20 2e 20 22 73 74 65 76 65 2e 79 65 67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20 gge"..."steve.yegge@gmail.com").
98f20 28 22 6d 6f 6f 7a 22 20 2e 20 22 73 74 69 6c 6c 70 65 64 61 6e 74 40 67 6d 61 69 6c 2e 63 6f 6d ("mooz"..."stillpedant@gmail.com
98f40 22 29 20 28 22 44 6d 69 74 72 79 20 47 75 74 6f 76 22 20 2e 20 22 64 67 75 74 6f 76 40 79 61 6e ").("Dmitry.Gutov"..."dgutov@yan
98f60 64 65 78 2e 72 75 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 20 27 28 28 22 53 74 65 76 65 20 dex.ru")).:maintainer.'(("Steve.
98f80 59 65 67 67 65 22 20 2e 20 22 73 74 65 76 65 2e 79 65 67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d 22 Yegge"..."steve.yegge@gmail.com"
98fa0 29 20 28 22 6d 6f 6f 7a 22 20 2e 20 22 73 74 69 6c 6c 70 65 64 61 6e 74 40 67 6d 61 69 6c 2e 63 ).("mooz"..."stillpedant@gmail.c
98fc0 6f 6d 22 29 20 28 22 44 6d 69 74 72 79 20 47 75 74 6f 76 22 20 2e 20 22 64 67 75 74 6f 76 40 79 om").("Dmitry.Gutov"..."dgutov@y
98fe0 61 6e 64 65 78 2e 72 75 22 29 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 6c 61 6e 67 75 61 67 andex.ru")).:keywords.'("languag
99000 65 73 22 20 22 6a 61 76 61 73 63 72 69 70 74 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f es"."javascript").:url."https://
99020 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 22 29 0a 00 00 00 00 github.com/mooz/js2-mode/").....
99040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
990a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
990c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
990e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
991e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99200 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c js2-mode-20231224/.dir-locals.el
99220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
99280 30 30 30 30 30 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 36 32 00 20 30 00 00 00 0000054.00000000000.014462..0...
992a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
992c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
992e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
99320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
99340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
993a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
993c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
993e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99400 28 28 6e 69 6c 20 2e 20 28 28 73 65 6e 74 65 6e 63 65 2d 65 6e 64 2d 64 6f 75 62 6c 65 2d 73 70 ((nil...((sentence-end-double-sp
99420 61 63 65 20 2e 20 74 29 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ace...t)))).....................
99440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
994a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
994c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
994e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
995a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
995c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
995e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99600 6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32 34 2f 2e 65 6c 70 61 69 67 6e 6f 72 65 00 00 00 js2-mode-20231224/.elpaignore...
99620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
99680 30 30 30 30 30 34 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 31 36 30 00 20 30 00 00 00 0000046.00000000000.014160..0...
996a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
996c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
996e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
99720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
99740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
997a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
997c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
997e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99800 2e 74 72 61 76 69 73 2e 79 6d 6c 0a 2e 67 69 74 69 67 6e 6f 72 65 0a 4d 61 6b 65 66 69 6c 65 0a .travis.yml..gitignore.Makefile.
99820 74 65 73 74 73 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 tests...........................
99840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
998a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
998c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
998e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
999a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
999c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
999e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9af00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9af20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................