summaryrefslogtreecommitdiff
path: root/localrepo/js2-mode-20231224.tar
blob: a09e411f5565b5155b75cb9059b34064bf61822a (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 77 6f 72 6b 66 6c js2-mode-20231224/.github/workfl
0420 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/............................
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 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
0480 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...
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 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
0620 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....................
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 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
0680 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...
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 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...................
0720 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...................
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 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:...
0820 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'.......-
0840 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
0860 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'.
0880 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
08a0 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
08c0 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'....
08e0 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
0900 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
0920 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.....
0940 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...
0960 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:...
0980 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
09a0 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...
09c0 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
09e0 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
0a00 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.....
0a20 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.....
0a40 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.......
0a60 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..
0a80 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................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
0c20 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...........................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 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
0c80 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...
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 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...................
0d20 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...................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 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..................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 js2-mode-20231224/LICENSE.......
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 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...
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 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.
1220 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..................
1240 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...
1260 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
1280 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
12a0 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
12c0 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
12e0 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
1300 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.....
1320 20 20 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
1340 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
1360 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
1380 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
13a0 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
13c0 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
13e0 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
1400 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
1420 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.
1440 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
1460 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.
1480 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
14a0 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
14c0 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
14e0 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
1500 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
1520 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
1540 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
1560 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.
1580 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
15a0 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
15c0 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
15e0 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
1600 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
1620 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
1640 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
1660 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.
1680 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.
16a0 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
16c0 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
16e0 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
1700 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
1720 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.
1740 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
1760 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
1780 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
17a0 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
17c0 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
17e0 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
1800 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.
1820 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.
1840 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
1860 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
1880 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
18a0 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
18c0 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
18e0 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
1900 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
1920 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
1940 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
1960 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
1980 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
19a0 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
19c0 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
19e0 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
1a00 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
1a20 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
1a40 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
1a60 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
1a80 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
1aa0 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
1ac0 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
1ae0 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
1b00 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
1b20 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
1b40 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
1b60 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
1b80 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.
1ba0 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
1bc0 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
1be0 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
1c00 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
1c20 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
1c40 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
1c60 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.
1c80 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
1ca0 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
1cc0 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
1ce0 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
1d00 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
1d20 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
1d40 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
1d60 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...
1d80 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
1da0 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.
1dc0 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
1de0 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
1e00 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
1e20 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
1e40 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
1e60 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
1e80 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
1ea0 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
1ec0 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
1ee0 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
1f00 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
1f20 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.
1f40 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
1f60 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.
1f80 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
1fa0 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.
1fc0 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
1fe0 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
2000 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
2020 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.........................
2040 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
2060 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
2080 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
20a0 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"
20c0 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.
20e0 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
2100 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.
2120 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.
2140 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
2160 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
2180 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
21a0 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
21c0 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."
21e0 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
2200 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
2220 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
2240 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
2260 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
2280 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
22a0 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
22c0 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.
22e0 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.
2300 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
2320 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....
2340 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.
2360 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
2380 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
23a0 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.
23c0 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
23e0 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
2400 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
2420 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
2440 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
2460 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
2480 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
24a0 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
24c0 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
24e0 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
2500 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
2520 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
2540 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
2560 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.
2580 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.
25a0 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
25c0 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".
25e0 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
2600 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
2620 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
2640 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
2660 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
2680 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
26a0 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
26c0 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
26e0 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.
2700 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.
2720 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
2740 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
2760 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,.
2780 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
27a0 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.
27c0 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
27e0 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
2800 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
2820 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.
2840 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...
2860 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
2880 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
28a0 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
28c0 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
28e0 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.
2900 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
2920 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
2940 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.
2960 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
2980 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
29a0 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.
29c0 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
29e0 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
2a00 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
2a20 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
2a40 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
2a60 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
2a80 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
2aa0 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
2ac0 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
2ae0 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.
2b00 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
2b20 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
2b40 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
2b60 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
2b80 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.
2ba0 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
2bc0 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
2be0 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
2c00 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
2c20 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
2c40 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
2c60 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,.
2c80 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
2ca0 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
2cc0 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
2ce0 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
2d00 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
2d20 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
2d40 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
2d60 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.
2d80 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
2da0 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
2dc0 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
2de0 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
2e00 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.
2e20 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,.
2e40 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
2e60 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.
2e80 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
2ea0 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
2ec0 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
2ee0 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
2f00 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.
2f20 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
2f40 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
2f60 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
2f80 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
2fa0 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.
2fc0 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.
2fe0 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
3000 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..
3020 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
3040 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
3060 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
3080 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.
30a0 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
30c0 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
30e0 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
3100 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
3120 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.
3140 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.
3160 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
3180 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
31a0 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
31c0 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
31e0 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.
3200 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
3220 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
3240 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.
3260 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
3280 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
32a0 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
32c0 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
32e0 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.
3300 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
3320 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
3340 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
3360 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
3380 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.
33a0 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
33c0 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
33e0 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
3400 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
3420 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
3440 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.
3460 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
3480 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
34a0 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.
34c0 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
34e0 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
3500 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.
3520 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
3540 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
3560 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
3580 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
35a0 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
35c0 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
35e0 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
3600 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
3620 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
3640 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
3660 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
3680 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
36a0 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
36c0 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
36e0 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
3700 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
3720 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.
3740 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.
3760 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
3780 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
37a0 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
37c0 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
37e0 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
3800 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
3820 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
3840 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
3860 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
3880 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
38a0 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
38c0 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
38e0 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
3900 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
3920 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
3940 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
3960 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
3980 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
39a0 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.
39c0 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
39e0 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
3a00 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
3a20 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
3a40 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
3a60 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
3a80 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
3aa0 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
3ac0 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
3ae0 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.
3b00 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
3b20 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.
3b40 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.
3b60 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
3b80 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
3ba0 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
3bc0 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
3be0 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
3c00 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
3c20 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
3c40 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
3c60 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
3c80 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.
3ca0 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..
3cc0 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
3ce0 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
3d00 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"..
3d20 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
3d40 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
3d60 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
3d80 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
3da0 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
3dc0 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
3de0 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
3e00 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.
3e20 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
3e40 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
3e60 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
3e80 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,.
3ea0 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
3ec0 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
3ee0 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
3f00 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
3f20 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
3f40 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
3f60 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
3f80 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
3fa0 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
3fc0 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.
3fe0 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
4000 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
4020 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
4040 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
4060 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
4080 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
40a0 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
40c0 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
40e0 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
4100 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
4120 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
4140 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
4160 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
4180 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
41a0 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
41c0 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
41e0 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
4200 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
4220 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
4240 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
4260 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.
4280 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
42a0 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
42c0 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.
42e0 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
4300 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:...
4320 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,
4340 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
4360 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
4380 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.
43a0 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.
43c0 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
43e0 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
4400 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
4420 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
4440 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
4460 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
4480 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
44a0 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
44c0 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.....
44e0 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
4500 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
4520 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
4540 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
4560 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
4580 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
45a0 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
45c0 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
45e0 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
4600 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
4620 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
4640 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
4660 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.
4680 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
46a0 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
46c0 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
46e0 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
4700 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
4720 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
4740 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..
4760 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
4780 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
47a0 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
47c0 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
47e0 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
4800 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
4820 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
4840 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
4860 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
4880 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
48a0 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
48c0 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.....
48e0 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
4900 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....
4920 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
4940 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.
4960 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
4980 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
49a0 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
49c0 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
49e0 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.
4a00 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
4a20 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
4a40 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
4a60 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
4a80 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
4aa0 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
4ac0 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
4ae0 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...
4b00 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
4b20 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.
4b40 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.
4b60 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,
4b80 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
4ba0 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
4bc0 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
4be0 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
4c00 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
4c20 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
4c40 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
4c60 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.
4c80 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
4ca0 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
4cc0 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.
4ce0 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
4d00 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
4d20 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.
4d40 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.
4d60 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
4d80 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
4da0 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.
4dc0 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
4de0 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
4e00 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
4e20 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.
4e40 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
4e60 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
4e80 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
4ea0 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
4ec0 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
4ee0 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.
4f00 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
4f20 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
4f40 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...
4f60 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.
4f80 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
4fa0 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
4fc0 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
4fe0 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
5000 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
5020 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
5040 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
5060 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
5080 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
50a0 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
50c0 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
50e0 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
5100 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
5120 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
5140 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
5160 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.
5180 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
51a0 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.
51c0 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.
51e0 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
5200 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
5220 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.
5240 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.
5260 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.
5280 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
52a0 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
52c0 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
52e0 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.
5300 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.
5320 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
5340 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
5360 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.
5380 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.
53a0 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
53c0 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
53e0 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
5400 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
5420 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
5440 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
5460 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
5480 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
54a0 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
54c0 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
54e0 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
5500 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
5520 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
5540 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
5560 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
5580 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
55a0 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
55c0 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
55e0 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
5600 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.
5620 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
5640 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
5660 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
5680 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
56a0 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.
56c0 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
56e0 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
5700 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
5720 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.
5740 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
5760 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....
5780 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
57a0 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
57c0 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
57e0 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.
5800 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
5820 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
5840 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.
5860 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.
5880 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
58a0 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
58c0 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
58e0 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.
5900 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
5920 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
5940 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
5960 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
5980 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
59a0 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
59c0 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
59e0 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.
5a00 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.
5a20 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
5a40 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.
5a60 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.
5a80 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
5aa0 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
5ac0 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
5ae0 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
5b00 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
5b20 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
5b40 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
5b60 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,.
5b80 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
5ba0 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
5bc0 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.
5be0 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
5c00 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:......
5c20 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
5c40 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
5c60 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.
5c80 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
5ca0 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
5cc0 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..
5ce0 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
5d00 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
5d20 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
5d40 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
5d60 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
5d80 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...
5da0 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
5dc0 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
5de0 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
5e00 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.
5e20 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
5e40 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
5e60 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
5e80 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
5ea0 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
5ec0 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,.
5ee0 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
5f00 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
5f20 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
5f40 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
5f60 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
5f80 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
5fa0 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
5fc0 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
5fe0 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
6000 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....
6020 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....
6040 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
6060 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
6080 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
60a0 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
60c0 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
60e0 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
6100 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.
6120 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
6140 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
6160 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
6180 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
61a0 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
61c0 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
61e0 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.
6200 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
6220 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
6240 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
6260 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
6280 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
62a0 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
62c0 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
62e0 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,.
6300 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
6320 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
6340 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
6360 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
6380 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
63a0 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
63c0 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
63e0 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;
6400 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
6420 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.....
6440 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.
6460 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
6480 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..
64a0 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
64c0 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
64e0 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.
6500 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
6520 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
6540 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
6560 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
6580 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
65a0 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
65c0 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
65e0 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.
6600 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
6620 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
6640 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
6660 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
6680 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
66a0 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.
66c0 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..
66e0 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
6700 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.
6720 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
6740 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
6760 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.
6780 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
67a0 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
67c0 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
67e0 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
6800 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.
6820 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
6840 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
6860 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
6880 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
68a0 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
68c0 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.
68e0 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
6900 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
6920 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
6940 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
6960 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.
6980 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
69a0 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
69c0 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
69e0 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
6a00 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
6a20 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
6a40 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
6a60 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
6a80 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
6aa0 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
6ac0 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
6ae0 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
6b00 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
6b20 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
6b40 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
6b60 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.
6b80 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
6ba0 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
6bc0 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
6be0 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
6c00 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
6c20 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
6c40 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
6c60 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
6c80 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
6ca0 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..
6cc0 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
6ce0 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
6d00 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
6d20 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
6d40 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
6d60 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.
6d80 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
6da0 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
6dc0 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
6de0 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
6e00 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
6e20 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
6e40 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
6e60 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
6e80 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
6ea0 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
6ec0 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
6ee0 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
6f00 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
6f20 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
6f40 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.
6f60 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
6f80 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
6fa0 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
6fc0 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.
6fe0 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
7000 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
7020 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
7040 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
7060 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
7080 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
70a0 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).
70c0 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
70e0 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
7100 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
7120 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
7140 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
7160 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
7180 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.
71a0 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
71c0 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..
71e0 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
7200 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
7220 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
7240 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.
7260 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
7280 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
72a0 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
72c0 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
72e0 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.
7300 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
7320 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
7340 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
7360 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
7380 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
73a0 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.
73c0 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
73e0 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
7400 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
7420 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
7440 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
7460 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
7480 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
74a0 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
74c0 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
74e0 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,.
7500 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
7520 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
7540 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
7560 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.
7580 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.
75a0 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
75c0 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
75e0 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
7600 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
7620 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
7640 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
7660 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
7680 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
76a0 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
76c0 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
76e0 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
7700 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
7720 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
7740 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
7760 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.
7780 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
77a0 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.
77c0 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
77e0 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.(
7800 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
7820 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
7840 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.
7860 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
7880 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
78a0 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
78c0 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
78e0 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
7900 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
7920 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
7940 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.
7960 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
7980 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
79a0 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
79c0 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
79e0 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
7a00 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
7a20 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.
7a40 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.
7a60 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
7a80 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,
7aa0 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
7ac0 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
7ae0 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.
7b00 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
7b20 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,.
7b40 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
7b60 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,
7b80 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
7ba0 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.
7bc0 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
7be0 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
7c00 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
7c20 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.
7c40 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
7c60 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
7c80 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
7ca0 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
7cc0 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
7ce0 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
7d00 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
7d20 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.
7d40 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
7d60 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
7d80 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
7da0 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
7dc0 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
7de0 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
7e00 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
7e20 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.
7e40 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.
7e60 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
7e80 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
7ea0 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
7ec0 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
7ee0 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
7f00 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
7f20 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
7f40 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
7f60 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
7f80 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
7fa0 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
7fc0 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
7fe0 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
8000 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
8020 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
8040 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
8060 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.
8080 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
80a0 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
80c0 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
80e0 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
8100 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
8120 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
8140 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
8160 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.
8180 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
81a0 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
81c0 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,.
81e0 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
8200 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
8220 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
8240 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
8260 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.
8280 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,.
82a0 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
82c0 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
82e0 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
8300 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.
8320 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
8340 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
8360 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.
8380 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.
83a0 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
83c0 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
83e0 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.
8400 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
8420 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
8440 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
8460 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.
8480 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
84a0 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
84c0 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
84e0 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
8500 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
8520 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
8540 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
8560 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
8580 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
85a0 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
85c0 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
85e0 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
8600 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.
8620 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
8640 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
8660 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
8680 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
86a0 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
86c0 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
86e0 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
8700 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".
8720 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
8740 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
8760 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
8780 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
87a0 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.
87c0 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
87e0 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
8800 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,
8820 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
8840 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.
8860 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
8880 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.
88a0 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
88c0 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
88e0 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
8900 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
8920 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
8940 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.
8960 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
8980 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.
89a0 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
89c0 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.
89e0 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
8a00 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
8a20 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
8a40 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
8a60 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
8a80 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
8aa0 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
8ac0 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
8ae0 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
8b00 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
8b20 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
8b40 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,.
8b60 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.
8b80 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
8ba0 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
8bc0 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
8be0 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
8c00 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
8c20 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
8c40 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
8c60 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....
8c80 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....
8ca0 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.
8cc0 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
8ce0 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
8d00 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
8d20 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.
8d40 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
8d60 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
8d80 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
8da0 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
8dc0 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
8de0 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
8e00 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
8e20 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
8e40 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
8e60 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
8e80 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
8ea0 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
8ec0 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
8ee0 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
8f00 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
8f20 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
8f40 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
8f60 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
8f80 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
8fa0 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
8fc0 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
8fe0 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
9000 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
9020 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
9040 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
9060 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
9080 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
90a0 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.
90c0 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.........
90e0 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
9100 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
9120 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
9140 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
9160 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
9180 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
91a0 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
91c0 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.
91e0 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
9200 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
9220 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
9240 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.
9260 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
9280 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
92a0 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
92c0 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.
92e0 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
9300 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
9320 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
9340 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
9360 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>......
9380 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
93a0 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
93c0 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
93e0 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
9400 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
9420 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
9440 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
9460 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......
9480 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.
94a0 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,
94c0 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
94e0 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
9500 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
9520 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
9540 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
9560 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.
9580 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
95a0 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...
95c0 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
95e0 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
9600 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
9620 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
9640 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
9660 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
9680 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
96a0 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
96c0 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
96e0 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
9700 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
9720 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
9740 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.
9760 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
9780 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.
97a0 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
97c0 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
97e0 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'.
9800 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
9820 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.
9840 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
9860 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
9880 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."
98a0 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
98c0 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
98e0 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
9900 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
9920 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
9940 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,.
9960 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.
9980 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
99a0 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.
99c0 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
99e0 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
9a00 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
9a20 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
9a40 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
9a60 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
9a80 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.
9aa0 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
9ac0 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
9ae0 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..
9b00 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://
9b20 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
9b40 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>.......................
9b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c00 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
9c20 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...........................
9c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c60 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
9c80 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...
9ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d00 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...................
9d20 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...................
9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 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
9e20 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
9e40 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;.-*-
9e60 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
9e80 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...;;
9ea0 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
9ec0 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
9ee0 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.
9f00 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
9f20 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
9f40 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
9f60 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
9f80 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
9fa0 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
9fc0 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
9fe0 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
a000 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
a020 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
a040 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
a060 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.
a080 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
a0a0 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
a0c0 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.
a0e0 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.
a100 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
a120 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.
a140 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
a160 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
a180 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
a1a0 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
a1c0 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
a1e0 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.
a200 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
a220 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.
a240 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
a260 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.
a280 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
a2a0 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
a2c0 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...(
a2e0 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)
a300 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
a320 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...`
a340 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
a360 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\\|\\$\\|_\\
a380 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
a3a0 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
a3c0 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....
a3e0 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\
a400 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
a420 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
a440 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.
a460 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
a480 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
a4a0 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).....
a4c0 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
a4e0 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
a500 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-*(").
a520 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
a540 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
a560 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
a580 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..
a5a0 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).....
a5c0 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
a5e0 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-*("
a600 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
a620 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
a640 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
a660 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
a680 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))...................
a6a0 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
a6c0 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")....................
a6e0 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)).........
a700 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
a720 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).
a740 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
a760 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-*("
a780 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
a7a0 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
a7c0 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
a7e0 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
a800 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
a820 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
a840 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
a860 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
a880 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
a8a0 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
a8c0 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
a8e0 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
a900 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
a920 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.
a940 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
a960 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.(
a980 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
a9a0 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)
a9c0 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
a9e0 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
aa00 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
aa20 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...
aa40 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.
aa60 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.
aa80 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
aaa0 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))............................
aac0 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))
aae0 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
ab00 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
ab20 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.
ab40 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
ab60 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
ab80 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
aba0 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
abc0 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
abe0 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."...
ac00 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
ac20 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
ac40 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
ac60 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.
ac80 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.
aca0 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
acc0 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.
ace0 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
ad00 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
ad20 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
ad40 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.
ad60 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)..(
ad80 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
ada0 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,.
adc0 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
ade0 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
ae00 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.
ae20 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
ae40 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
ae60 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
ae80 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"
aea0 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.
aec0 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
aee0 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).
af00 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
af20 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"
af40 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.
af60 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
af80 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
afa0 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-
afc0 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"
afe0 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
b000 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
b020 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).
b040 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
b060 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.
b080 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.()
b0a0 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
b0c0 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
b0e0 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
b100 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.
b120 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
b140 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)...
b160 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
b180 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))
b1a0 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
b1c0 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
b1e0 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
b200 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.
b220 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-
b240 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
b260 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
b280 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.
b2a0 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...
b2c0 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
b2e0 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).
b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b320 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
b340 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
b360 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
b380 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)............
b3a0 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
b3c0 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)."\\)")).
b3e0 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."
b400 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
b420 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
b440 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
b460 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
b480 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
b4a0 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))................
b4c0 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.
b4e0 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
b500 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
b520 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
b540 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........
b560 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
b580 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
b5a0 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-
b5c0 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))........
b5e0 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"))
b600 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
b620 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....
b640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b660 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
b680 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
b6a0 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
b6c0 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
b6e0 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
b700 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
b720 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
b740 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
b760 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.(
b780 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))))))
b7a0 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
b7c0 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)
b7e0 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
b800 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
b820 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
b840 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
b860 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).......
b880 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)..
b8a0 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
b8c0 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
b8e0 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.........
b900 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
b920 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)
b940 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
b960 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
b980 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
b9a0 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
b9c0 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
b9e0 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
ba00 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))).....
ba20 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
ba40 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
ba60 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)......
ba80 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-
baa0 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)).......
bac0 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
bae0 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)................
bb00 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
bb20 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
bb40 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
bb60 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...............
bb80 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
bba0 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)....
bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bbe0 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)))))
bc00 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-
bc20 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
bc40 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.
bc60 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
bc80 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
bca0 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
bcc0 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
bce0 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)))).......
bd00 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
bd20 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.
bd40 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
bd60 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-
bd80 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.
bda0 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
bdc0 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
bde0 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
be00 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
be20 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))........................
be40 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
be60 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))).................
be80 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.......
bea0 20 20 20 20 20 20 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
bec0 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)......
bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bf00 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)).
bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bf40 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
bf60 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)..............................
bf80 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
bfa0 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))).....................
bfc0 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").........
bfe0 20 20 20 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-
c000 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))...........
c020 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
c040 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
c060 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
c080 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........
c0a0 20 20 20 20 20 20 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
c0c0 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
c0e0 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............................
c100 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
c120 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."\\.")...................
c140 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-
c160 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)).........................
c180 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
c1a0 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-
c1c0 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*.(
c1e0 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
c200 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
c220 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
c240 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
c260 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
c280 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).(
c2a0 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)).....
c2c0 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-
c2e0 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-
c300 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...
c320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c340 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
c360 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.........................
c380 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
c3a0 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)................
c3c0 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
c3e0 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))........................
c400 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
c420 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
c440 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
c460 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
c480 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/.
c4a0 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
c4c0 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))))).....
c4e0 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
c500 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).......
c520 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
c540 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-
c560 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.(
c580 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
c5a0 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
c5c0 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
c5e0 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
c600 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
c620 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
c640 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
c660 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.
c680 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
c6a0 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..
c6c0 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
c6e0 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
c700 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
c720 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
c740 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)......
c760 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
c780 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-
c7a0 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
c7c0 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
c7e0 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
c800 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
c820 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
c840 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
c860 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'."
c880 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--
c8a0 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).....
c8c0 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--
c8e0 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
c900 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
c920 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)..
c940 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
c960 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
c980 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
c9a0 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.
c9c0 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
c9e0 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
ca00 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)).
ca20 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
ca40 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
ca60 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
ca80 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
caa0 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))).
cac0 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-
cae0 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
cb00 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
cb20 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.
cb40 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
cb60 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
cb80 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
cba0 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.
cbc0 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
cbe0 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
cc00 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))
cc20 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
cc40 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
cc60 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.
cc80 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.
cca0 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-
ccc0 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-
cce0 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-
cd00 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
cd20 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
cd40 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
cd60 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."...(
cd80 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
cda0 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)
cdc0 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
cde0 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))
ce00 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
ce20 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
ce40 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
ce60 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.((
ce80 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
cea0 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
cec0 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-
cee0 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
cf00 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
cf20 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
cf40 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.(
cf60 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
cf80 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-
cfa0 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
cfc0 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
cfe0 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
d000 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,
d020 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
d040 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--
d060 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
d080 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
d0a0 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
d0c0 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
d0e0 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
d100 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."..
d120 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)
d140 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)
d160 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
d180 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
d1a0 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
d1c0 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
d1e0 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
d200 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.
d220 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
d240 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'.".
d260 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
d280 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
d2a0 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
d2c0 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)))..........(
d2e0 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))).........
d300 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
d320 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
d340 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
d360 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
d380 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
d3a0 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.
d3c0 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
d3e0 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
d400 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
d420 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'."..
d440 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
d460 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
d480 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
d4a0 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
d4c0 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)))..........
d4e0 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
d500 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.
d520 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
d540 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
d560 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
d580 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
d5a0 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..
d5c0 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.
d5e0 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
d600 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
d620 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
d640 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
d660 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
d680 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
d6a0 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
d6c0 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
d6e0 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
d700 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-
d720 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
d740 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.
d760 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..
d780 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.
d7a0 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
d7c0 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
d7e0 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
d800 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
d820 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-
d840 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
d860 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
d880 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
d8a0 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
d8c0 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
d8e0 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."
d900 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).
d920 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
d940 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
d960 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
d980 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
d9a0 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
d9c0 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-
d9e0 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
da00 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
da20 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
da40 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.....
da60 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
da80 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
daa0 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
dac0 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
dae0 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.....
db00 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
db20 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...........
db40 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
db60 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
db80 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))..
dba0 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)
dbc0 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.
dbe0 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..
dc00 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
dc20 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
dc40 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)))............(
dc60 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
dc80 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
dca0 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)............
dcc0 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))).
dce0 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
dd00 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
dd20 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..................
dd40 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)))..
dd60 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
dd80 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
dda0 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).............(
ddc0 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))))).
dde0 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
de00 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
de20 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
de40 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-
de60 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
de80 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)))..
dea0 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
dec0 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.........
dee0 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
df00 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
df20 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)))..........
df40 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
df60 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
df80 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-
dfa0 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)))...
dfc0 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
dfe0 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
e000 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)...........
e020 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
e040 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
e060 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
e080 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
e0a0 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
e0c0 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
e0e0 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
e100 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
e120 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\".\
e140 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
e160 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
e180 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
e1a0 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
e1c0 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))....
e1e0 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-
e200 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
e220 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'
e240 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
e260 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
e280 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.
e2a0 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:
e2c0 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
e2e0 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.
e300 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
e320 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.
e340 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)).....;
e360 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:.
e380 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.
e3a0 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))......
e3c0 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)).
e3e0 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
e400 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
e420 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-
e440 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
e460 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
e480 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-
e4a0 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
e4c0 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-
e4e0 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.
e500 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
e520 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
e540 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...................
e560 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
e580 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
e5a0 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
e5c0 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).......
e5e0 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
e600 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)........
e620 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
e640 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))))....
e660 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
e680 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-
e6a0 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
e6c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
e6e0 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)))
e700 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
e720 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
e740 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
e760 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
e780 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
e7a0 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)............
e7c0 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
e7e0 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
e800 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
e820 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
e840 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......
e860 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
e880 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
e8a0 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-
e8c0 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
e8e0 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
e900 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
e920 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
e940 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
e960 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
e980 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
e9a0 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().{...}
e9c0 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
e9e0 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
ea00 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
ea20 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).......
ea40 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
ea60 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))).....
ea80 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
eaa0 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
eac0 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))........
eae0 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
eb00 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
eb20 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)..
eb40 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
eb60 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
eb80 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
eba0 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.
ebc0 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.
ebe0 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
ec00 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
ec20 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
ec40 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
ec60 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
ec80 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..........................
eca0 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.
ecc0 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
ece0 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....
ed00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
ed20 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)))))))
ed40 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-
ed60 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
ed80 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
eda0 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
edc0 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
ede0 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
ee00 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
ee20 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
ee40 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 )...............................
ee60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ee80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ef00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ef20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ef40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ef60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ef80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
efa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
efc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
efe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f000 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.......
f020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f060 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
f080 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...
f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f100 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...................
f120 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...................
f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f200 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
f220 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.
f240 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
f260 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
f280 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
f2a0 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
f2c0 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
f2e0 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)).
f300 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
f320 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
f340 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
f360 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
f380 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:/
f3a0 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
f3c0 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
f3e0 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
f400 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
f420 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
f440 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
f460 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
f480 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
f4a0 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
f4c0 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
f4e0 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
f500 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)
f520 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
f540 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
f560 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
f580 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
f5a0 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
f5c0 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
f5e0 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
f600 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
f620 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
f640 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-
f660 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
f680 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]
f6a0 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
f6c0 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
f6e0 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`.
f700 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
f720 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
f740 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
f760 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
f780 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
f7a0 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
f7c0 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://
f7e0 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
f800 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
f820 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.
f840 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/
f860 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
f880 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
f8a0 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/
f8c0 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
f8e0 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
f900 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..
f920 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
f940 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
f960 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
f980 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
f9a0 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
f9c0 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
f9e0 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
fa00 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.`?.`
fa20 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
fa40 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
fa60 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
fa80 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
faa0 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
fac0 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
fae0 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.
fb00 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
fb20 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
fb40 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.
fb60 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...##
fb80 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
fba0 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
fbc0 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
fbe0 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
fc00 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
fc20 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
fc40 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
fc60 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
fc80 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
fca0 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
fcc0 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
fce0 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
fd00 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
fd20 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
fd40 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
fd60 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
fd80 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
fda0 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
fdc0 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
fde0 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
fe00 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.
fe20 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
fe40 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
fe60 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
fe80 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
fea0 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
fec0 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
fee0 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
ff00 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
ff20 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
ff40 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
ff60 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
ff80 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..*
ffa0 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.
ffc0 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
ffe0 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,
10000 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
10020 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
10040 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`..
10060 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
10080 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
100a0 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
100c0 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
100e0 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`
10100 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
10120 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...#
10140 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
10160 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.
10180 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.`
101a0 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
101c0 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
101e0 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
10200 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
10220 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.
10240 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
10260 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
10280 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..
102a0 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
102c0 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
102e0 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
10300 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.
10320 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,.
10340 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.
10360 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
10380 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
103a0 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
103c0 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
103e0 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
10400 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
10420 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
10440 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:
10460 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
10480 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-.")
104a0 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
104c0 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
104e0 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
10500 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
10520 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
10540 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
10560 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.
10580 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
105a0 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
105c0 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
105e0 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
10600 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
10620 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
10640 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
10660 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
10680 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.
106a0 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
106c0 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
106e0 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
10700 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
10720 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
10740 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).
10760 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
10780 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
107a0 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
107c0 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
107e0 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
10800 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.
10820 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-
10840 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
10860 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
10880 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..
108a0 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
108c0 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.
108e0 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]
10900 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
10920 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
10940 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
10960 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
10980 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
109a0 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
109c0 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
109e0 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
10a00 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
10a20 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
10a40 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)...##
10a60 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
10a80 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
10aa0 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
10ac0 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
10ae0 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
10b00 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).*.[
10b20 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
10b40 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:
10b60 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
10b80 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.
10ba0 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
10bc0 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
10be0 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
10c00 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
10c20 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
10c40 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
10c60 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
10c80 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
10ca0 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
10cc0 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`
10ce0 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`
10d00 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
10d20 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
10d40 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
10d60 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
10d80 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").
10da0 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
10dc0 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
10de0 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
10e00 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/
10e20 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
10e40 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-
10e60 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
10e80 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..##
10ea0 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.
10ec0 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
10ee0 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
10f00 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
10f20 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
10f40 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,.
10f60 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).{
10f80 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
10fa0 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
10fc0 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
10fe0 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
11000 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.
11020 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.=.
11040 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.
11060 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
11080 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`.
110a0 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,
110c0 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;.```
110e0 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.
11100 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}...
11120 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
11140 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
11160 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}.=.{
11180 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.
111a0 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)
111c0 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}).{./
111e0 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
11200 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
11220 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
11240 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);.`
11260 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
11280 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.=
112a0 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
112c0 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.()
112e0 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
11300 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
11320 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,.
11340 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;.
11360 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;....../
11380 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
113a0 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
113c0 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
113e0 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
11400 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
11420 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:
11440 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.
11460 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(
11480 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
114a0 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().{}./
114c0 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
114e0 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....
11500 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
11520 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
11540 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
11560 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
11580 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
115a0 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
115c0 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
115e0 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
11600 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/
11620 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
11640 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
11660 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
11680 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
116a0 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:.
116c0 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
116e0 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".```..
11700 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
11720 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
11740 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.
11760 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
11780 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
117a0 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".....}...
117c0 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.
117e0 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
11800 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
11820 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.
11840 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];.
11860 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.
11880 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).
118a0 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".....
118c0 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.(
118e0 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(
11900 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);.}.```.....................
11920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a00 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
11a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a60 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
11a80 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...
11aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11b00 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...................
11b20 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...................
11b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c00 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
11c20 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)))).....................
11c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e00 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
11e20 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...............................
11e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e60 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
11e80 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...
11ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f00 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...................
11f20 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...................
11f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12000 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
12020 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
12040 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
12060 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
12080 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.
120a0 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.
120c0 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
120e0 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
12100 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").
12120 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
12140 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
12160 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.
12180 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"
121a0 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
121c0 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
121e0 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
12200 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://
12220 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/").....
12240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12400 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...
12420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12460 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
12480 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...
124a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
124c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
124e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12500 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...................
12520 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...................
12540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12600 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.
12620 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...........................
12640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
126a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
126c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
126e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
127e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12800 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...
12820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12860 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
12880 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...
128a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
128c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
128e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12900 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...................
12920 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...................
12940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a00 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
12a20 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
12a40 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
12a60 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
12a80 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
12aa0 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
12ac0 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
12ae0 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
12b00 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
12b20 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/.
12b40 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/
12b60 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
12b80 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
12ba0 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
12bc0 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
12be0 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...;;
12c00 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
12c20 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
12c40 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.
12c60 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
12c80 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.
12ca0 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.
12cc0 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
12ce0 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
12d00 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.
12d20 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
12d40 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
12d60 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
12d80 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
12da0 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
12dc0 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
12de0 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
12e00 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
12e20 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
12e40 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
12e60 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
12e80 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
12ea0 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
12ec0 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
12ee0 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
12f00 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
12f20 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
12f40 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
12f60 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
12f80 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.
12fa0 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
12fc0 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
12fe0 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.;;
13000 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
13020 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
13040 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
13060 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
13080 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
130a0 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
130c0 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:
130e0 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
13100 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.
13120 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./*
13140 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
13160 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
13180 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
131a0 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
131c0 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
131e0 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
13200 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
13220 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.'("\\
13240 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
13260 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
13280 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
132a0 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
132c0 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
132e0 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
13300 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
13320 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.
13340 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.
13360 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.
13380 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"
133a0 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
133c0 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.
133e0 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.;;
13400 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
13420 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':..;;.
13440 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.
13460 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)).
13480 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
134a0 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
134c0 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
134e0 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...;
13500 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:.;;.
13520 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
13540 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.
13560 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
13580 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
135a0 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.
135c0 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.;;.`
135e0 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
13600 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...
13620 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
13640 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
13660 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
13680 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
136a0 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
136c0 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
136e0 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
13700 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
13720 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
13740 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
13760 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
13780 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
137a0 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.
137c0 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
137e0 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
13800 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.
13820 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,
13840 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.
13860 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
13880 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
138a0 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
138c0 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
138e0 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
13900 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.;;.
13920 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
13940 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
13960 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
13980 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
139a0 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
139c0 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
139e0 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
13a00 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
13a20 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-
13a40 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-
13a60 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
13a80 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
13aa0 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
13ac0 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
13ae0 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
13b00 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
13b20 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.
13b40 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.'
13b60 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
13b80 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
13ba0 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
13bc0 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
13be0 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
13c00 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
13c20 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
13c40 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
13c60 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
13c80 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
13ca0 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)).
13cc0 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
13ce0 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.")
13d00 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...
13d20 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...........'
13d40 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
13d60 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
13d80 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
13da0 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
13dc0 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
13de0 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
13e00 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
13e20 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..
13e40 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
13e60 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.
13e80 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.
13ea0 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
13ec0 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
13ee0 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.
13f00 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
13f20 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....
13f40 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
13f60 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...
13f80 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
13fa0 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..........
13fc0 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
13fe0 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.............
14000 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
14020 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
14040 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
14060 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
14080 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
140a0 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.............
140c0 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
140e0 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
14100 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
14120 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
14140 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
14160 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
14180 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.......
141a0 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
141c0 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
141e0 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.
14200 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
14220 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
14240 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
14260 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
14280 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
142a0 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.......
142c0 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
142e0 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
14300 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
14320 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.
14340 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..............;;
14360 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
14380 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.
143a0 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
143c0 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.......
143e0 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
14400 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
14420 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
14440 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
14460 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
14480 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.
144a0 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
144c0 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
144e0 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
14500 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:....
14520 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
14540 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
14560 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..........
14580 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
145a0 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
145c0 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.....
145e0 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.
14600 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
14620 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.
14640 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
14660 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."
14680 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
146a0 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
146c0 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
146e0 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
14700 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
14720 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...
14740 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
14760 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
14780 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
147a0 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
147c0 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
147e0 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
14800 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
14820 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
14840 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
14860 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
14880 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.
148a0 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
148c0 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....
148e0 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
14900 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..
14920 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
14940 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..............;
14960 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
14980 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......
149a0 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
149c0 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.......
149e0 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
14a00 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
14a20 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
14a40 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
14a60 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
14a80 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
14aa0 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.
14ac0 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
14ae0 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
14b00 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.
14b20 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
14b40 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
14b60 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
14b80 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
14ba0 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
14bc0 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
14be0 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))
14c00 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.`
14c20 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.
14c40 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-
14c60 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
14c80 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
14ca0 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
14cc0 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
14ce0 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
14d00 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.........
14d20 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
14d40 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
14d60 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'
14d80 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
14da0 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
14dc0 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
14de0 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
14e00 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
14e20 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
14e40 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
14e60 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
14e80 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
14ea0 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
14ec0 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
14ee0 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
14f00 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,.
14f20 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.")..
14f40 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
14f60 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
14f80 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
14fa0 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
14fc0 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
14fe0 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
15000 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
15020 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.")..;
15040 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
15060 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
15080 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
150a0 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
150c0 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
150e0 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
15100 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.
15120 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.
15140 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
15160 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
15180 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
151a0 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
151c0 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
151e0 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
15200 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
15220 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
15240 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
15260 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)............
15280 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
152a0 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
152c0 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))).
152e0 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
15300 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
15320 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
15340 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
15360 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.'
15380 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-
153a0 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
153c0 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
153e0 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-
15400 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
15420 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
15440 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
15460 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)..
15480 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
154a0 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
154c0 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
154e0 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
15500 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.
15520 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.
15540 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
15560 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
15580 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
155a0 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
155c0 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
155e0 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
15600 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
15620 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
15640 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.
15660 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'.
15680 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
156a0 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
156c0 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...:
156e0 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
15700 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
15720 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
15740 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
15760 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
15780 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
157a0 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.
157c0 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."...:
157e0 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
15800 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
15820 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
15840 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
15860 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
15880 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
158a0 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...
158c0 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
158e0 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.'
15900 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
15920 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
15940 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.
15960 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
15980 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
159a0 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.
159c0 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.'
159e0 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
15a00 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
15a20 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
15a40 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.
15a60 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
15a80 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
15aa0 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..
15ac0 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
15ae0 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
15b00 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
15b20 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
15b40 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
15b60 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
15b80 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."...:
15ba0 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
15bc0 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
15be0 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.
15c00 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.
15c20 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
15c40 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
15c60 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
15c80 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
15ca0 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
15cc0 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
15ce0 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
15d00 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
15d20 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
15d40 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
15d60 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.
15d80 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-
15da0 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
15dc0 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
15de0 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
15e00 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,.
15e20 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
15e40 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
15e60 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
15e80 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
15ea0 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
15ec0 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.
15ee0 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.
15f00 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.`='...
15f20 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
15f40 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
15f60 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
15f80 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))..
15fa0 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.
15fc0 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
15fe0 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...
16000 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
16020 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
16040 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
16060 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
16080 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
160a0 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
160c0 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
160e0 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.'
16100 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
16120 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
16140 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
16160 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
16180 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.
161a0 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
161c0 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
161e0 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
16200 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.
16220 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
16240 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.
16260 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
16280 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.
162a0 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
162c0 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,
162e0 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.
16300 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
16320 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
16340 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
16360 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
16380 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.
163a0 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
163c0 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
163e0 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
16400 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
16420 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
16440 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
16460 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
16480 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.
164a0 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
164c0 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
164e0 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
16500 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..
16520 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
16540 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..
16560 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
16580 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
165a0 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
165c0 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
165e0 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
16600 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
16620 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,
16640 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
16660 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.
16680 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
166a0 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.
166c0 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
166e0 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
16700 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
16720 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
16740 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
16760 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
16780 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
167a0 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
167c0 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
167e0 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
16800 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
16820 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
16840 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.).
16860 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
16880 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:
168a0 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
168c0 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
168e0 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
16900 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
16920 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
16940 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
16960 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
16980 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
169a0 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
169c0 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
169e0 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
16a00 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
16a20 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
16a40 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
16a60 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
16a80 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.].
16aa0 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.
16ac0 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
16ae0 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
16b00 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
16b20 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
16b40 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
16b60 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
16b80 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
16ba0 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
16bc0 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
16be0 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
16c00 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
16c20 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
16c40 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
16c60 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
16c80 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
16ca0 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..
16cc0 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
16ce0 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
16d00 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).
16d20 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
16d40 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.".
16d60 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
16d80 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
16da0 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
16dc0 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)
16de0 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
16e00 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
16e20 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.")..;
16e40 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
16e60 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.
16e80 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
16ea0 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..
16ec0 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.
16ee0 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
16f00 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
16f20 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)
16f40 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).......
16f60 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
16f80 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
16fa0 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)
16fc0 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
16fe0 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).
17000 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
17020 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
17040 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
17060 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
17080 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
170a0 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
170c0 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
170e0 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
17100 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
17120 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
17140 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).(
17160 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
17180 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
171a0 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
171c0 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
171e0 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
17200 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).(
17220 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
17240 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
17260 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.
17280 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
172a0 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-
172c0 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)
172e0 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)...........
17300 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
17320 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
17340 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
17360 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
17380 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
173a0 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
173c0 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).
173e0 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.(
17400 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
17420 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
17440 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
17460 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
17480 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
174a0 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
174c0 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
174e0 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
17500 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
17520 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_
17540 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.
17560 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
17580 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
175a0 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
175c0 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
175e0 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
17600 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
17620 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
17640 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
17660 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
17680 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
176a0 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
176c0 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)..
176e0 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.(
17700 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)........;.
17720 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
17740 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
17760 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
17780 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
177a0 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
177c0 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).........
177e0 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..
17800 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
17820 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
17840 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
17860 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)
17880 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.
178a0 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
178c0 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..
178e0 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.
17900 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,.@[
17920 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.
17940 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
17960 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
17980 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
179a0 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
179c0 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
179e0 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
17a00 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)..........
17a20 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
17a40 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
17a60 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.
17a80 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).
17aa0 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).............;
17ac0 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
17ae0 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).
17b00 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
17b20 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
17b40 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
17b60 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
17b80 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
17ba0 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
17bc0 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).....;.<
17be0 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)...
17c00 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.
17c20 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
17c40 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
17c60 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
17c80 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
17ca0 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
17cc0 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)....;.%
17ce0 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).
17d00 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
17d20 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
17d40 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
17d60 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.
17d80 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
17da0 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_
17dc0 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)
17de0 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)............
17e00 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
17e20 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.(
17e40 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)........
17e60 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.(++.--)
17e80 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
17ea0 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
17ec0 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.
17ee0 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
17f00 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
17f20 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.
17f40 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
17f60 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
17f80 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)..
17fa0 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
17fc0 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
17fe0 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)....
18000 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
18020 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
18040 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)....
18060 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
18080 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
180a0 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)...........
180c0 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.
180e0 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
18100 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
18120 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
18140 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
18160 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
18180 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)
181a0 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
181c0 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
181e0 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).
18200 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.
18220 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
18240 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
18260 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.
18280 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
182a0 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).......
182c0 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-
182e0 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
18300 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
18320 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
18340 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
18360 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
18380 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
183a0 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
183c0 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).......
183e0 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
18400 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).
18420 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
18440 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.
18460 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=
18480 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
184a0 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.(
184c0 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
184e0 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
18500 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
18520 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
18540 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.(..)
18560 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)....
18580 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
185a0 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
185c0 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)......;..()
185e0 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
18600 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).
18620 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
18640 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
18660 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
18680 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
186a0 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
186c0 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
186e0 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
18700 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)...
18720 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
18740 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
18760 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
18780 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
187a0 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
187c0 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).
187e0 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
18800 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-
18820 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
18840 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)..
18860 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
18880 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-
188a0 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
188c0 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
188e0 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
18900 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
18920 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
18940 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.
18960 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)
18980 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
189a0 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
189c0 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.
189e0 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.(?:)
18a00 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
18a20 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.
18a40 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
18a60 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
18a80 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
18aa0 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
18ac0 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
18ae0 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();..
18b00 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
18b20 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
18b40 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.
18b60 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.
18b80 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
18ba0 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.
18bc0 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
18be0 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
18c00 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
18c20 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
18c40 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
18c60 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'..;
18c80 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
18ca0 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
18cc0 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-
18ce0 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-
18d00 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.
18d20 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
18d40 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-
18d60 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
18d80 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
18da0 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-
18dc0 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
18de0 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
18e00 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
18e20 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.")..;
18e40 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
18e60 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.
18e80 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.").
18ea0 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..
18ec0 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...
18ee0 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
18f00 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.")..;
18f20 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
18f40 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
18f60 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
18f80 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
18fa0 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
18fc0 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-
18fe0 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
19000 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
19020 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
19040 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.
19060 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
19080 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
190a0 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
190c0 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................(
190e0 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
19100 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
19120 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)..
19140 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.""
19160 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
19180 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.
191a0 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).
191c0 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
191e0 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
19200 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).(
19220 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
19240 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
19260 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
19280 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
192a0 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
192c0 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).............
192e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19300 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).
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 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
19360 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)).....
19380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
193a0 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.
193c0 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)...........
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 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
19420 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
19440 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
19460 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
19480 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...
194a0 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.
194c0 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
194e0 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
19500 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
19520 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
19540 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.
19560 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
19580 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
195a0 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.
195c0 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
195e0 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
19600 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
19620 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
19640 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
19660 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
19680 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
196a0 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
196c0 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
196e0 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
19700 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
19720 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
19740 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.
19760 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
19780 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
197a0 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
197c0 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.
197e0 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
19800 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.
19820 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.
19840 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.
19860 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
19880 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
198a0 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
198c0 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
198e0 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
19900 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
19920 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
19940 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
19960 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
19980 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
199a0 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
199c0 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
199e0 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
19a00 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
19a20 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
19a40 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.")..;;
19a60 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
19a80 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
19aa0 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
19ac0 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
19ae0 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
19b00 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
19b20 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
19b40 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
19b60 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
19b80 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
19ba0 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-
19bc0 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
19be0 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
19c00 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-
19c20 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-
19c40 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
19c60 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
19c80 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:
19ca0 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
19cc0 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
19ce0 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
19d00 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
19d20 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
19d40 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
19d60 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
19d80 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.")..
19da0 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
19dc0 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)
19de0 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
19e00 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
19e20 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.
19e40 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
19e60 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).
19e80 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
19ea0 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
19ec0 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-
19ee0 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
19f00 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
19f20 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
19f40 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
19f60 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
19f80 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
19fa0 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
19fc0 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.
19fe0 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
1a000 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
1a020 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'.
1a040 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
1a060 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
1a080 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..
1a0a0 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
1a0c0 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..."
1a0e0 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
1a100 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
1a120 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
1a140 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
1a160 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-
1a180 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
1a1a0 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
1a1c0 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
1a1e0 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
1a200 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
1a220 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
1a240 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
1a260 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.`
1a280 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
1a2a0 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."...:
1a2c0 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
1a2e0 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
1a300 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
1a320 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
1a340 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
1a360 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
1a380 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.
1a3a0 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
1a3c0 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...
1a3e0 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
1a400 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.
1a420 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
1a440 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
1a460 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
1a480 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'...
1a4a0 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
1a4c0 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
1a4e0 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
1a500 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.
1a520 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
1a540 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
1a560 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.
1a580 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.
1a5a0 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
1a5c0 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
1a5e0 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.
1a600 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.
1a620 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
1a640 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
1a660 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.
1a680 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
1a6a0 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
1a6c0 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
1a6e0 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
1a700 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
1a720 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
1a740 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
1a760 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
1a780 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
1a7a0 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
1a7c0 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
1a7e0 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
1a800 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
1a820 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
1a840 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.
1a860 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
1a880 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
1a8a0 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
1a8c0 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.
1a8e0 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,.
1a900 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
1a920 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.
1a940 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
1a960 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
1a980 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
1a9a0 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
1a9c0 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
1a9e0 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
1aa00 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.
1aa20 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
1aa40 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).
1aa60 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
1aa80 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
1aaa0 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
1aac0 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
1aae0 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.
1ab00 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
1ab20 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)
1ab40 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
1ab60 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-
1ab80 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
1aba0 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
1abc0 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
1abe0 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
1ac00 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
1ac20 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-
1ac40 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
1ac60 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
1ac80 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.
1aca0 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
1acc0 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
1ace0 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
1ad00 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
1ad20 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..
1ad40 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.
1ad60 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.
1ad80 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.
1ada0 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).;;.;;
1adc0 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.
1ade0 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
1ae00 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
1ae20 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
1ae40 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
1ae60 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
1ae80 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
1aea0 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.
1aec0 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
1aee0 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
1af00 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.
1af20 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
1af40 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
1af60 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
1af80 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
1afa0 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
1afc0 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
1afe0 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
1b000 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....
1b020 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
1b040 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
1b060 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
1b080 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
1b0a0 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
1b0c0 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
1b0e0 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
1b100 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.
1b120 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
1b140 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
1b160 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
1b180 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
1b1a0 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
1b1c0 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.
1b1e0 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
1b200 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
1b220 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
1b240 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.
1b260 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
1b280 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
1b2a0 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
1b2c0 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
1b2e0 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
1b300 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
1b320 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".(
1b340 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)))
1b360 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
1b380 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
1b3a0 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
1b3c0 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
1b3e0 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-
1b400 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
1b420 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
1b440 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
1b460 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
1b480 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
1b4a0 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
1b4c0 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
1b4e0 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
1b500 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.
1b520 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.
1b540 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
1b560 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,
1b580 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
1b5a0 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
1b5c0 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
1b5e0 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
1b600 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
1b620 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
1b640 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
1b660 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
1b680 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-
1b6a0 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
1b6c0 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
1b6e0 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
1b700 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
1b720 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'
1b740 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
1b760 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
1b780 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-
1b7a0 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
1b7c0 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
1b7e0 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
1b800 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
1b820 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
1b840 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
1b860 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
1b880 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
1b8a0 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.
1b8c0 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.
1b8e0 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.
1b900 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
1b920 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
1b940 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,
1b960 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
1b980 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
1b9a0 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
1b9c0 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
1b9e0 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
1ba00 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
1ba20 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
1ba40 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
1ba60 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
1ba80 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.
1baa0 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
1bac0 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
1bae0 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
1bb00 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.
1bb20 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
1bb40 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.
1bb60 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
1bb80 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
1bba0 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
1bbc0 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.
1bbe0 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
1bc00 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
1bc20 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.
1bc40 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
1bc60 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.
1bc80 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
1bca0 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
1bcc0 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
1bce0 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
1bd00 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
1bd20 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,
1bd40 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
1bd60 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
1bd80 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.
1bda0 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
1bdc0 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.
1bde0 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
1be00 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
1be20 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
1be40 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,.
1be60 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.
1be80 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.
1bea0 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
1bec0 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
1bee0 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
1bf00 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
1bf20 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
1bf40 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
1bf60 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.
1bf80 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...`((((
1bfa0 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))
1bfc0 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"))...
1bfe0 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
1c000 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"))
1c020 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
1c040 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
1c060 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
1c080 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
1c0a0 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
1c0c0 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
1c0e0 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
1c100 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")
1c120 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
1c140 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
1c160 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
1c180 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.
1c1a0 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
1c1c0 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)
1c1e0 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
1c200 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
1c220 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
1c240 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
1c260 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-
1c280 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
1c2a0 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
1c2c0 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."
1c2e0 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
1c300 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
1c320 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
1c340 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.
1c360 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
1c380 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.
1c3a0 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
1c3c0 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
1c3e0 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)
1c400 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..
1c420 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
1c440 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
1c460 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.'
1c480 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
1c4a0 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
1c4c0 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
1c4e0 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
1c500 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.
1c520 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
1c540 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
1c560 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
1c580 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
1c5a0 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
1c5c0 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
1c5e0 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.
1c600 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
1c620 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
1c640 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
1c660 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
1c680 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...
1c6a0 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"))..
1c6c0 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
1c6e0 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
1c700 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
1c720 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-
1c740 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
1c760 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
1c780 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
1c7a0 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
1c7c0 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)).....
1c7e0 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")).....(((
1c800 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
1c820 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
1c840 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
1c860 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"
1c880 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
1c8a0 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...'(
1c8c0 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).
1c8e0 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
1c900 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
1c920 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
1c940 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
1c960 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-
1c980 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))...
1c9a0 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
1c9c0 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
1c9e0 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
1ca00 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
1ca20 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
1ca40 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
1ca60 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."
1ca80 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.
1caa0 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
1cac0 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
1cae0 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
1cb00 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
1cb20 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
1cb40 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
1cb60 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-
1cb80 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
1cba0 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
1cbc0 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
1cbe0 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
1cc00 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
1cc20 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
1cc40 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
1cc60 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
1cc80 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
1cca0 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
1ccc0 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
1cce0 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..
1cd00 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
1cd20 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
1cd40 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
1cd60 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
1cd80 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
1cda0 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
1cdc0 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
1cde0 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
1ce00 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
1ce20 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
1ce40 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
1ce60 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
1ce80 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
1cea0 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
1cec0 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.'
1cee0 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
1cf00 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
1cf20 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.
1cf40 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
1cf60 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."
1cf80 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
1cfa0 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
1cfc0 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
1cfe0 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
1d000 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:/
1d020 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
1d040 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
1d060 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
1d080 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
1d0a0 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)..(
1d0c0 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
1d0e0 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
1d100 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.
1d120 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
1d140 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
1d160 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
1d180 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
1d1a0 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.
1d1c0 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
1d1e0 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
1d200 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.
1d220 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
1d240 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.(
1d260 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
1d280 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
1d2a0 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
1d2c0 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
1d2e0 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)...
1d300 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"
1d320 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
1d340 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-
1d360 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
1d380 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
1d3a0 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
1d3c0 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
1d3e0 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
1d400 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
1d420 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
1d440 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
1d460 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-
1d480 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.
1d4a0 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].......
1d4c0 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-
1d4e0 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
1d500 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
1d520 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
1d540 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-
1d560 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..................
1d580 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
1d5a0 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.
1d5c0 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
1d5e0 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
1d600 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
1d620 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-
1d640 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"))
1d660 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.
1d680 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].......'(
1d6a0 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
1d6c0 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]....
1d6e0 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.
1d700 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...............
1d720 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..
1d740 20 20 20 20 20 20 20 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 ...............................(
1d760 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
1d780 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)...........................
1d7a0 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
1d7c0 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)))................
1d7e0 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
1d800 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.
1d820 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
1d840 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
1d860 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
1d880 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..........
1d8a0 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-
1d8c0 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)..............
1d8e0 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
1d900 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
1d920 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.
1d940 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."
1d960 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
1d980 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.....
1d9a0 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-
1d9c0 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...............
1d9e0 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
1da00 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
1da20 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.
1da40 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].......'("--")).....
1da60 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
1da80 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]......
1daa0 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
1dac0 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....
1dae0 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
1db00 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"))..
1db20 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
1db40 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].......'(
1db60 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".
1db80 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...
1dba0 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
1dbc0 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...............
1dbe0 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
1dc00 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.
1dc20 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
1dc40 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.
1dc60 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-
1dc80 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...................
1dca0 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-
1dcc0 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.
1dce0 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./*...*/"
1dd00 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
1dd20 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]
1dd40 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
1dd60 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
1dd80 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
1dda0 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...
1ddc0 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
1dde0 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")).....
1de00 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
1de20 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].......
1de40 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
1de60 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
1de80 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
1dea0 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)....
1dec0 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.{...}
1dee0 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
1df00 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
1df20 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
1df40 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
1df60 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
1df80 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
1dfa0 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
1dfc0 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
1dfe0 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
1e000 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
1e020 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
1e040 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
1e060 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
1e080 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.(
1e0a0 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
1e0c0 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
1e0e0 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))..........
1e100 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)...............
1e120 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
1e140 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)..............
1e160 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
1e180 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
1e1a0 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
1e1c0 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.
1e1e0 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
1e200 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
1e220 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:
1e240 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
1e260 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-*\
1e280 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.
1e2a0 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
1e2c0 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
1e2e0 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
1e300 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
1e320 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
1e340 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
1e360 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
1e380 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-
1e3a0 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
1e3c0 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
1e3e0 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.").
1e400 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
1e420 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-
1e440 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
1e460 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.
1e480 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
1e4a0 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
1e4c0 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
1e4e0 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
1e500 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
1e520 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
1e540 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.
1e560 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
1e580 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
1e5a0 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
1e5c0 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
1e5e0 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
1e600 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...
1e620 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
1e640 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
1e660 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
1e680 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."
1e6a0 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
1e6c0 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
1e6e0 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
1e700 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))).
1e720 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
1e740 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.?`.
1e760 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
1e780 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
1e7a0 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
1e7c0 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
1e7e0 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-
1e800 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
1e820 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
1e840 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
1e860 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
1e880 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
1e8a0 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
1e8c0 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.
1e8e0 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
1e900 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
1e920 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
1e940 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
1e960 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.
1e980 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
1e9a0 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
1e9c0 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
1e9e0 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
1ea00 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
1ea20 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'.")..
1ea40 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
1ea60 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
1ea80 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)...
1eaa0 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
1eac0 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)
1eae0 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).
1eb00 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..
1eb20 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).
1eb40 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
1eb60 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
1eb80 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.(
1eba0 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)
1ebc0 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
1ebe0 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)))...
1ec00 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
1ec20 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.......
1ec40 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).....
1ec60 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
1ec80 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"
1eca0 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
1ecc0 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
1ece0 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
1ed00 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.")..
1ed20 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"....
1ed40 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
1ed60 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.").
1ed80 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
1eda0 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
1edc0 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
1ede0 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
1ee00 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".......
1ee20 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.
1ee40 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
1ee60 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
1ee80 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
1eea0 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
1eec0 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'
1eee0 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
1ef00 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
1ef20 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
1ef40 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."...
1ef60 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
1ef80 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,."........
1efa0 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
1efc0 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.
1efe0 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."
1f000 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"...
1f020 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
1f040 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.".........
1f060 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
1f080 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
1f0a0 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
1f0c0 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-
1f0e0 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".........
1f100 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
1f120 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
1f140 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
1f160 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
1f180 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
1f1a0 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
1f1c0 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'.").
1f1e0 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".
1f200 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
1f220 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.
1f240 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"..
1f260 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
1f280 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
1f2a0 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"....
1f2c0 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.
1f2e0 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.
1f300 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
1f320 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
1f340 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
1f360 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.
1f380 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
1f3a0 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"..
1f3c0 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..
1f3e0 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."...
1f400 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
1f420 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
1f440 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
1f460 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
1f480 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
1f4a0 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.")
1f4c0 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".......
1f4e0 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.")
1f500 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".......
1f520 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.")
1f540 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"......
1f560 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
1f580 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"...
1f5a0 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
1f5c0 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
1f5e0 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"..
1f600 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.
1f620 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.
1f640 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
1f660 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
1f680 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.
1f6a0 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.
1f6c0 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.
1f6e0 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
1f700 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
1f720 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
1f740 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
1f760 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
1f780 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
1f7a0 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
1f7c0 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
1f7e0 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
1f800 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"
1f820 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
1f840 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
1f860 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
1f880 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
1f8a0 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
1f8c0 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
1f8e0 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
1f900 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
1f920 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.
1f940 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
1f960 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
1f980 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
1f9a0 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
1f9c0 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
1f9e0 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
1fa00 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
1fa20 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.
1fa40 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
1fa60 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
1fa80 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.
1faa0 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
1fac0 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.
1fae0 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
1fb00 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.
1fb20 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")..
1fb40 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
1fb60 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
1fb80 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
1fba0 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
1fbc0 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
1fbe0 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
1fc00 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
1fc20 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
1fc40 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.
1fc60 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
1fc80 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
1fca0 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
1fcc0 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.
1fce0 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
1fd00 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."
1fd20 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
1fd40 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
1fd60 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
1fd80 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
1fda0 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
1fdc0 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"..........
1fde0 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
1fe00 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
1fe20 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
1fe40 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
1fe60 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
1fe80 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
1fea0 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
1fec0 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
1fee0 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
1ff00 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
1ff20 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.
1ff40 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"
1ff60 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
1ff80 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.
1ffa0 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
1ffc0 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
1ffe0 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
20000 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
20020 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.")..(
20040 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
20060 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
20080 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
200a0 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
200c0 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
200e0 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
20100 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"
20120 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
20140 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
20160 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
20180 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
201a0 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".
201c0 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.'
201e0 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")
20200 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
20220 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
20240 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
20260 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
20280 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.
202a0 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
202c0 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
202e0 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
20300 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
20320 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.
20340 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
20360 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
20380 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
203a0 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
203c0 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
203e0 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".....
20400 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
20420 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")..;;
20440 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
20460 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
20480 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
204a0 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")..
204c0 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"........
204e0 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
20500 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
20520 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
20540 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")..(
20560 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"..
20580 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
205a0 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").
205c0 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"...
205e0 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
20600 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."......
20620 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
20640 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
20660 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..
20680 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
206a0 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.
206c0 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.(
206e0 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.")..
20700 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"..........
20720 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
20740 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"
20760 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
20780 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
207a0 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".;.
207c0 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
207e0 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
20800 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
20820 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.
20840 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.
20860 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
20880 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
208a0 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
208c0 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
208e0 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.
20900 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.
20920 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
20940 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
20960 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"..........
20980 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")
209a0 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"..
209c0 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
209e0 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
20a00 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
20a20 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
20a40 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.;
20a60 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
20a80 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
20aa0 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
20ac0 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"........
20ae0 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
20b00 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.
20b20 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
20b40 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
20b60 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".....
20b80 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
20ba0 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
20bc0 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
20be0 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
20c00 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
20c20 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-
20c40 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".......
20c60 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
20c80 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
20ca0 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
20cc0 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
20ce0 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"....
20d00 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
20d20 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
20d40 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
20d60 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.
20d80 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.
20da0 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
20dc0 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".........
20de0 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
20e00 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.
20e20 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
20e40 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-
20e60 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"..........
20e80 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
20ea0 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
20ec0 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
20ee0 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
20f00 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
20f20 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
20f40 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".........."
20f60 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
20f80 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"..
20fa0 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
20fc0 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
20fe0 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
21000 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
21020 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"
21040 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-
21060 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
21080 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
210a0 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
210c0 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
210e0 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.(.
21100 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
21120 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
21140 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
21160 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
21180 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-
211a0 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
211c0 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
211e0 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
21200 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
21220 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
21240 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
21260 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
21280 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.
212a0 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
212c0 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
212e0 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
21300 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").
21320 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
21340 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
21360 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
21380 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
213a0 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
213c0 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-
213e0 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"........
21400 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"
21420 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"......
21440 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
21460 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"........
21480 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")
214a0 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"..
214c0 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
214e0 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
21500 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
21520 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
21540 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
21560 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
21580 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.
215a0 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")
215c0 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"..
215e0 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
21600 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
21620 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
21640 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.
21660 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
21680 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
216a0 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")..(
216c0 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
216e0 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
21700 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
21720 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".........."
21740 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
21760 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
21780 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.
217a0 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
217c0 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"
217e0 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
21800 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")..
21820 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
21840 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
21860 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
21880 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
218a0 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
218c0 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
218e0 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.
21900 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
21920 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
21940 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")..(
21960 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
21980 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
219a0 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
219c0 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
219e0 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
21a00 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."
21a20 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"..........
21a40 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
21a60 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
21a80 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
21aa0 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
21ac0 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
21ae0 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
21b00 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"...
21b20 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
21b40 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
21b60 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".
21b80 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.
21ba0 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
21bc0 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
21be0 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.
21c00 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
21c20 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
21c40 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)
21c60 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
21c80 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
21ca0 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
21cc0 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
21ce0 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
21d00 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
21d20 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
21d40 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
21d60 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
21d80 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
21da0 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-
21dc0 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
21de0 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
21e00 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
21e20 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
21e40 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
21e60 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.
21e80 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"
21ea0 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
21ec0 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
21ee0 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-
21f00 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".........
21f20 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-
21f40 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"......
21f60 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")..(
21f80 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"
21fa0 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
21fc0 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."
21fe0 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".........
22000 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
22020 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
22040 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
22060 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.
22080 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
220a0 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
220c0 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
220e0 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."
22100 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
22120 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
22140 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
22160 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
22180 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
221a0 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'").
221c0 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"..
221e0 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."
22200 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"..
22220 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
22240 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
22260 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
22280 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
222a0 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.
222c0 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
222e0 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
22300 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.
22320 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
22340 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.")..(
22360 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"...
22380 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
223a0 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.
223c0 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.%
223e0 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
22400 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".........."
22420 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
22440 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"..........
22460 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.
22480 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
224a0 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
224c0 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
224e0 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"......
22500 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'
22520 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
22540 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
22560 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."
22580 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
225a0 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.
225c0 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
225e0 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.").
22600 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"
22620 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.
22640 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.
22660 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'.")
22680 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
226a0 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
226c0 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
226e0 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.
22700 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.")
22720 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"
22740 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
22760 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
22780 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
227a0 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.")..
227c0 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"....
227e0 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.
22800 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
22820 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
22840 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.
22860 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."......
22880 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
228a0 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.")
228c0 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
228e0 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
22900 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
22920 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
22940 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
22960 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
22980 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
229a0 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
229c0 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.")..
229e0 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"........
22a00 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
22a20 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
22a40 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
22a60 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
22a80 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"........
22aa0 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.
22ac0 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
22ae0 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
22b00 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.
22b20 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
22b40 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
22b60 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.")..
22b80 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"
22ba0 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
22bc0 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
22be0 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.
22c00 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
22c20 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
22c40 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
22c60 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
22c80 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.
22ca0 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
22cc0 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.
22ce0 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
22d00 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
22d20 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
22d40 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
22d60 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
22d80 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"......
22da0 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
22dc0 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
22de0 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
22e00 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
22e20 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.
22e40 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
22e60 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
22e80 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")..
22ea0 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".
22ec0 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
22ee0 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
22f00 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
22f20 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
22f40 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
22f60 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.
22f80 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
22fa0 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'."
22fc0 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"....
22fe0 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.
23000 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
23020 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
23040 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
23060 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
23080 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
230a0 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
230c0 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
230e0 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.
23100 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.").
23120 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
23140 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
23160 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
23180 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.
231a0 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
231c0 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
231e0 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
23200 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"....
23220 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")..(
23240 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
23260 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
23280 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.
232a0 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".........."
232c0 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
232e0 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
23300 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.%
23320 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
23340 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
23360 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
23380 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
233a0 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
233c0 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
233e0 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..
23400 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
23420 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
23440 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.
23460 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
23480 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")..
234a0 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
234c0 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
234e0 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
23500 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
23520 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"......
23540 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
23560 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
23580 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
235a0 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.
235c0 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;.".......
235e0 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
23600 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.
23620 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
23640 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'")..(
23660 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
23680 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
236a0 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.
236c0 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".........."
236e0 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'"
23700 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
23720 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
23740 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.")..;;
23760 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
23780 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
237a0 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
237c0 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"....
237e0 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
23800 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
23820 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".......
23840 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.")..;
23860 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
23880 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
238a0 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
238c0 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"....
238e0 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.
23900 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
23920 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
23940 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
23960 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
23980 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
239a0 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
239c0 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
239e0 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
23a00 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")..;
23a20 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.
23a40 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.
23a60 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
23a80 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
23aa0 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
23ac0 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.','.
23ae0 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
23b00 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
23b20 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
23b40 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.
23b60 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-
23b80 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.
23ba0 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
23bc0 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
23be0 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.
23c00 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
23c20 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-
23c40 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
23c60 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").
23c80 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
23ca0 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.
23cc0 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
23ce0 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.
23d00 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
23d20 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)
23d40 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
23d60 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
23d80 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
23da0 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.
23dc0 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
23de0 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
23e00 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)).
23e20 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
23e40 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-
23e60 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-
23e80 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
23ea0 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)))..(
23ec0 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.(
23ee0 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-
23f00 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-
23f20 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
23f40 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-
23f60 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
23f80 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))).....(-
23fa0 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
23fc0 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
23fe0 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
24000 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
24020 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-
24040 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
24060 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
24080 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
240a0 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
240c0 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
240e0 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)
24100 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
24120 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
24140 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
24160 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.
24180 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
241a0 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))............
241c0 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
241e0 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
24200 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
24220 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
24240 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
24260 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).......
24280 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
242a0 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
242c0 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
242e0 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
24300 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
24320 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
24340 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
24360 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.
24380 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
243a0 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
243c0 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
243e0 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.
24400 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.
24420 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))..
24440 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
24460 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.
24480 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."...(
244a0 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.
244c0 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--")
244e0 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
24500 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
24520 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
24540 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)).........................
24560 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))............
24580 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
245a0 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
245c0 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
245e0 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
24600 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)
24620 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))
24640 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
24660 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.
24680 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
246a0 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
246c0 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
246e0 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
24700 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
24720 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.
24740 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
24760 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
24780 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.
247a0 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
247c0 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.
247e0 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
24800 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
24820 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
24840 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
24860 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))...............
24880 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))
248a0 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))..(
248c0 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
248e0 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
24900 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
24920 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
24940 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-
24960 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)
24980 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
249a0 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........
249c0 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......
249e0 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..
24a00 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
24a20 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)...................
24a40 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))............
24a60 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
24a80 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
24aa0 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
24ac0 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
24ae0 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
24b00 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
24b20 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)..........
24b40 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
24b60 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.
24b80 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))........
24ba0 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
24bc0 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-
24be0 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
24c00 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
24c20 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
24c40 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...
24c60 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
24c80 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-
24ca0 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..
24cc0 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
24ce0 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
24d00 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"
24d20 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-
24d40 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
24d60 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-
24d80 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
24da0 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
24dc0 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
24de0 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)))
24e00 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
24e20 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
24e40 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.,
24e60 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
24e80 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
24ea0 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
24ec0 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)..
24ee0 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)))..;
24f00 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
24f20 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
24f40 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
24f60 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
24f80 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:.
24fa0 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
24fc0 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.
24fe0 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
25000 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.")..
25020 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
25040 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.
25060 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
25080 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
250a0 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
250c0 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)......."".
250e0 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
25100 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
25120 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
25140 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
25160 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
25180 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
251a0 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
251c0 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
251e0 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
25200 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
25220 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
25240 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
25260 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
25280 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
252a0 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
252c0 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
252e0 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
25300 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
25320 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
25340 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
25360 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
25380 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
253a0 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
253c0 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
253e0 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
25400 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....
25420 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
25440 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.
25460 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
25480 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
254a0 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
254c0 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.....
254e0 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
25500 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
25520 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.
25540 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
25560 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
25580 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
255a0 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
255c0 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...........
255e0 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
25600 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"........
25620 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))))).....
25640 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
25660 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-
25680 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.............
256a0 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
256c0 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
256e0 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).
25700 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
25720 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)...
25740 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
25760 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
25780 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
257a0 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;.
257c0 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
257e0 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.
25800 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
25820 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
25840 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.
25860 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
25880 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
258a0 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.
258c0 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
258e0 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.
25900 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
25920 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
25940 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
25960 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
25980 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)
259a0 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).........
259c0 20 20 20 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-
259e0 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
25a00 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
25a20 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.
25a40 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
25a60 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
25a80 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
25aa0 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
25ac0 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
25ae0 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.
25b00 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
25b20 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
25b40 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
25b60 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
25b80 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
25ba0 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.
25bc0 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
25be0 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.(+.
25c00 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)
25c20 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
25c40 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
25c60 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
25c80 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))).
25ca0 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
25cc0 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).
25ce0 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
25d00 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'
25d20 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
25d40 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.;;
25d60 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.
25d80 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.;
25da0 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
25dc0 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
25de0 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
25e00 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
25e20 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
25e40 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
25e60 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.(&
25e80 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)............
25ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25ec0 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
25ee0 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)).......................
25f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25f20 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............................
25f40 20 20 20 20 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
25f60 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...............................
25f80 20 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)))
25fa0 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
25fc0 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.
25fe0 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
26000 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.'
26020 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
26040 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.'
26060 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
26080 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
260a0 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
260c0 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
260e0 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
26100 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
26120 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.
26140 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
26160 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-
26180 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
261a0 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
261c0 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
261e0 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.
26200 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)................(
26220 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
26240 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)..............
26260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26280 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
262a0 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 ))..............................
262c0 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........
262e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26300 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
26320 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
26340 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'
26360 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'
26380 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
263a0 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
263c0 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,...
263e0 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
26400 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)...
26420 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
26440 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...
26460 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
26480 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
264a0 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...
264c0 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.
264e0 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
26500 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
26520 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
26540 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
26560 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
26580 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
265a0 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
265c0 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
265e0 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
26600 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
26620 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.
26640 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
26660 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
26680 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
266a0 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
266c0 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)
266e0 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
26700 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
26720 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)............
26740 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
26760 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))....
26780 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
267a0 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
267c0 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
267e0 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..
26800 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
26820 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
26840 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)
26860 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.
26880 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)..."
268a0 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
268c0 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
268e0 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
26900 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
26920 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,.
26940 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
26960 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.
26980 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
269a0 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
269c0 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....
269e0 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))).....
26a00 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))
26a20 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)
26a40 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.(
26a60 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
26a80 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)))))........
26aa0 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................
26ac0 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)..............
26ae0 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
26b00 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)))........
26b20 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........
26b40 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
26b60 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)
26b80 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
26ba0 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
26bc0 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))).........
26be0 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............
26c00 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
26c20 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
26c40 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
26c60 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).
26c80 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
26ca0 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
26cc0 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
26ce0 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."..
26d00 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
26d20 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
26d40 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).......................
26d60 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
26d80 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
26da0 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
26dc0 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
26de0 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
26e00 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.
26e20 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.
26e40 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
26e60 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
26e80 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))..........
26ea0 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
26ec0 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
26ee0 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...
26f00 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).....
26f20 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).......
26f40 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
26f60 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
26f80 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
26fa0 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
26fc0 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
26fe0 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
27000 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
27020 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
27040 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
27060 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'.
27080 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..
270a0 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
270c0 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
270e0 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
27100 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).......................
27120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27140 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))..
27160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27180 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)))..."
271a0 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
271c0 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
271e0 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
27200 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
27220 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-
27240 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
27260 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
27280 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
272a0 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
272c0 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).............
272e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27300 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
27320 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)).......................
27340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27360 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
27380 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
273a0 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
273c0 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
273e0 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
27400 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
27420 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...
27440 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
27460 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
27480 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
274a0 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-
274c0 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--
274e0 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
27500 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
27520 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
27540 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
27560 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
27580 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
275a0 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
275c0 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)...........
275e0 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-
27600 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)....
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 28 6a 73 32 2d 63 75 72 72 ..................(pos.(js2-curr
27660 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)).................
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 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........................
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 62 75 ..............................bu
276e0 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
27700 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
27720 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
27740 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
27760 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.
27780 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......
277a0 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
277c0 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......
277e0 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
27800 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)...
27820 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,.
27840 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
27860 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.
27880 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
278a0 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
278c0 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-
278e0 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)...
27900 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.
27920 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
27940 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-
27960 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
27980 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)))..
279a0 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.
279c0 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
279e0 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.
27a00 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
27a20 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)..................
27a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27a60 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-
27a80 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))...........................
27aa0 20 20 20 20 20 20 20 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
27ac0 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..............................
27ae0 20 20 20 20 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
27b00 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
27b20 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-
27b40 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
27b60 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
27b80 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
27ba0 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.
27bc0 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.
27be0 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
27c00 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
27c20 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
27c40 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
27c60 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
27c80 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
27ca0 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................
27cc0 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).............
27ce0 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
27d00 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
27d20 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).............................
27d40 20 20 20 20 20 20 20 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 ...............................(
27d60 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)..............
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 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...............
27dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27de0 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
27e00 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
27e20 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-
27e40 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
27e60 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
27e80 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
27ea0 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
27ec0 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
27ee0 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
27f00 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
27f20 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
27f40 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)..(
27f60 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.(
27f80 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-
27fa0 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
27fc0 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
27fe0 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
28000 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
28020 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
28040 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.
28060 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
28080 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
280a0 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......
280c0 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.......
280e0 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
28100 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
28120 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.
28140 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.....
28160 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
28180 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
281a0 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
281c0 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)...........................
281e0 20 20 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.(
28200 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)).........
28220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28240 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.................
28260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28280 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........................
282a0 20 20 20 20 20 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
282c0 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..........................
282e0 20 20 20 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
28300 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............................
28320 20 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.....
28340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28360 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
28380 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
283a0 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).;
283c0 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
283e0 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
28400 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
28420 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
28440 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
28460 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.
28480 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
284a0 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
284c0 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
284e0 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
28500 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))).....(
28520 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
28540 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-
28560 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
28580 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.
285a0 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-
285c0 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)
285e0 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
28600 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..........
28620 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).......
28640 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-
28660 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
28680 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).............................
286a0 20 20 20 20 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
286c0 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)).......
286e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28700 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...........
28720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28740 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......
28760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28780 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..
287a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
287c0 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
287e0 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..............................
28800 20 20 20 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
28820 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.
28840 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
28860 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
28880 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..".
288a0 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
288c0 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.
288e0 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-
28900 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
28920 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.
28940 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
28960 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
28980 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
289a0 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
289c0 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
289e0 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
28a00 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
28a20 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
28a40 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)...(
28a60 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
28a80 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
28aa0 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.
28ac0 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
28ae0 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)).......
28b00 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
28b20 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.
28b40 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
28b60 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
28b80 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
28ba0 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
28bc0 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
28be0 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
28c00 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)
28c20 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
28c40 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
28c60 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
28c80 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))..
28ca0 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
28cc0 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
28ce0 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.
28d00 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
28d20 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
28d40 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
28d60 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.")
28d80 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
28da0 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
28dc0 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))......
28de0 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).......(
28e00 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-
28e20 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.".").......(
28e40 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))....
28e60 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."*.").....
28e80 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)).
28ea0 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
28ec0 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))
28ee0 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.(
28f00 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))
28f20 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
28f40 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
28f60 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)........................
28f80 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.
28fa0 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.";
28fc0 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
28fe0 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.
29000 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)................(:
29020 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.
29040 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)..........
29060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29080 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-
290a0 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)).....................
290c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
290e0 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.....................
29100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29120 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.................
29140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29160 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
29180 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
291a0 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
291c0 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-
291e0 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
29200 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.
29220 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
29240 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
29260 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
29280 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
292a0 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.
292c0 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
292e0 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))).....(
29300 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
29320 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
29340 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")...
29360 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
29380 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
293a0 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
293c0 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
293e0 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)................(
29400 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.(
29420 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).............
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 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)....
29480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
294a0 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.
294c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
294e0 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..
29500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29520 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
29540 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
29560 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
29580 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..;
295a0 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
295c0 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.'
295e0 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
29600 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.
29620 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-
29640 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
29660 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
29680 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
296a0 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
296c0 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-
296e0 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
29700 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))
29720 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
29740 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))
29760 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.(").....(
29780 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
297a0 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
297c0 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
297e0 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.";.").....
29800 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
29820 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")..
29840 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
29860 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
29880 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
298a0 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
298c0 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)...............
298e0 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
29900 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)........
29920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29940 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
29960 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)............................
29980 20 20 20 20 20 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
299a0 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...........................
299c0 20 20 20 20 20 20 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
299e0 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..........................
29a00 20 20 20 20 20 20 20 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
29a20 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...........................
29a40 20 20 20 20 20 20 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
29a60 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............................
29a80 20 20 20 20 20 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
29aa0 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...........................
29ac0 20 20 20 20 20 20 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
29ae0 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.........................
29b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29b20 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....
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 20 20 20 20 20 20 ................................
29b60 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)))...
29b80 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."..
29ba0 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.......
29bc0 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
29be0 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
29c00 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
29c20 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
29c40 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
29c60 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
29c80 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
29ca0 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
29cc0 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
29ce0 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.
29d00 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
29d20 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
29d40 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-
29d60 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
29d80 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
29da0 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.
29dc0 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-
29de0 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
29e00 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.
29e20 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-
29e40 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-
29e60 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.(
29e80 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)).........(
29ea0 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
29ec0 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
29ee0 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))........
29f00 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
29f20 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.")...
29f40 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
29f60 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........
29f80 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.
29fa0 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
29fc0 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
29fe0 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."))...
2a000 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
2a020 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.").{\
2a040 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
2a060 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
2a080 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
2a0a0 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...............
2a0c0 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)............
2a0e0 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
2a100 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)..
2a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a140 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-
2a160 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)......................
2a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a1a0 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..........................
2a1c0 20 20 20 20 20 20 20 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
2a1e0 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
2a200 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
2a220 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..
2a240 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
2a260 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
2a280 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
2a2a0 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
2a2c0 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-
2a2e0 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
2a300 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)
2a320 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.
2a340 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)
2a360 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
2a380 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.".")..
2a3a0 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
2a3c0 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"
2a3e0 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..
2a400 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
2a420 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
2a440 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-
2a460 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).............................
2a480 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
2a4a0 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).....................
2a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a4e0 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...................
2a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a520 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.....................
2a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a560 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........................
2a580 20 20 20 20 20 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
2a5a0 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.......................
2a5c0 20 20 20 20 20 20 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
2a5e0 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
2a600 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
2a620 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
2a640 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
2a660 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..
2a680 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
2a6a0 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
2a6c0 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
2a6e0 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
2a700 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-
2a720 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
2a740 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--
2a760 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
2a780 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
2a7a0 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-
2a7c0 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
2a7e0 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-
2a800 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
2a820 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).
2a840 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
2a860 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
2a880 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
2a8a0 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
2a8c0 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))).
2a8e0 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
2a900 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
2a920 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")....
2a940 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
2a960 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
2a980 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
2a9a0 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-
2a9c0 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
2a9e0 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-
2aa00 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."
2aa20 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
2aa40 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
2aa60 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.
2aa80 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........
2aaa0 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).....
2aac0 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
2aae0 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
2ab00 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)...........................
2ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ab40 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.......................
2ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ab80 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...................
2aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2abc0 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........
2abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ac00 20 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-
2ac20 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
2ac40 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.
2ac60 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
2ac80 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.
2aca0 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.
2acc0 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
2ace0 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
2ad00 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
2ad20 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
2ad40 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
2ad60 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.
2ad80 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'
2ada0 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.
2adc0 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
2ade0 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
2ae00 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
2ae20 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-
2ae40 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
2ae60 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
2ae80 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
2aea0 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
2aec0 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
2aee0 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)...
2af00 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
2af20 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,.
2af40 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
2af60 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
2af80 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)
2afa0 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
2afc0 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)))
2afe0 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
2b000 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
2b020 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
2b040 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
2b060 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
2b080 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
2b0a0 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
2b0c0 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
2b0e0 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.(
2b100 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
2b120 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
2b140 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
2b160 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
2b180 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
2b1a0 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
2b1c0 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.").......(
2b1e0 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
2b200 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-
2b220 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
2b240 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)................(:
2b260 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
2b280 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)........
2b2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b2c0 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
2b2e0 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))..................
2b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b320 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......................
2b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b360 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.......................
2b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b3a0 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..........................
2b3c0 20 20 20 20 20 20 20 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
2b3e0 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
2b400 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.
2b420 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
2b440 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;"..
2b460 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-
2b480 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.
2b4a0 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-
2b4c0 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.
2b4e0 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
2b500 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
2b520 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
2b540 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
2b560 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--
2b580 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
2b5a0 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
2b5c0 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
2b5e0 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
2b600 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
2b620 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)))...
2b640 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
2b660 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))....
2b680 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
2b6a0 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
2b6c0 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
2b6e0 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
2b700 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
2b720 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
2b740 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)).......
2b760 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-
2b780 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
2b7a0 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))).....
2b7c0 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
2b7e0 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.....
2b800 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
2b820 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.
2b840 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
2b860 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
2b880 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).
2b8a0 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.
2b8c0 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
2b8e0 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................(
2b900 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)..............
2b920 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-
2b940 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).....
2b960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b980 20 20 20 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..
2b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2b9c0 20 20 20 20 20 20 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
2b9e0 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...............................
2ba00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ba20 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...............
2ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ba60 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..
2ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2baa0 20 20 20 20 20 20 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
2bac0 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
2bae0 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.
2bb00 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.
2bb20 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
2bb40 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.
2bb60 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."..
2bb80 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
2bba0 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'..
2bbc0 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
2bbe0 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
2bc00 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
2bc20 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
2bc40 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
2bc60 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
2bc80 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
2bca0 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
2bcc0 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
2bce0 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
2bd00 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.
2bd20 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
2bd40 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
2bd60 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
2bd80 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.
2bda0 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
2bdc0 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))
2bde0 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
2be00 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
2be20 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
2be40 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
2be60 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-
2be80 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.
2bea0 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-
2bec0 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
2bee0 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
2bf00 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
2bf20 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
2bf40 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
2bf60 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
2bf80 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......
2bfa0 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).......(
2bfc0 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
2bfe0 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
2c000 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))......((
2c020 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)......
2c040 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).......(
2c060 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
2c080 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)).....
2c0a0 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
2c0c0 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.......(
2c0e0 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
2c100 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......
2c120 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-
2c140 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
2c160 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
2c180 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
2c1a0 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
2c1c0 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
2c1e0 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
2c200 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
2c220 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
2c240 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
2c260 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).
2c280 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))...
2c2a0 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
2c2c0 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."}"))..(
2c2e0 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
2c300 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
2c320 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
2c340 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
2c360 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)..........
2c380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c3a0 20 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....
2c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c3e0 20 20 20 20 20 20 20 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
2c400 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..............................
2c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c440 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
2c460 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
2c480 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
2c4a0 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\\
2c4c0 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
2c4e0 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."
2c500 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.
2c520 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
2c540 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
2c560 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
2c580 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.'
2c5a0 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
2c5c0 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
2c5e0 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
2c600 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
2c620 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
2c640 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..
2c660 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
2c680 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
2c6a0 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.(
2c6c0 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)..................
2c6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c700 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.................
2c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c740 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................
2c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c780 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.........
2c7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2c7c0 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)
2c7e0 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
2c800 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
2c820 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\\='
2c840 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
2c860 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.
2c880 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.;.
2c8a0 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
2c8c0 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.
2c8e0 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
2c900 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
2c920 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
2c940 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
2c960 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
2c980 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)..(
2c9a0 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).
2c9c0 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
2c9e0 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)....
2ca00 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
2ca20 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
2ca40 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)).....(
2ca60 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
2ca80 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
2caa0 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
2cac0 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
2cae0 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)...............
2cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2cb20 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)......
2cb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2cb60 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.............
2cb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2cba0 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..............
2cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2cbe0 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...........
2cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2cc20 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
2cc40 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."...
2cc60 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
2cc80 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
2cca0 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
2ccc0 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-
2cce0 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
2cd00 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
2cd20 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
2cd40 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
2cd60 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
2cd80 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
2cda0 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
2cdc0 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
2cde0 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
2ce00 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
2ce20 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)...(
2ce40 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)).....
2ce60 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
2ce80 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
2cea0 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)))..
2cec0 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
2cee0 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-
2cf00 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
2cf20 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
2cf40 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
2cf60 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.
2cf80 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
2cfa0 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"))))
2cfc0 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.
2cfe0 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
2d000 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
2d020 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
2d040 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).....................
2d060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d080 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)..........
2d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d0c0 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...............
2d0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d100 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..................
2d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d140 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.................
2d160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d180 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...............
2d1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d1c0 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
2d1e0 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......
2d200 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.
2d220 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
2d240 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
2d260 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..;
2d280 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'..
2d2a0 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
2d2c0 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
2d2e0 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.
2d300 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
2d320 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
2d340 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
2d360 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
2d380 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
2d3a0 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
2d3c0 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-
2d3e0 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.(
2d400 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).....
2d420 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
2d440 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
2d460 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
2d480 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
2d4a0 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.(
2d4c0 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))....
2d4e0 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
2d500 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
2d520 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
2d540 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."(")......
2d560 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-
2d580 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
2d5a0 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.").......
2d5c0 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)).
2d5e0 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
2d600 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
2d620 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
2d640 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...
2d660 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)
2d680 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
2d6a0 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.
2d6c0 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)....................
2d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d700 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).......
2d720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d740 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)))..
2d760 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.
2d780 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
2d7a0 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
2d7c0 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
2d7e0 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
2d800 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
2d820 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
2d840 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
2d860 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
2d880 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).
2d8a0 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
2d8c0 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-
2d8e0 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.{
2d900 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
2d920 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)).....(
2d940 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
2d960 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.............
2d980 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).........
2d9a0 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
2d9c0 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
2d9e0 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 )...............................
2da00 20 20 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
2da20 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)...................
2da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2da60 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.......................
2da80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2daa0 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..................
2dac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2dae0 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.................
2db00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2db20 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.
2db40 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
2db60 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
2db80 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.
2dba0 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
2dbc0 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
2dbe0 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
2dc00 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
2dc20 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
2dc40 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
2dc60 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).(
2dc80 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
2dca0 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-
2dcc0 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
2dce0 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-
2dd00 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)..
2dd20 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
2dd40 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)))
2dd60 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.(
2dd80 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.
2dda0 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
2ddc0 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."
2dde0 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
2de00 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
2de20 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
2de40 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
2de60 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."}
2de80 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-
2dea0 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
2dec0 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
2dee0 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.(&
2df00 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).............
2df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2df40 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)...
2df60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2df80 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
2dfa0 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
2dfc0 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
2dfe0 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.
2e000 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.'
2e020 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-
2e040 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
2e060 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
2e080 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-
2e0a0 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
2e0c0 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)
2e0e0 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
2e100 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
2e120 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))......
2e140 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))
2e160 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
2e180 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:
2e1a0 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.").....
2e1c0 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).......(
2e1e0 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.
2e200 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
2e220 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
2e240 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......
2e260 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)...
2e280 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-
2e2a0 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
2e2c0 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)...........................
2e2e0 20 20 20 20 20 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
2e300 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)................
2e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e340 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.
2e360 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).
2e380 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
2e3a0 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
2e3c0 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
2e3e0 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
2e400 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
2e420 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
2e440 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-
2e460 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
2e480 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
2e4a0 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.")..
2e4c0 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-
2e4e0 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
2e500 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......
2e520 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)...
2e540 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-
2e560 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
2e580 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).............................
2e5a0 20 20 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
2e5c0 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)...................
2e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e600 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..................
2e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e640 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
2e660 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..
2e680 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.
2e6a0 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
2e6c0 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
2e6e0 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
2e700 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
2e720 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
2e740 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
2e760 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
2e780 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
2e7a0 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
2e7c0 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
2e7e0 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
2e800 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
2e820 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.((
2e840 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
2e860 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-
2e880 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).
2e8a0 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
2e8c0 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).
2e8e0 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")))
2e900 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.
2e920 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
2e940 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.
2e960 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.
2e980 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)......................
2e9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e9c0 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)...........
2e9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ea00 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.
2ea20 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
2ea40 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..
2ea60 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
2ea80 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..
2eaa0 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
2eac0 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).(
2eae0 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.
2eb00 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)..
2eb20 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)...(
2eb40 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).........
2eb60 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).......
2eb80 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-
2eba0 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...............
2ebc0 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)............
2ebe0 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-
2ec00 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.
2ec20 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
2ec40 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
2ec60 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
2ec80 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
2eca0 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)
2ecc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ece0 20 20 20 20 20 20 20 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 ...............................(
2ed00 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)..............
2ed20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ed40 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
2ed60 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.
2ed80 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
2eda0 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
2edc0 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."..
2ede0 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
2ee00 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
2ee20 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
2ee40 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
2ee60 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
2ee80 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
2eea0 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
2eec0 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
2eee0 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
2ef00 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'.
2ef20 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
2ef40 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
2ef60 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
2ef80 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
2efa0 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).
2efc0 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.
2efe0 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
2f000 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
2f020 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.
2f040 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.
2f060 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))))..
2f080 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
2f0a0 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
2f0c0 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.
2f0e0 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))
2f100 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
2f120 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
2f140 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
2f160 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
2f180 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.
2f1a0 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-
2f1c0 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))..(
2f1e0 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
2f200 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
2f220 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
2f240 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
2f260 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."...
2f280 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-
2f2a0 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)..........
2f2c0 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
2f2e0 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.
2f300 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)
2f320 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
2f340 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
2f360 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
2f380 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
2f3a0 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.
2f3c0 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
2f3e0 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
2f400 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
2f420 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.
2f440 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
2f460 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
2f480 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."
2f4a0 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
2f4c0 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
2f4e0 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
2f500 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
2f520 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
2f540 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.
2f560 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..
2f580 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-
2f5a0 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
2f5c0 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
2f5e0 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).............
2f600 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-
2f620 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).....
2f640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f660 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
2f680 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)..........................
2f6a0 20 20 20 20 20 20 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
2f6c0 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
2f6e0 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
2f700 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
2f720 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.
2f740 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',.
2f760 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
2f780 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
2f7a0 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
2f7c0 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
2f7e0 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
2f800 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
2f820 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
2f840 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)
2f860 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
2f880 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)."
2f8a0 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-
2f8c0 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
2f8e0 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
2f900 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
2f920 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...
2f940 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-
2f960 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
2f980 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.
2f9a0 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).............
2f9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f9e0 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
2fa00 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 )...............................
2fa20 20 20 20 20 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.
2fa40 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.
2fa60 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.
2fa80 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
2faa0 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
2fac0 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
2fae0 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.
2fb00 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
2fb20 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
2fb40 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
2fb60 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
2fb80 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
2fba0 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
2fbc0 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
2fbe0 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.
2fc00 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
2fc20 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-
2fc40 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.".")..
2fc60 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-
2fc80 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
2fca0 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
2fcc0 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
2fce0 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)................(
2fd00 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
2fd20 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)...
2fd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fd60 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
2fd80 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).....................
2fda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fdc0 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.......................
2fde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fe00 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)...........
2fe20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fe40 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_
2fe60 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)......................
2fe80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fea0 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."")..................
2fec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fee0 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..........
2ff00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ff20 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...........
2ff40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ff60 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..
2ff80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ffa0 20 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..
2ffc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ffe0 20 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))
30000 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
30020 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.
30040 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
30060 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
30080 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-
300a0 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
300c0 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'.".
300e0 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
30100 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..........
30120 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
30140 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.............;.
30160 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'
30180 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.
301a0 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
301c0 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
301e0 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
30200 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
30220 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-
30240 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.(
30260 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
30280 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,.
302a0 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..........
302c0 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
302e0 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
30300 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.
30320 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
30340 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
30360 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
30380 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
303a0 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
303c0 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
303e0 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
30400 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)....
30420 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
30440 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-
30460 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-
30480 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
304a0 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
304c0 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).
304e0 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.
30500 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
30520 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.(
30540 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)).
30560 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-
30580 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
305a0 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
305c0 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
305e0 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.
30600 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
30620 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
30640 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)...............
30660 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
30680 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
306a0 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)).........
306c0 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
306e0 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))........
30700 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
30720 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
30740 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
30760 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
30780 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))))...
307a0 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
307c0 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
307e0 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."))..
30800 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
30820 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
30840 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
30860 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."*"))).....(
30880 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.".")....
308a0 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)).....(
308c0 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
308e0 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).............
30900 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............
30920 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..............
30940 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-
30960 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))................
30980 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
309a0 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)............
309c0 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)...........
309e0 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
30a00 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
30a20 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."{")...
30a40 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
30a60 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
30a80 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"))..
30aa0 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)..
30ac0 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+.
30ae0 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)
30b00 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
30b20 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"))))..
30b40 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).
30b60 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
30b80 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.
30ba0 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
30bc0 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-
30be0 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
30c00 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.
30c20 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
30c40 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
30c60 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.
30c80 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.
30ca0 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
30cc0 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.
30ce0 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
30d00 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
30d20 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
30d40 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
30d60 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
30d80 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..........
30da0 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).......
30dc0 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-
30de0 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
30e00 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)..............................
30e20 20 20 20 20 20 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
30e40 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))......
30e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30e80 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...
30ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30ec0 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
30ee0 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.
30f00 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.
30f20 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
30f40 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..
30f60 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,.
30f80 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
30fa0 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,
30fc0 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
30fe0 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....
31000 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
31020 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)..
31040 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.
31060 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-
31080 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
310a0 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
310c0 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
310e0 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
31100 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
31120 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
31140 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
31160 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
31180 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
311a0 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)
311c0 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.
311e0 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
31200 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
31220 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.")..............((=
31240 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.")........
31260 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
31280 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")))).....
312a0 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
312c0 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
312e0 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)...........
31300 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..............
31320 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
31340 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
31360 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
31380 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.",."
313a0 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
313c0 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
313e0 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
31400 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.(
31420 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).............
31440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31460 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
31480 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 )...............................
314a0 20 20 20 20 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.
314c0 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..........................
314e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31500 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.
31520 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
31540 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
31560 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
31580 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'
315a0 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
315c0 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,.
315e0 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.'
31600 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.'
31620 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
31640 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
31660 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
31680 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
316a0 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-
316c0 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
316e0 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
31700 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
31720 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.(
31740 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)).........(
31760 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
31780 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
317a0 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
317c0 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)
317e0 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.".
31800 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
31820 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
31840 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-
31860 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
31880 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
318a0 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).....................
318c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
318e0 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)...........
31900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31920 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.................
31940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31960 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.................
31980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
319a0 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.................
319c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
319e0 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................
31a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31a20 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
31a40 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
31a60 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
31a80 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.
31aa0 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
31ac0 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
31ae0 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
31b00 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
31b20 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
31b40 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
31b60 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
31b80 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
31ba0 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
31bc0 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
31be0 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))..(
31c00 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).
31c20 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))).
31c40 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-
31c60 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).
31c80 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
31ca0 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
31cc0 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.".:.").....(
31ce0 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
31d00 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.(
31d20 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................(:
31d40 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)...............
31d60 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
31d80 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...................
31da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31dc0 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)........
31de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31e00 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......
31e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31e40 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))).
31e60 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.
31e80 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.`|
31ea0 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.
31ec0 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
31ee0 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
31f00 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
31f20 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.
31f40 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
31f60 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
31f80 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
31fa0 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.'
31fc0 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
31fe0 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
32000 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
32020 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
32040 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
32060 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
32080 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
320a0 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))......
320c0 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.
320e0 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
32100 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")..........
32120 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
32140 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
32160 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").............
32180 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").....
321a0 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"
321c0 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
321e0 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
32200 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
32220 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
32240 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
32260 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."??")
32280 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."+
322a0 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
322c0 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-
322e0 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.
32300 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."^")................(
32320 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."&")............
32340 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."==")..........
32360 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."!=")........
32380 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."<").......
323a0 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."<=").....
323c0 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.">")....
323e0 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.">=")..
32400 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."<<"
32420 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."
32440 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
32460 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
32480 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..
324a0 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."-")
324c0 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............
324e0 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."*")..........
32500 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."**").....
32520 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."/")...
32540 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."%").
32560 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."!"
32580 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
325a0 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-
325c0 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.....
325e0 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."-")...
32600 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...............
32620 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."...").....
32640 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."===")
32660 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..........
32680 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."!==")....;
326a0 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.............
326c0 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."=")........
326e0 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."
32700 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
32720 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."^=")...............
32740 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."&=")..
32760 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
32780 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
327a0 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.">>=")............
327c0 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.">>>="
327e0 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
32800 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
32820 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."-=")...........
32840 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."*=").
32860 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_
32880 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
328a0 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."/=")..........
328c0 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."%=")
328e0 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
32900 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
32920 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."||=")...........
32940 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."?
32960 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)
32980 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
329a0 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
329c0 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)..
329e0 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))..
32a00 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
32a20 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...
32a40 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
32a60 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))).
32a80 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))...
32aa0 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
32ac0 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
32ae0 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."."))....
32b00 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.".")...
32b20 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
32b40 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
32b60 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................(:
32b80 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).........
32ba0 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
32bc0 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............
32be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32c00 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)
32c20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32c40 20 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-
32c60 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.............................
32c80 20 20 20 20 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
32ca0 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
32cc0 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
32ce0 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.")..
32d00 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
32d20 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-
32d40 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
32d60 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-
32d80 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-
32da0 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
32dc0 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
32de0 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.(
32e00 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............
32e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32e40 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).
32e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32e80 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
32ea0 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
32ec0 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.
32ee0 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
32f00 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
32f20 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.
32f40 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.
32f60 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
32f80 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'
32fa0 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
32fc0 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-
32fe0 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
33000 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.
33020 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
33040 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
33060 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
33080 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
330a0 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
330c0 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
330e0 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)).....
33100 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
33120 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...
33140 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
33160 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
33180 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
331a0 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
331c0 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).............
331e0 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).............(
33200 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
33220 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."."
33240 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
33260 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
33280 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-
332a0 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.........
332c0 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).....
332e0 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
33300 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
33320 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).............................
33340 20 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
33360 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))..........
33380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
333a0 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.......
333c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
333e0 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
33400 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
33420 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
33440 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
33460 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.
33480 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
334a0 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
334c0 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
334e0 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
33500 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
33520 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
33540 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-
33560 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-
33580 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
335a0 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
335c0 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)).
335e0 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)
33600 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
33620 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
33640 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.
33660 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.
33680 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
336a0 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)).
336c0 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
336e0 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
33700 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
33720 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
33740 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...............................
33760 20 20 20 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.
33780 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))........
337a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
337c0 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
337e0 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
33800 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
33820 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
33840 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
33860 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
33880 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
338a0 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
338c0 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--
338e0 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
33900 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
33920 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
33940 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.
33960 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
33980 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....
339a0 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
339c0 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
339e0 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
33a00 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")..............((
33a20 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")..........
33a40 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")..
33a60 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)
33a80 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
33aa0 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
33ac0 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
33ae0 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
33b00 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
33b20 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
33b40 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
33b60 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
33b80 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))))..(
33ba0 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......
33bc0 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)...
33be0 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-
33c00 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
33c20 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 )...............................
33c40 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
33c60 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))............
33c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
33ca0 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............
33cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
33ce0 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......
33d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
33d20 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.
33d40 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.
33d60 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
33d80 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
33da0 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
33dc0 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,
33de0 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
33e00 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
33e20 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
33e40 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
33e60 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
33e80 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
33ea0 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.'
33ec0 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
33ee0 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
33f00 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
33f20 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
33f40 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)
33f60 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))...(
33f80 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
33fa0 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
33fc0 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
33fe0 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-
34000 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))...(
34020 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
34040 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."
34060 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
34080 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
340a0 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
340c0 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
340e0 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
34100 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
34120 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.(&
34140 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).............
34160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34180 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
341a0 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)).........................
341c0 20 20 20 20 20 20 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
341e0 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.............
34200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34220 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
34240 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))).....................
34260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34280 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
342a0 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
342c0 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
342e0 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
34300 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-
34320 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-
34340 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
34360 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
34380 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
343a0 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)...
343c0 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)........
343e0 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
34400 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
34420 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
34440 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
34460 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
34480 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.
344a0 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
344c0 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.
344e0 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................
34500 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).............
34520 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
34540 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)...
34560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34580 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-
345a0 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)).............
345c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
345e0 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
34600 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...............................
34620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34640 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))).....
34660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34680 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-
346a0 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))..........
346c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
346e0 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
34700 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.....................
34720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34740 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
34760 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)))...........................
34780 20 20 20 20 20 20 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
347a0 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..
347c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
347e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34800 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))).........
34820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34840 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.
34860 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
34880 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
348a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
348c0 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))))
348e0 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
34900 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
34920 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
34940 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.
34960 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.
34980 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
349a0 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.
349c0 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-
349e0 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
34a00 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-
34a20 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
34a40 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
34a60 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)...
34a80 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)........
34aa0 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
34ac0 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
34ae0 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...........
34b00 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)........
34b20 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
34b40 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
34b60 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)..............................
34b80 20 20 20 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.
34ba0 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))........
34bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34be0 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-
34c00 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..........................
34c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34c40 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)))
34c60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34c80 20 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
34ca0 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
34cc0 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..
34ce0 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.//.
34d00 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
34d20 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
34d40 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
34d60 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
34d80 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
34da0 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
34dc0 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.
34de0 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)..........."/"..
34e00 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.
34e20 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
34e40 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.
34e60 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
34e80 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....
34ea0 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).
34ec0 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
34ee0 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
34f00 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).......................
34f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34f40 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)).
34f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34f80 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.(-.
34fa0 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...................
34fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
34fe0 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
35000 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))).........................
35020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35040 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
35060 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.
35080 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.
350a0 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.
350c0 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.
350e0 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."
35100 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
35120 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..
35140 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
35160 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).
35180 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
351a0 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
351c0 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-
351e0 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
35200 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
35220 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
35240 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
35260 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
35280 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.(
352a0 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)...
352c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
352e0 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.
35300 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."...
35320 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
35340 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
35360 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
35380 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-
353a0 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-
353c0 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
353e0 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
35400 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
35420 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)...
35440 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-
35460 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.
35480 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
354a0 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
354c0 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
354e0 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
35500 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
35520 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))......
35540 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
35560 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
35580 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
355a0 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
355c0 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.(
355e0 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).
35600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35640 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
35660 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.....
35680 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
356a0 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
356c0 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
356e0 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
35700 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
35720 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
35740 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
35760 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
35780 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
357a0 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
357c0 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-
357e0 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
35800 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
35820 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
35840 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
35860 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
35880 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
358a0 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-
358c0 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)
358e0 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
35900 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
35920 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
35940 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
35960 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).................
35980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
359a0 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)......
359c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
359e0 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)))..
35a00 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.
35a20 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
35a40 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
35a60 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
35a80 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-
35aa0 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
35ac0 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.
35ae0 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
35b00 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
35b20 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))
35b40 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
35b60 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.
35b80 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
35ba0 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
35bc0 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.
35be0 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).
35c00 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.
35c20 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.",
35c40 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
35c60 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............
35c80 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).........
35ca0 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
35cc0 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
35ce0 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)............................
35d00 20 20 20 20 20 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
35d20 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)................
35d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35d60 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....................
35d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35da0 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
35dc0 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
35de0 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
35e00 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
35e20 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
35e40 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-
35e60 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
35e80 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
35ea0 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.
35ec0 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
35ee0 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
35f00 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
35f20 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-
35f40 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
35f60 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
35f80 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
35fa0 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
35fc0 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)...............
35fe0 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
36000 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).......
36020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36040 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
36060 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)............................
36080 20 20 20 20 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
360a0 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).............
360c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
360e0 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."")............
36100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36120 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)))
36140 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
36160 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-
36180 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'
361a0 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'"
361c0 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
361e0 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.......
36200 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-
36220 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
36240 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.
36260 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
36280 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
362a0 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
362c0 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.'
362e0 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
36300 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
36320 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
36340 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
36360 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
36380 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
363a0 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
363c0 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
363e0 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
36400 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
36420 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))....
36440 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
36460 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-
36480 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
364a0 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...
364c0 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
364e0 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
36500 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.").....
36520 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)).....(
36540 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
36560 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").......
36580 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
365a0 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
365c0 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.")..
365e0 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
36600 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
36620 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
36640 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
36660 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
36680 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
366a0 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
366c0 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
366e0 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
36700 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..............................
36720 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...........................
36740 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)...............
36760 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............
36780 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
367a0 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))................
367c0 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
367e0 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............................
36800 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
36820 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
36840 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
36860 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-
36880 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
368a0 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-
368c0 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
368e0 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
36900 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
36920 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
36940 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-
36960 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).
36980 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
369a0 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
369c0 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
369e0 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
36a00 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
36a20 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
36a40 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
36a60 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
36a80 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
36aa0 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)........
36ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36ae0 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
36b00 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).......................
36b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36b40 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.................
36b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36b80 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)))..."
36ba0 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
36bc0 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
36be0 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,.
36c00 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
36c20 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.
36c40 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
36c60 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
36c80 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.
36ca0 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.
36cc0 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
36ce0 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
36d00 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
36d20 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-
36d40 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
36d60 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
36d80 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
36da0 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
36dc0 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))......
36de0 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
36e00 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
36e20 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
36e40 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
36e60 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.":.")....
36e80 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)))
36ea0 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
36ec0 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-
36ee0 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
36f00 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.(&
36f20 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).........
36f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36f60 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))
36f80 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
36fa0 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.
36fc0 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
36fe0 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.
37000 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
37020 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.
37040 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.
37060 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
37080 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
370a0 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-
370c0 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
370e0 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
37100 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
37120 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)).....
37140 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
37160 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
37180 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.(
371a0 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_
371c0 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
371e0 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
37200 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.").........
37220 20 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...
37240 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.").........................
37260 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.").....
37280 20 20 20 20 20 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
372a0 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
372c0 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)....
372e0 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
37300 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)))
37320 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
37340 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
37360 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
37380 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................(
373a0 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)........
373c0 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
373e0 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
37400 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)...........................
37420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37440 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).............
37460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37480 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))).
374a0 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
374c0 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
374e0 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-
37500 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-
37520 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
37540 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
37560 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).
37580 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.
375a0 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
375c0 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
375e0 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
37600 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
37620 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-
37640 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
37660 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
37680 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
376a0 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
376c0 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........
376e0 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).....
37700 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
37720 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-
37740 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)........................
37760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37780 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)..........
377a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
377c0 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
377e0 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.............................
37800 20 20 20 20 20 20 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
37820 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.
37840 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
37860 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
37880 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.".".
378a0 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
378c0 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......
378e0 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.
37900 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.
37920 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
37940 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
37960 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
37980 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
379a0 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
379c0 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.
379e0 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)...
37a00 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
37a20 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.
37a40 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)
37a60 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
37a80 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.
37aa0 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
37ac0 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."
37ae0 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
37b00 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.
37b20 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
37b40 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
37b60 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
37b80 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
37ba0 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)....................
37bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37be0 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)..........
37c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37c20 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....
37c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37c60 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
37c80 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
37ca0 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
37cc0 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.
37ce0 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
37d00 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
37d20 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
37d40 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
37d60 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
37d80 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
37da0 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).
37dc0 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.
37de0 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
37e00 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.(
37e20 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-
37e40 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
37e60 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
37e80 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
37ea0 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
37ec0 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-
37ee0 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).
37f00 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
37f20 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
37f40 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
37f60 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
37f80 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
37fa0 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
37fc0 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)..............
37fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38000 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)...
38020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38040 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
38060 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
38080 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-
380a0 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)
380c0 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
380e0 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
38100 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
38120 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
38140 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
38160 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
38180 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
381a0 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))..(
381c0 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)
381e0 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))...(
38200 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
38220 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."*
38240 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
38260 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
38280 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
382a0 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
382c0 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
382e0 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
38300 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.
38320 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)...................
38340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38360 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)........
38380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
383a0 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
383c0 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
383e0 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
38400 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
38420 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
38440 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
38460 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
38480 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-
384a0 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
384c0 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.
384e0 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
38500 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-
38520 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
38540 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).
38560 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
38580 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
385a0 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
385c0 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)...
385e0 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
38600 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
38620 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)................(
38640 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.
38660 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)......
38680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
386a0 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
386c0 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)............................
386e0 20 20 20 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
38700 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...........................
38720 20 20 20 20 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
38740 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.......................
38760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38780 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
387a0 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
387c0 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)]."..
387e0 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
38800 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..
38820 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
38840 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
38860 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
38880 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
388a0 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
388c0 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
388e0 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.
38900 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
38920 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
38940 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
38960 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
38980 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
389a0 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.(
389c0 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
389e0 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))
38a00 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
38a20 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)
38a40 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
38a60 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)...
38a80 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))....
38aa0 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
38ac0 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-
38ae0 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.
38b00 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))......
38b20 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-
38b40 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)).........
38b60 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
38b80 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
38ba0 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
38bc0 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
38be0 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
38c00 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.........(
38c20 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
38c40 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...
38c60 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
38c80 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-
38ca0 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
38cc0 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
38ce0 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.")")......
38d00 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
38d20 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...
38d40 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))...
38d60 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.")"."]")))).
38d80 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
38da0 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-
38dc0 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
38de0 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
38e00 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)..........
38e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38e40 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
38e60 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)...........................
38e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ea0 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...................
38ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ee0 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..........
38f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38f20 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.....
38f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38f60 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.
38f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38fa0 20 20 20 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
38fc0 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..............................
38fe0 20 20 20 20 20 20 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
39000 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.'
39020 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
39040 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
39060 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
39080 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
390a0 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
390c0 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
390e0 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
39100 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
39120 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
39140 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-
39160 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-
39180 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.
391a0 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
391c0 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."))...
391e0 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
39200 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)
39220 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
39240 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
39260 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
39280 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)...
392a0 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
392c0 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...............
392e0 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)............
39300 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
39320 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
39340 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 )...............................
39360 20 20 20 20 20 20 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
39380 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)).....
393a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
393c0 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)))..
393e0 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
39400 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
39420 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
39440 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
39460 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
39480 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
394a0 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
394c0 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)............
394e0 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
39500 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)........
39520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39540 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-
39560 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)).....................
39580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
395a0 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
395c0 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.
395e0 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
39600 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'.
39620 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
39640 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
39660 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
39680 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
396a0 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-
396c0 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
396e0 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
39700 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-
39720 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
39740 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
39760 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................(:
39780 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)...........
397a0 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-
397c0 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
397e0 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 )...............................
39800 20 20 20 20 20 20 20 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 ...............................(
39820 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)..............
39840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39860 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
39880 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
398a0 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
398c0 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
398e0 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
39900 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
39920 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
39940 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
39960 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
39980 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-
399a0 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).
399c0 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
399e0 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
39a00 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
39a20 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
39a40 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
39a60 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-
39a80 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
39aa0 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-
39ac0 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................(:
39ae0 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).........
39b00 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
39b20 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
39b40 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)......................
39b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39b80 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)...
39ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39bc0 20 20 20 20 20 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-
39be0 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....................
39c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39c20 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
39c40 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.
39c60 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
39c80 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
39ca0 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
39cc0 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
39ce0 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
39d00 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."..
39d20 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-
39d40 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
39d60 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-
39d80 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
39da0 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
39dc0 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
39de0 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
39e00 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
39e20 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
39e40 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
39e60 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)...
39e80 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
39ea0 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................(:
39ec0 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)...............
39ee0 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
39f00 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
39f20 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
39f40 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
39f60 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
39f80 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:....-.
39fa0 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
39fc0 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).
39fe0 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').
3a000 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).
3a020 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
3a040 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
3a060 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:..
3a080 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
3a0a0 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
3a0c0 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
3a0e0 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]
3a100 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
3a120 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
3a140 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
3a160 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
3a180 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.`
3a1a0 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
3a1c0 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
3a1e0 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
3a200 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
3a220 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
3a240 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
3a260 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
3a280 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
3a2a0 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
3a2c0 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.`<'
3a2e0 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
3a300 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
3a320 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
3a340 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
3a360 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
3a380 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.@
3a3a0 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
3a3c0 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))........
3a3e0 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
3a400 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-
3a420 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...............
3a440 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)....
3a460 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
3a480 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
3a4a0 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)..................
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 20 20 20 20 20 20 ................................
3a4e0 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
3a500 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))......................
3a520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a540 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...........
3a560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a580 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
3a5a0 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............................
3a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a5e0 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.
3a600 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
3a620 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
3a640 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
3a660 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
3a680 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
3a6a0 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,
3a6c0 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::*,
3a6e0 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
3a700 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
3a720 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
3a740 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
3a760 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
3a780 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
3a7a0 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
3a7c0 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
3a7e0 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
3a800 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
3a820 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
3a840 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
3a860 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
3a880 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
3a8a0 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).
3a8c0 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
3a8e0 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
3a900 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-
3a920 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
3a940 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
3a960 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
3a980 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)..
3a9a0 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-
3a9c0 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)..
3a9e0 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-
3aa00 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
3aa20 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-
3aa40 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-
3aa60 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
3aa80 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
3aaa0 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.........
3aac0 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
3aae0 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.
3ab00 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
3ab20 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)..........
3ab40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ab60 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
3ab80 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))..............
3aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3abc0 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.
3abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ac00 20 20 20 20 20 20 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
3ac20 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..................
3ac40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ac60 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
3ac80 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
3aca0 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:...[.`
3acc0 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.`]'.
3ace0 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
3ad00 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
3ad20 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
3ad40 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
3ad60 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
3ad80 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
3ada0 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
3adc0 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
3ade0 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
3ae00 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
3ae20 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
3ae40 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...
3ae60 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,.
3ae80 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
3aea0 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
3aec0 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
3aee0 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
3af00 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
3af20 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
3af40 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.
3af60 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
3af80 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-
3afa0 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
3afc0 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
3afe0 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
3b000 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
3b020 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
3b040 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
3b060 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
3b080 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
3b0a0 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
3b0c0 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.
3b0e0 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))..
3b100 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
3b120 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
3b140 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
3b160 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-
3b180 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
3b1a0 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."
3b1c0 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
3b1e0 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
3b200 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))
3b220 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
3b240 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.
3b260 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...
3b280 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
3b2a0 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
3b2c0 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
3b2e0 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
3b300 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)......
3b320 20 20 20 20 20 20 20 20 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 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
3b360 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)...................
3b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b3a0 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
3b3c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 20 20 20 20 20 20 20 ................................
3b400 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
3b420 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
3b440 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
3b460 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
3b480 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'..
3b4a0 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
3b4c0 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.
3b4e0 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
3b500 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
3b520 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.'
3b540 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
3b560 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-
3b580 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
3b5a0 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
3b5c0 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
3b5e0 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-
3b600 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.
3b620 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)
3b640 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))...
3b660 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
3b680 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)...(
3b6a0 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)."<")...(
3b6c0 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
3b6e0 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
3b700 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
3b720 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.(
3b740 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).
3b760 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
3b780 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
3b7a0 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
3b7c0 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
3b7e0 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
3b800 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
3b820 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
3b840 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
3b860 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
3b880 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)........
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 20 20 20 20 20 20 20 ................................
3b8c0 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
3b8e0 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).......................
3b900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b920 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
3b940 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
3b960 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
3b980 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
3b9a0 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.'
3b9c0 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
3b9e0 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
3ba00 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
3ba20 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
3ba40 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
3ba60 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
3ba80 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)...
3baa0 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
3bac0 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-
3bae0 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
3bb00 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-
3bb20 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
3bb40 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)............
3bb60 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
3bb80 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)...
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 20 20 20 20 20 20 20 20 ................................
3bbc0 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
3bbe0 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).....................
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 20 20 20 20 20 20 20 20 ................................
3bc20 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
3bc40 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
3bc60 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
3bc80 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
3bca0 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
3bcc0 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
3bce0 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
3bd00 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.
3bd20 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
3bd40 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
3bd60 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
3bd80 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'."..
3bda0 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
3bdc0 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
3bde0 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-
3be00 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.
3be20 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.
3be40 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
3be60 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).
3be80 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
3bea0 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
3bec0 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
3bee0 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.(
3bf00 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)..
3bf20 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-
3bf40 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
3bf60 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-
3bf80 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
3bfa0 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
3bfc0 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................(:
3bfe0 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)...........
3c000 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-
3c020 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)....
3c040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c060 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
3c080 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)........................
3c0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c0c0 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
3c0e0 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
3c100 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
3c120 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
3c140 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-
3c160 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
3c180 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
3c1a0 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.'
3c1c0 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
3c1e0 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
3c200 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-
3c220 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.
3c240 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
3c260 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-
3c280 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-
3c2a0 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
3c2c0 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-
3c2e0 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))...
3c300 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).
3c320 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-
3c340 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)))
3c360 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
3c380 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............
3c3a0 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).....
3c3c0 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
3c3e0 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
3c400 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)...........................
3c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c440 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)............
3c460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c480 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)))..
3c4a0 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
3c4c0 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
3c4e0 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
3c500 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
3c520 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-
3c540 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
3c560 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-
3c580 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
3c5a0 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).
3c5c0 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
3c5e0 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
3c600 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
3c620 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
3c640 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))...
3c660 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
3c680 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.(
3c6a0 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...............
3c6c0 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)........
3c6e0 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
3c700 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)...
3c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c740 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-
3c760 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).........................
3c780 20 20 20 20 20 20 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
3c7a0 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....................
3c7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c7e0 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
3c800 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\\
3c820 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
3c840 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
3c860 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
3c880 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
3c8a0 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).;
3c8c0 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
3c8e0 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
3c900 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).
3c920 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
3c940 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-
3c960 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
3c980 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
3c9a0 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).
3c9c0 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
3c9e0 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
3ca00 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.((
3ca20 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
3ca40 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).........
3ca60 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 ..........."'"..................
3ca80 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
3caa0 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
3cac0 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
3cae0 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
3cb00 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).
3cb20 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
3cb40 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..........
3cb60 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)...
3cb80 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-
3cba0 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
3cbc0 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)..............................
3cbe0 20 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
3cc00 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)....................
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 20 20 20 20 20 20 20 20 ................................
3cc40 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
3cc60 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
3cc80 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
3cca0 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
3ccc0 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
3cce0 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
3cd00 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
3cd20 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
3cd40 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-
3cd60 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
3cd80 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
3cda0 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
3cdc0 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
3cde0 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
3ce00 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
3ce20 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
3ce40 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
3ce60 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..........
3ce80 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)...
3cea0 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-
3cec0 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
3cee0 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).......................
3cf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3cf20 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)......
3cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3cf60 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)))..
3cf80 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..
3cfa0 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
3cfc0 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.'
3cfe0 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
3d000 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
3d020 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-
3d040 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
3d060 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
3d080 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
3d0a0 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
3d0c0 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
3d0e0 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.
3d100 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
3d120 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
3d140 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
3d160 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
3d180 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
3d1a0 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
3d1c0 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
3d1e0 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
3d200 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
3d220 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
3d240 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
3d260 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
3d280 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
3d2a0 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
3d2c0 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.
3d2e0 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
3d300 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
3d320 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...
3d340 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)....
3d360 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
3d380 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
3d3a0 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..
3d3c0 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
3d3e0 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
3d400 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
3d420 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-
3d440 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))................
3d460 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-"))......
3d480 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-
3d4a0 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.
3d4c0 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
3d4e0 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
3d500 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
3d520 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
3d540 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
3d560 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
3d580 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.
3d5a0 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
3d5c0 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
3d5e0 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
3d600 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-
3d620 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))....(
3d640 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
3d660 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
3d680 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
3d6a0 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
3d6c0 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
3d6e0 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
3d700 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
3d720 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
3d740 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
3d760 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
3d780 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.
3d7a0 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.
3d7c0 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
3d7e0 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
3d800 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.
3d820 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.
3d840 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
3d860 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
3d880 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
3d8a0 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
3d8c0 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
3d8e0 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
3d900 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
3d920 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
3d940 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).
3d960 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
3d980 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
3d9a0 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
3d9c0 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)).....(
3d9e0 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
3da00 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
3da20 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)...
3da40 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
3da60 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
3da80 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
3daa0 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.
3dac0 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
3dae0 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
3db00 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
3db20 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
3db40 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..
3db60 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..
3db80 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.
3dba0 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.....
3dbc0 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
3dbe0 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
3dc00 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
3dc20 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
3dc40 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
3dc60 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
3dc80 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
3dca0 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....
3dcc0 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
3dce0 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
3dd00 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
3dd20 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
3dd40 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
3dd60 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.
3dd80 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
3dda0 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
3ddc0 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
3dde0 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
3de00 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).
3de20 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
3de40 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.
3de60 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
3de80 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
3dea0 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
3dec0 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,
3dee0 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
3df00 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
3df20 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.
3df40 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
3df60 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
3df80 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)...
3dfa0 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
3dfc0 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
3dfe0 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
3e000 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
3e020 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.
3e040 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."..
3e060 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.
3e080 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.
3e0a0 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
3e0c0 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))..
3e0e0 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)...
3e100 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))..
3e120 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
3e140 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-
3e160 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
3e180 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
3e1a0 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))
3e1c0 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)....
3e1e0 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)
3e200 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)).
3e220 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).....
3e240 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
3e260 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
3e280 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
3e2a0 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-
3e2c0 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-
3e2e0 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
3e300 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
3e320 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.....(
3e340 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
3e360 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)))))
3e380 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.
3e3a0 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
3e3c0 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
3e3e0 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.
3e400 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
3e420 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
3e440 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
3e460 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."...
3e480 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
3e4a0 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
3e4c0 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)
3e4e0 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))...
3e500 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)....
3e520 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))...
3e540 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-
3e560 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
3e580 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
3e5a0 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
3e5c0 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)).
3e5e0 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).....
3e600 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
3e620 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-
3e640 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
3e660 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
3e680 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
3e6a0 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
3e6c0 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)
3e6e0 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)))..
3e700 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
3e720 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-
3e740 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).....(
3e760 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
3e780 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
3e7a0 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
3e7c0 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
3e7e0 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
3e800 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
3e820 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.
3e840 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
3e860 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
3e880 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
3e8a0 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.
3e8c0 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
3e8e0 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
3e900 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.
3e920 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
3e940 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
3e960 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.
3e980 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
3e9a0 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,
3e9c0 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."
3e9e0 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
3ea00 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
3ea20 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.
3ea40 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....
3ea60 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
3ea80 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.
3eaa0 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)
3eac0 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
3eae0 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.
3eb00 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..
3eb20 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
3eb40 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
3eb60 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
3eb80 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
3eba0 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
3ebc0 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
3ebe0 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
3ec00 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)))).......(
3ec20 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
3ec40 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
3ec60 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
3ec80 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.
3eca0 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
3ecc0 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
3ece0 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
3ed00 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
3ed20 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
3ed40 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
3ed60 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
3ed80 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-
3eda0 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).........
3edc0 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.(
3ede0 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)).
3ee00 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-
3ee20 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
3ee40 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-
3ee60 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)..................
3ee80 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-
3eea0 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)...............
3eec0 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)))....
3eee0 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
3ef00 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.
3ef20 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
3ef40 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
3ef60 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
3ef80 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).......
3efa0 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............
3efc0 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))......
3efe0 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)).......
3f000 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
3f020 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
3f040 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
3f060 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
3f080 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
3f0a0 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
3f0c0 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
3f0e0 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
3f100 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
3f120 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
3f140 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
3f160 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
3f180 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
3f1a0 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
3f1c0 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
3f1e0 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
3f200 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)).........
3f220 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).....
3f240 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).........
3f260 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.
3f280 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
3f2a0 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.
3f2c0 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
3f2e0 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..
3f300 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
3f320 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
3f340 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
3f360 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
3f380 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)))....
3f3a0 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
3f3c0 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
3f3e0 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
3f400 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
3f420 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
3f440 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.
3f460 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
3f480 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.
3f4a0 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
3f4c0 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.(
3f4e0 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
3f500 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
3f520 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))).......
3f540 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
3f560 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
3f580 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
3f5a0 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
3f5c0 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)....
3f5e0 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."
3f600 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"
3f620 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
3f640 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
3f660 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
3f680 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
3f6a0 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
3f6c0 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..
3f6e0 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
3f700 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
3f720 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
3f740 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
3f760 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
3f780 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
3f7a0 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-
3f7c0 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
3f7e0 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-
3f800 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
3f820 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"))
3f840 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
3f860 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
3f880 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)))...
3f8a0 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......
3f8c0 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
3f8e0 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)...................
3f900 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.")))
3f920 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
3f940 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
3f960 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
3f980 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
3f9a0 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
3f9c0 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
3f9e0 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
3fa00 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
3fa20 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'
3fa40 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.
3fa60 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
3fa80 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
3faa0 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
3fac0 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
3fae0 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")
3fb00 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
3fb20 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
3fb40 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
3fb60 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.(
3fb80 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
3fba0 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
3fbc0 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....
3fbe0 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
3fc00 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)........................(
3fc20 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))))....
3fc40 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-
3fc60 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.............
3fc80 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............
3fca0 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).....
3fcc0 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
3fce0 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.............(
3fd00 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-
3fd20 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
3fd40 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............
3fd60 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))..
3fd80 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
3fda0 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.
3fdc0 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
3fde0 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
3fe00 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
3fe20 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
3fe40 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
3fe60 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
3fe80 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
3fea0 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
3fec0 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.(
3fee0 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))...
3ff00 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...
3ff20 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
3ff40 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......
3ff60 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.
3ff80 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.
3ffa0 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
3ffc0 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
3ffe0 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
40000 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.....
40020 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).....
40040 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
40060 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
40080 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
400a0 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
400c0 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
400e0 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
40100 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.............;
40120 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.........
40140 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
40160 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....
40180 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
401a0 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..
401c0 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).......
401e0 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))..
40200 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
40220 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.
40240 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).
40260 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.........;
40280 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
402a0 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......
402c0 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
402e0 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
40300 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
40320 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
40340 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-
40360 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
40380 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'."...(
403a0 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)...
403c0 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
403e0 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))))..;;.
40400 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
40420 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
40440 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.(
40460 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
40480 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
404a0 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
404c0 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
404e0 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
40500 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.".
40520 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)......
40540 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))).........
40560 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.......(
40580 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
405a0 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.......;;.
405c0 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
405e0 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
40600 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)...
40620 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
40640 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.(+.
40660 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)))....
40680 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)........
406a0 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))...........
406c0 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
406e0 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
40700 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
40720 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,
40740 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
40760 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
40780 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.
407a0 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.
407c0 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
407e0 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
40800 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
40820 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
40840 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-.(
40860 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)
40880 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
408a0 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
408c0 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
408e0 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-
40900 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
40920 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
40940 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.
40960 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
40980 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
409a0 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
409c0 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
409e0 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
40a00 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
40a20 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).
40a40 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
40a60 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.
40a80 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.
40aa0 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
40ac0 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
40ae0 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
40b00 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
40b20 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)))....
40b40 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
40b60 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.
40b80 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
40ba0 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
40bc0 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
40be0 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.
40c00 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
40c20 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..........
40c40 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
40c60 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)...............
40c80 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))
40ca0 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
40cc0 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
40ce0 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))..(
40d00 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-
40d20 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
40d40 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.
40d60 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
40d80 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
40da0 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
40dc0 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.
40de0 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
40e00 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)...................
40e20 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
40e40 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
40e60 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
40e80 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
40ea0 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.
40ec0 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."...
40ee0 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...............(
40f00 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
40f20 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)))
40f40 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
40f60 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
40f80 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
40fa0 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
40fc0 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
40fe0 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.
41000 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
41020 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
41040 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
41060 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.
41080 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).
410a0 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
410c0 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
410e0 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
41100 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
41120 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
41140 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
41160 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
41180 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.
411a0 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
411c0 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)).....
411e0 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)........
41200 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.",
41220 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.(
41240 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
41260 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
41280 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
412a0 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
412c0 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
412e0 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.
41300 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
41320 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
41340 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..
41360 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'.
41380 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
413a0 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
413c0 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.
413e0 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))....
41400 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
41420 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
41440 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.........(
41460 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
41480 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.
414a0 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
414c0 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
414e0 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........
41500 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...
41520 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
41540 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-
41560 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....................
41580 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............
415a0 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.......
415c0 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..
415e0 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_
41600 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
41620 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
41640 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...................
41660 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..............
41680 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........
416a0 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.
416c0 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
416e0 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
41700 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
41720 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...............
41740 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...............
41760 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...............
41780 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................
417a0 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................
417c0 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..........
417e0 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..........
41800 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..........
41820 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.......
41840 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....
41860 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......
41880 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....
418a0 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..
418c0 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.....
418e0 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......
41900 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......
41920 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..
41940 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.
41960 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
41980 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-
419a0 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
419c0 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-
419e0 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
41a00 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
41a20 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
41a40 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
41a60 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
41a80 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
41aa0 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.
41ac0 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.
41ae0 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
41b00 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
41b20 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
41b40 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
41b60 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.......................
41b80 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
41ba0 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
41bc0 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.......................
41be0 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.....................
41c00 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....................
41c20 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............
41c40 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.............
41c60 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...........
41c80 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......
41ca0 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....
41cc0 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..
41ce0 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
41d00 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
41d20 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
41d40 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
41d60 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.....................
41d80 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....................
41da0 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...................
41dc0 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...................
41de0 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.....................
41e00 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.......................
41e20 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.......................
41e40 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
41e60 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.....................
41e80 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
41ea0 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
41ec0 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)...
41ee0 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
41f00 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
41f20 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
41f40 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
41f60 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........;;.
41f80 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,.
41fa0 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........;
41fc0 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
41fe0 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...
42000 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
42020 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......
42040 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)...
42060 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
42080 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
420a0 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
420c0 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)))...........
420e0 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
42100 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
42120 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)...............
42140 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
42160 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")
42180 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
421a0 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)......
421c0 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
421e0 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))).....
42200 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)..........
42220 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).............(=.
42240 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)).....
42260 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
42280 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)).
422a0 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
422c0 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
422e0 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)....
42300 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
42320 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
42340 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-
42360 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
42380 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
423a0 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
423c0 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
423e0 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
42400 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.
42420 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
42440 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
42460 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))...
42480 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
424a0 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)))
424c0 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
424e0 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
42500 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-
42520 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.........
42540 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..
42560 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
42580 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.....
425a0 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...
425c0 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
425e0 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.....
42600 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...
42620 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
42640 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
42660 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.........
42680 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
426a0 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..
426c0 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.
426e0 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.
42700 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
42720 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.
42740 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
42760 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
42780 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
427a0 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
427c0 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.
427e0 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
42800 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
42820 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
42840 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
42860 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
42880 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
428a0 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
428c0 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
428e0 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
42900 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.
42920 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.
42940 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
42960 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
42980 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.
429a0 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
429c0 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
429e0 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
42a00 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
42a20 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
42a40 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
42a60 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
42a80 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
42aa0 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.
42ac0 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."...(
42ae0 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.
42b00 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
42b20 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
42b40 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
42b60 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
42b80 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
42ba0 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
42bc0 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-
42be0 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
42c00 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
42c20 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
42c40 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
42c60 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."
42c80 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
42ca0 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
42cc0 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
42ce0 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
42d00 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)..........
42d20 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
42d40 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)
42d60 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
42d80 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.
42da0 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
42dc0 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
42de0 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
42e00 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.;;.
42e20 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).
42e40 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
42e60 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
42e80 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.
42ea0 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
42ec0 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
42ee0 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.
42f00 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
42f20 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..;;.
42f40 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
42f60 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
42f80 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
42fa0 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
42fc0 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
42fe0 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
43000 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..
43020 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
43040 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
43060 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
43080 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
430a0 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.;;..
430c0 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..;;.;;.
430e0 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.
43100 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
43120 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-
43140 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
43160 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.
43180 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
431a0 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.
431c0 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
431e0 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
43200 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
43220 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
43240 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
43260 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
43280 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.
432a0 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
432c0 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
432e0 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
43300 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
43320 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.;
43340 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
43360 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
43380 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
433a0 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
433c0 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
433e0 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
43400 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
43420 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
43440 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..;;.;;..
43460 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.;;.
43480 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
434a0 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
434c0 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_
434e0 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.
43500 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
43520 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
43540 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
43560 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
43580 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-
435a0 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)..
435c0 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.
435e0 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
43600 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
43620 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.".
43640 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))
43660 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
43680 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........(
436a0 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
436c0 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
436e0 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
43700 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-
43720 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
43740 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......................
43760 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
43780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
437a0 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
437c0 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
437e0 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
43800 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
43820 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
43840 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.
43860 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
43880 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
438a0 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
438c0 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
438e0 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
43900 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
43920 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....................
43940 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
43960 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)............................
43980 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)))))..
439a0 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
439c0 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
439e0 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
43a00 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
43a20 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.
43a40 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,.
43a60 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
43a80 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
43aa0 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
43ac0 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.
43ae0 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
43b00 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
43b20 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.....
43b40 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.(
43b60 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))....
43b80 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).
43ba0 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
43bc0 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))...........
43be0 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)...........
43c00 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.
43c20 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
43c40 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
43c60 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
43c80 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-
43ca0 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........
43cc0 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
43ce0 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)..................
43d00 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
43d20 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
43d40 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
43d60 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.
43d80 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
43da0 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
43dc0 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
43de0 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
43e00 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
43e20 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
43e40 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
43e60 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
43e80 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_
43ea0 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
43ec0 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))....
43ee0 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.
43f00 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
43f20 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
43f40 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
43f60 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
43f80 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
43fa0 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
43fc0 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
43fe0 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
44000 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
44020 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
44040 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
44060 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
44080 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
440a0 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
440c0 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
440e0 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
44100 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
44120 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
44140 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
44160 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
44180 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
441a0 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
441c0 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
441e0 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.
44200 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
44220 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.
44240 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
44260 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
44280 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.....
442a0 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
442c0 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(...)
442e0 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
44300 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.".
44320 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-
44340 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))).........(
44360 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.................
44380 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)....
443a0 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
443c0 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))..............
443e0 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)...
44400 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
44420 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))...............
44440 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)...
44460 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
44480 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
444a0 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
444c0 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
444e0 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
44500 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)
44520 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
44540 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))..
44560 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
44580 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-
445a0 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...................
445c0 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
445e0 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.......................
44600 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
44620 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
44640 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
44660 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
44680 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
446a0 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.
446c0 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
446e0 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
44700 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.
44720 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
44740 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
44760 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
44780 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
447a0 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
447c0 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.
447e0 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
44800 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
44820 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-
44840 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
44860 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).....
44880 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
448a0 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
448c0 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)))....
448e0 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
44900 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.
44920 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
44940 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
44960 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
44980 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
449a0 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.
449c0 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
449e0 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_
44a00 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
44a20 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
44a40 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
44a60 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................
44a80 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
44aa0 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..........................
44ac0 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))))..
44ae0 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
44b00 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
44b20 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
44b40 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
44b60 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.
44b80 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
44ba0 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).
44bc0 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
44be0 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)..........
44c00 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_
44c20 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
44c40 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
44c60 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
44c80 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
44ca0 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
44cc0 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
44ce0 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
44d00 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
44d20 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
44d40 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
44d60 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
44d80 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
44da0 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
44dc0 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
44de0 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
44e00 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
44e20 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
44e40 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
44e60 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
44e80 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
44ea0 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
44ec0 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)
44ee0 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).
44f00 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)).....
44f20 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)
44f40 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
44f60 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)....
44f80 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).....
44fa0 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
44fc0 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
44fe0 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
45000 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.
45020 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.
45040 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.
45060 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
45080 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
450a0 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
450c0 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
450e0 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-
45100 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.
45120 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
45140 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
45160 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
45180 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
451a0 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
451c0 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
451e0 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
45200 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
45220 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
45240 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
45260 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
45280 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
452a0 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
452c0 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
452e0 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.
45300 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))......
45320 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
45340 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))...
45360 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
45380 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)....
453a0 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
453c0 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.
453e0 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
45400 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
45420 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
45440 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))..
45460 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
45480 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
454a0 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
454c0 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
454e0 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..."
45500 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.
45520 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-
45540 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
45560 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
45580 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
455a0 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
455c0 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.(
455e0 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
45600 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
45620 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
45640 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.........
45660 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
45680 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))...........
456a0 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)
456c0 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
456e0 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
45700 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.....................
45720 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......................
45740 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)
45760 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"...........
45780 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)))....
457a0 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
457c0 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
457e0 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
45800 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
45820 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
45840 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
45860 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.((
45880 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)
458a0 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
458c0 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)...
458e0 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
45900 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.
45920 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))...............
45940 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)).......
45960 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).
45980 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:.%
459a0 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
459c0 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
459e0 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'.
45a00 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-
45a20 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
45a40 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
45a60 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)))...
45a80 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
45aa0 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.
45ac0 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
45ae0 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........
45b00 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
45b20 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.
45b40 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.
45b60 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
45b80 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
45ba0 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
45bc0 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.")
45be0 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)...
45c00 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
45c20 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.
45c40 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)...
45c60 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
45c80 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
45ca0 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.(
45cc0 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).
45ce0 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
45d00 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
45d20 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..........
45d40 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-
45d60 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)).....................
45d80 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))
45da0 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.
45dc0 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
45de0 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).
45e00 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.
45e20 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."..
45e40 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
45e60 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
45e80 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.
45ea0 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
45ec0 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
45ee0 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
45f00 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..(
45f20 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)..
45f40 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)).
45f60 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
45f80 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-
45fa0 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
45fc0 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-
45fe0 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
46000 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.
46020 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
46040 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
46060 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
46080 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
460a0 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
460c0 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
460e0 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
46100 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
46120 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
46140 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.
46160 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.
46180 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
461a0 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
461c0 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
461e0 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.
46200 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
46220 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
46240 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-
46260 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
46280 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
462a0 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.(
462c0 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
462e0 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-
46300 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).......
46320 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
46340 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.
46360 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
46380 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)))..
463a0 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
463c0 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
463e0 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
46400 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...............
46420 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
46440 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
46460 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
46480 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.()..
464a0 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
464c0 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
464e0 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
46500 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
46520 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
46540 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.
46560 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
46580 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
465a0 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
465c0 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-
465e0 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.
46600 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
46620 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)..
46640 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
46660 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
46680 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
466a0 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
466c0 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
466e0 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.............................
46700 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
46720 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.
46740 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).........
46760 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))))))..
46780 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)..."
467a0 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
467c0 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
467e0 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
46800 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
46820 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
46840 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).........
46860 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
46880 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.()..
468a0 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)....
468c0 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-
468e0 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
46900 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
46920 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.
46940 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.'(?$.?_))...
46960 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
46980 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)..........;;.
469a0 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
469c0 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-
469e0 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.
46a00 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:/
46a20 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....(
46a40 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)
46a60 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
46a80 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).........
46aa0 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
46ac0 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
46ae0 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.......
46b00 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....
46b20 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
46b40 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
46b60 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.
46b80 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.(
46ba0 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).........(
46bc0 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.
46be0 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)))
46c00 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
46c20 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
46c40 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.....
46c60 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
46c80 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
46ca0 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
46cc0 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-
46ce0 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
46d00 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
46d20 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
46d40 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-
46d60 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
46d80 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
46da0 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
46dc0 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.
46de0 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
46e00 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-
46e20 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..
46e40 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
46e60 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
46e80 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
46ea0 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
46ec0 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.
46ee0 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
46f00 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
46f20 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
46f40 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
46f60 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."#!
46f80 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)).....
46fa0 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.....
46fc0 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........
46fe0 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..........
47000 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)......
47020 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....
47040 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)....
47060 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
47080 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)...........
470a0 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..........
470c0 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
470e0 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.......
47100 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
47120 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
47140 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
47160 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
47180 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.
471a0 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;
471c0 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
471e0 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
47200 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
47220 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-
47240 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.
47260 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
47280 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
472a0 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).......""...
472c0 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
472e0 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
47300 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-
47320 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
47340 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
47360 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
47380 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)."'"))..
473a0 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)....
473c0 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
473e0 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)))
47400 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)))))..(
47420 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.
47440 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
47460 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.
47480 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
474a0 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
474c0 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...
474e0 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.
47500 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
47520 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
47540 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
47560 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
47580 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
475a0 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
475c0 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
475e0 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))..
47600 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
47620 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.
47640 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
47660 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
47680 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
476a0 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
476c0 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
476e0 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.........
47700 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
47720 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...............
47740 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
47760 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.
47780 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.
477a0 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.......
477c0 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...
477e0 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.
47800 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.....
47820 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..............
47840 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............
47860 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.
47880 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
478a0 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.
478c0 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
478e0 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
47900 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).....
47920 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
47940 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
47960 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
47980 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
479a0 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
479c0 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
479e0 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
47a00 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
47a20 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
47a40 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).
47a60 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
47a80 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
47aa0 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-
47ac0 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.
47ae0 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
47b00 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
47b20 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
47b40 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
47b60 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
47b80 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
47ba0 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."
47bc0 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
47be0 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
47c00 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
47c20 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
47c40 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
47c60 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
47c80 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.
47ca0 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.
47cc0 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
47ce0 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
47d00 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
47d20 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..........
47d40 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.................
47d60 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)................
47d80 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........
47da0 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-"
47dc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
47de0 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
47e00 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
47e20 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.
47e40 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
47e60 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
47e80 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.(
47ea0 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))).
47ec0 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
47ee0 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........
47f00 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).'
47f20 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).
47f40 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.
47f60 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'."
47f80 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
47fa0 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
47fc0 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
47fe0 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.....
48000 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)
48020 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
48040 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
48060 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.
48080 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
480a0 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
480c0 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.(
480e0 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)....
48100 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-
48120 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
48140 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
48160 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
48180 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
481a0 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
481c0 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
481e0 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
48200 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
48220 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
48240 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."...
48260 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-
48280 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
482a0 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.
482c0 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
482e0 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.
48300 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
48320 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
48340 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
48360 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
48380 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
483a0 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
483c0 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-
483e0 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).
48400 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)))
48420 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
48440 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.
48460 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
48480 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).....
484a0 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
484c0 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
484e0 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
48500 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
48520 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
48540 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)...
48560 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,.
48580 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
485a0 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
485c0 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
485e0 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
48600 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
48620 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
48640 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
48660 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
48680 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.
486a0 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
486c0 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
486e0 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-
48700 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
48720 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
48740 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,.
48760 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."..
48780 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)...
487a0 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
487c0 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
487e0 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
48800 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
48820 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
48840 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)))....
48860 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
48880 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
488a0 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
488c0 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
488e0 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).
48900 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
48920 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-
48940 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
48960 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*.
48980 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-
489a0 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.....
489c0 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))
489e0 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)
48a00 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
48a20 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
48a40 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
48a60 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)..
48a80 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).......
48aa0 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.....
48ac0 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)
48ae0 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
48b00 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
48b20 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.
48b40 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.
48b60 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..
48b80 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
48ba0 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.......
48bc0 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
48be0 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
48c00 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
48c20 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-
48c40 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
48c60 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-
48c80 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))........(
48ca0 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.
48cc0 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
48ce0 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
48d00 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
48d20 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"
48d40 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
48d60 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))))..
48d80 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
48da0 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
48dc0 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
48de0 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...
48e00 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).
48e20 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
48e40 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.(
48e60 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
48e80 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
48ea0 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))..
48ec0 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.(>.
48ee0 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.((
48f00 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)).........
48f20 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))).....
48f40 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.?_).......
48f60 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)
48f80 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)))..
48fa0 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-
48fc0 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
48fe0 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.(=.
49000 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).?_)...............
49020 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
49040 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")))
49060 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
49080 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
490a0 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
490c0 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
490e0 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
49100 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
49120 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
49140 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.
49160 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.
49180 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
491a0 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
491c0 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
491e0 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
49200 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
49220 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.....
49240 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
49260 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-
49280 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
492a0 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
492c0 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)..
492e0 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
49300 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)).........
49320 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-
49340 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)))...
49360 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
49380 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.
493a0 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
493c0 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...
493e0 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))
49400 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.............((
49420 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)..............
49440 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
49460 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
49480 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
494a0 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)
494c0 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
494e0 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)..............
49500 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)....
49520 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
49540 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
49560 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.
49580 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
495a0 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..................
495c0 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)).....
495e0 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)))).
49600 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
49620 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....
49640 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
49660 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
49680 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
496a0 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
496c0 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?.........
496e0 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.
49700 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....
49720 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
49740 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))...........
49760 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
49780 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..........
497a0 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
497c0 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
497e0 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)............
49800 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)...
49820 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).....
49840 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.?\\))).........
49860 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
49880 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
498a0 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).....................
498c0 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....
498e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
49900 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.?#).............
49920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
49940 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)))).
49960 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
49980 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
499a0 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
499c0 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
499e0 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
49a00 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.'
49a20 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.....
49a40 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
49a60 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
49a80 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
49aa0 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....................;
49ac0 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.
49ae0 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................
49b00 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
49b20 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...........
49b40 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
49b60 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........
49b80 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
49ba0 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..
49bc0 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
49be0 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...
49c00 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-
49c20 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
49c40 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)......................
49c60 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)........
49c80 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
49ca0 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
49cc0 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
49ce0 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
49d00 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.....................
49d20 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)...
49d40 20 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.
49d60 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)))...................
49d80 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)...
49da0 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
49dc0 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
49de0 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
49e00 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)......
49e20 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
49e40 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)).............
49e60 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))....
49e80 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.............
49ea0 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.?\\)...............
49ec0 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))....
49ee0 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)...
49f00 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
49f20 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............
49f40 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
49f60 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
49f80 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
49fa0 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)))...................
49fc0 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
49fe0 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)...............
4a000 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
4a020 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)))...................
4a040 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))........
4a060 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
4a080 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
4a0a0 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
4a0c0 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
4a0e0 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
4a100 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).........
4a120 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.
4a140 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
4a160 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
4a180 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
4a1a0 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
4a1c0 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
4a1e0 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
4a200 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.(
4a220 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
4a240 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.............
4a260 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
4a280 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...........
4a2a0 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.
4a2c0 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))..............
4a2e0 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
4a300 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)))...........
4a320 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
4a340 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)......................
4a360 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
4a380 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
4a3a0 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.
4a3c0 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....................(
4a3e0 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)).........
4a400 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
4a420 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
4a440 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))....
4a460 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-
4a480 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))))............;;
4a4a0 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
4a4c0 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)
4a4e0 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
4a500 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
4a520 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.
4a540 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..............
4a560 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.......
4a580 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).........
4a5a0 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
4a5c0 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
4a5e0 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
4a600 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
4a620 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
4a640 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
4a660 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...........
4a680 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
4a6a0 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.
4a6c0 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
4a6e0 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
4a700 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
4a720 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"
4a740 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).
4a760 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.
4a780 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.
4a7a0 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)))...............(
4a7c0 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))...
4a7e0 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
4a800 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))................
4a820 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
4a840 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)))...........
4a860 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
4a880 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
4a8a0 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))...........
4a8c0 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)..............
4a8e0 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).......
4a900 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))
4a920 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)
4a940 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
4a960 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..........
4a980 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)))).
4a9a0 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
4a9c0 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
4a9e0 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))......
4aa00 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
4aa20 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")....
4aa40 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
4aa60 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.?_))
4aa80 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
4aaa0 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
4aac0 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))))).............
4aae0 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
4ab00 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)))...........
4ab20 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
4ab40 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")......
4ab60 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
4ab80 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-
4aba0 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
4abc0 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)))))........
4abe0 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)..............(
4ac00 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)).......
4ac20 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
4ac40 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")...
4ac60 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.(<=
4ac80 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.?_)).....
4aca0 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.
4acc0 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
4ace0 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...
4ad00 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.(<=.?
4ad20 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.?_)).......
4ad40 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.
4ad60 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.......
4ad80 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
4ada0 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...........
4adc0 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
4ade0 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.............
4ae00 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
4ae20 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
4ae40 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))..
4ae60 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
4ae80 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".....
4aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4aec0 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"))........
4aee0 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)).......
4af00 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)..
4af20 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
4af40 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
4af60 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
4af80 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
4afa0 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
4afc0 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.'(?.
4afe0 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
4b000 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
4b020 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
4b040 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).................
4b060 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)).
4b080 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
4b0a0 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.?_))))...
4b0c0 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
4b0e0 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
4b100 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.(
4b120 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
4b140 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.'(?+.?-))...........
4b160 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)....
4b180 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
4b1a0 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
4b1c0 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)..................(
4b1e0 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
4b200 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))................
4b220 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.....................
4b240 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).......
4b260 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
4b280 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)).......................
4b2a0 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
4b2c0 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
4b2e0 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
4b300 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.(
4b320 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))..
4b340 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
4b360 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
4b380 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).?_))........
4b3a0 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)
4b3c0 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
4b3e0 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
4b400 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")))............
4b420 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))))
4b440 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-
4b460 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))).....
4b480 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
4b4a0 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
4b4c0 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-
4b4e0 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...
4b500 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
4b520 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.(=
4b540 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)))........
4b560 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)).
4b580 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?.....
4b5a0 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.'(?\".?\'
4b5c0 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
4b5e0 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)........
4b600 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.?`))).....
4b620 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...........
4b640 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
4b660 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
4b680 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..............
4b6a0 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...........
4b6c0 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 ................(?\;............
4b6e0 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
4b700 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)).......................
4b720 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 ....(?\[........................
4b740 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)).....
4b760 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 ......................(?\]......
4b780 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
4b7a0 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))...................
4b7c0 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 ........(?{.....................
4b7e0 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))..
4b800 20 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 .........................(?}....
4b820 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.'
4b840 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)).................
4b860 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 ..........(?\(..................
4b880 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)
4b8a0 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 )...........................(?\)
4b8c0 0a 20 20 20 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
4b8e0 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)).............
4b900 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 ..............(?,...............
4b920 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-
4b940 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)).........................
4b960 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 ..(??...........................
4b980 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.??)........
4b9a0 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
4b9c0 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.?=).................
4b9e0 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
4ba00 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...........................
4ba20 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
4ba40 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))..................
4ba60 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.
4ba80 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 ?.).............................
4baa0 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
4bac0 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)......................
4bae0 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
4bb00 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))))...........................
4bb20 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 (?:............................(
4bb40 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.?:)..........
4bb60 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
4bb80 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............................
4bba0 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)))...
4bbc0 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 ........................(?......
4bbe0 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-
4bc00 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.?.)..................
4bc20 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
4bc40 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.?.)...........................
4bc60 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
4bc80 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)..............................
4bca0 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.?\()........
4bcc0 20 20 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
4bce0 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..........................
4bd00 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))))
4bd20 0a 20 20 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 ...........................(?|..
4bd40 20 20 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
4bd60 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.?|)...............
4bd80 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-
4bda0 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.?=)........................
4bdc0 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.......
4bde0 20 20 20 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
4be00 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))..............
4be20 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
4be40 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.?=).........................
4be60 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.......
4be80 20 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.
4bea0 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))))...........
4bec0 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 ................(?^.............
4bee0 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
4bf00 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.?=)..........................
4bf20 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..........
4bf40 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
4bf60 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)))................
4bf80 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 ...........(?&..................
4bfa0 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.?&
4bfc0 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 )...............................
4bfe0 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.?=)........
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 20 20 20 20 6a 73 32 2d ............................js2-
4c020 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......................
4c040 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
4c060 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))............................
4c080 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.?=).......
4c0a0 20 20 20 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
4c0c0 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....................
4c0e0 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
4c100 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)))).......................
4c120 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 ....(?=.........................
4c140 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.?=)......
4c160 20 20 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
4c180 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.?=)...............
4c1a0 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...
4c1c0 20 20 20 20 20 20 20 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 ...............................(
4c1e0 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))..........
4c200 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
4c220 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.?>).....................
4c240 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
4c260 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)....................
4c280 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
4c2a0 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)))).......................
4c2c0 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 ....(?!.........................
4c2e0 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.?=)......
4c300 20 20 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
4c320 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.?=)...............
4c340 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...
4c360 20 20 20 20 20 20 20 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
4c380 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)..........................
4c3a0 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)))...
4c3c0 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 ........................(?<.....
4c3e0 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
4c400 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
4c420 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.......................
4c440 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.?!)..
4c460 20 20 20 20 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
4c480 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.?-)...........
4c4a0 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-
4c4c0 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.?-)..................
4c4e0 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).
4c500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c520 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.(
4c540 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)......
4c560 20 20 20 20 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
4c580 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))).......
4c5a0 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
4c5c0 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))........................
4c5e0 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.?<).....
4c600 20 20 20 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.(
4c620 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.?=)..............
4c640 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
4c660 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............................
4c680 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)..................
4c6a0 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.
4c6c0 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 ?=).............................
4c6e0 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.....................
4c700 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
4c720 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 ))))...........................(
4c740 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
4c760 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.?>)...........
4c780 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
4c7a0 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.?>)....................
4c7c0 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
4c7e0 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.?=).........................
4c800 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..
4c820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c840 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)...................
4c860 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
4c880 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.?=)..........................
4c8a0 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......
4c8c0 20 20 20 20 20 20 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
4c8e0 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)).........................
4c900 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.?=)....
4c920 20 20 20 20 20 20 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
4c940 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............................
4c960 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))))...
4c980 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 ........................(?*.....
4c9a0 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-
4c9c0 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.?=)..................
4c9e0 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....
4ca00 20 20 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
4ca20 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.?*)...............
4ca40 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
4ca60 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.?=)......................
4ca80 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
4caa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cac0 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)..................
4cae0 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
4cb00 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))))........................
4cb20 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 ...(?/..........................
4cb40 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?........
4cb60 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
4cb80 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.?/)...................
4cba0 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.
4cbc0 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)).....
4cbe0 20 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
4cc00 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)........................
4cc20 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
4cc40 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)...............
4cc60 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
4cc80 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
4cca0 0a 20 20 20 20 20 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 ..............................;;
4ccc0 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.
4cce0 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..................
4cd00 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
4cd20 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.............
4cd40 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-
4cd60 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.........................
4cd80 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
4cda0 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))).........................
4cdc0 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)
4cde0 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 )............................;;.
4ce00 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?.............
4ce20 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-
4ce40 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.?*)........................
4ce60 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..
4ce80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cea0 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
4cec0 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).....................
4cee0 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
4cf00 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)...................
4cf20 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-
4cf40 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.?*)........................
4cf60 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..........
4cf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cfa0 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).........
4cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cfe0 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)........................
4d000 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))..........
4d020 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....
4d040 20 20 20 20 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
4d060 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)).............
4d080 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........
4d0a0 20 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.
4d0c0 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)...................
4d0e0 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-
4d100 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))..
4d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4d140 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
4d160 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")...................
4d180 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
4d1a0 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)).....................
4d1c0 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.?*)..........
4d1e0 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
4d200 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))................
4d220 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.?/).....
4d240 20 20 20 20 20 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
4d260 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.................
4d280 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
4d2a0 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)))........
4d2c0 20 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.....
4d2e0 20 20 20 20 20 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
4d300 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...........
4d320 20 20 20 20 20 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
4d340 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
4d360 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 )))))...........................
4d380 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.?=)........
4d3a0 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
4d3c0 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..........................
4d3e0 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)))...
4d400 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 ........................(?#.....
4d420 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
4d440 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...
4d460 20 20 20 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-
4d480 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)......................
4d4a0 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
4d4c0 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......
4d4e0 20 20 20 20 20 20 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
4d500 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
4d520 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)..............................
4d540 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))....
4d560 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.'
4d580 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))..............
4d5a0 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 .............(?%................
4d5c0 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.
4d5e0 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 ?=).............................
4d600 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...............
4d620 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
4d640 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)))........................
4d660 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 ...(?~..........................
4d680 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))...
4d6a0 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 ........................(?+.....
4d6c0 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-
4d6e0 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.?=)..................
4d700 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....
4d720 20 20 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
4d740 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.?+)...............
4d760 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......
4d780 20 20 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
4d7a0 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))))............
4d7c0 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 ...............(?-..............
4d7e0 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.............
4d800 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
4d820 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 .?=)............................
4d840 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))......
4d860 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
4d880 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.?-).....................
4d8a0 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
4d8c0 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..............................
4d8e0 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
4d900 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...........
4d920 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
4d940 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...
4d960 20 20 20 20 20 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
4d980 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.?>)..........
4d9a0 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
4d9c0 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).........................
4d9e0 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
4da00 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
4da20 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)..............................
4da40 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))
4da60 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 )..............................(
4da80 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))................
4daa0 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.................
4dac0 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))).
4dae0 20 20 20 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
4db00 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)...........
4db20 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).............
4db40 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........
4db60 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-
4db80 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
4dba0 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
4dbc0 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
4dbe0 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
4dc00 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
4dc20 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
4dc40 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.
4dc60 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
4dc80 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
4dca0 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
4dcc0 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.
4dce0 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
4dd00 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-
4dd20 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-
4dd40 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
4dd60 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
4dd80 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..
4dda0 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)..
4ddc0 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).....
4dde0 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
4de00 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")........
4de20 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))........
4de40 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
4de60 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-
4de80 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
4dea0 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
4dec0 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
4dee0 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.?\\).
4df00 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
4df20 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.
4df40 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
4df60 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
4df80 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
4dfa0 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
4dfc0 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
4dfe0 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
4e000 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
4e020 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......
4e040 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
4e060 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
4e080 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.............
4e0a0 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...................
4e0c0 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.....................
4e0e0 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.
4e100 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........................
4e120 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.?\\).......
4e140 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
4e160 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).......................
4e180 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)...............
4e1a0 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.
4e1c0 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)))................
4e1e0 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)
4e200 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.......
4e220 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.
4e240 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..................
4e260 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
4e280 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"....................
4e2a0 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
4e2c0 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))...............
4e2e0 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
4e300 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..................
4e320 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
4e340 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
4e360 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
4e380 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
4e3a0 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).................
4e3c0 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)............
4e3e0 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)............
4e400 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)..
4e420 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
4e440 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-
4e460 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
4e480 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).............
4e4a0 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)
4e4c0 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
4e4e0 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))..................;;.
4e500 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
4e520 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......
4e540 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-
4e560 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
4e580 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.
4e5a0 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.
4e5c0 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
4e5e0 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...
4e600 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
4e620 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-
4e640 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
4e660 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.
4e680 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
4e6a0 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)...................
4e6c0 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
4e6e0 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).............
4e700 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)).
4e720 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.....
4e740 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
4e760 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
4e780 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
4e7a0 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
4e7c0 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)............
4e7e0 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................
4e800 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)..
4e820 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
4e840 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)....................
4e860 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))......
4e880 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
4e8a0 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
4e8c0 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..
4e8e0 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
4e900 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..
4e920 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
4e940 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.(
4e960 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
4e980 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))............
4e9a0 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.
4e9c0 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)).............
4e9e0 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).........
4ea00 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))
4ea20 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.(<=
4ea40 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))................
4ea60 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)
4ea80 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.
4eaa0 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)).................
4eac0 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).........
4eae0 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)..
4eb00 20 20 20 20 20 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 .............................(<.
4eb20 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))......................
4eb40 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
4eb60 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......................;;.
4eb80 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....
4eba0 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.(-.(
4ebc0 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)..............
4ebe0 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)))
4ec00 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
4ec20 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
4ec40 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
4ec60 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.?$))............
4ec80 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
4eca0 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
4ecc0 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
4ece0 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-
4ed00 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
4ed20 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
4ed40 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
4ed60 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
4ed80 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.?
4eda0 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
4edc0 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_
4ede0 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
4ee00 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
4ee20 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.
4ee40 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.(
4ee60 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
4ee80 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...
4eea0 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)
4eec0 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
4eee0 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
4ef00 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
4ef20 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).
4ef40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4ef60 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.
4ef80 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
4efa0 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
4efc0 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
4efe0 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-
4f000 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
4f020 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
4f040 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
4f060 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)...............
4f080 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)
4f0a0 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
4f0c0 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.(=.
4f0e0 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_
4f100 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-
4f120 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)...
4f140 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...............
4f160 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
4f180 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
4f1a0 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
4f1c0 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")).......
4f1e0 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.?\\).
4f200 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
4f220 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
4f240 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.?\[)....
4f260 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)).....
4f280 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
4f2a0 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
4f2c0 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
4f2e0 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
4f300 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-
4f320 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)
4f340 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..................
4f360 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.(
4f380 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."\"/"))).......
4f3a0 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...
4f3c0 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).....
4f3e0 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))..........
4f400 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)...........(
4f420 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
4f440 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
4f460 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
4f480 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)
4f4a0 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).
4f4c0 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))......
4f4e0 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)...
4f500 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
4f520 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
4f540 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
4f560 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
4f580 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)).........
4f5a0 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..
4f5c0 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)))).
4f5e0 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
4f600 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
4f620 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
4f640 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f660 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
4f680 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))...
4f6a0 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)))..
4f6c0 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.(
4f6e0 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
4f700 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
4f720 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
4f740 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
4f760 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))
4f780 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.
4f7a0 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
4f7c0 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
4f7e0 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
4f800 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
4f820 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-
4f840 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)
4f860 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
4f880 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
4f8a0 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..
4f8c0 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))
4f8e0 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
4f900 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....
4f920 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...............
4f940 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)).........
4f960 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
4f980 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).................(
4f9a0 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)).......
4f9c0 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
4f9e0 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..
4fa00 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 .................(?>............
4fa20 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)...
4fa40 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
4fa60 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............
4fa80 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
4faa0 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))...................(?
4fac0 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
4fae0 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
4fb00 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)).....
4fb20 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
4fb40 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
4fb60 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).............
4fb80 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
4fba0 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)...................
4fbc0 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
4fbe0 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)))...................(?{.
4fc00 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
4fc20 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-
4fc40 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).......
4fc60 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-
4fc80 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))...................((?\'.?\
4fca0 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
4fcc0 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)....................(
4fce0 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
4fd00 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
4fd20 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)))........
4fd40 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 ...........(?=..................
4fd60 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).........
4fd80 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
4fda0 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))...................(
4fdc0 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).................
4fde0 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)).......
4fe00 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..................
4fe20 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).........
4fe40 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
4fe60 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))).................
4fe80 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
4fea0 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)......................
4fec0 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
4fee0 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
4ff00 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)..
4ff20 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.
4ff40 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.
4ff60 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.
4ff80 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
4ffa0 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...................(?<........
4ffc0 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
4ffe0 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
50000 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))...................
50020 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.....................
50040 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
50060 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.!....
50080 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
500a0 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).......................(
500c0 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)).........
500e0 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........
50100 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 .................(?-............
50120 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
50140 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.-.................
50160 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)..
50180 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.
501a0 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.?-)...........................
501c0 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.......................
501e0 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)..
50200 20 20 20 20 20 20 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
50220 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
50240 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)..............................
50260 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))).
50280 20 20 20 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-
502a0 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).......
502c0 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
502e0 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)))................
50300 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 .........(?\[...................
50320 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)).;
50340 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.[........................
50360 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).........
50380 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
503a0 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).................
503c0 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
503e0 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).........................
50400 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).
50420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
50440 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).........
50460 20 20 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
50480 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).................
504a0 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
504c0 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).?\[)).......................
504e0 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...................
50500 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.
50520 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).............................
50540 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).......
50560 20 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
50580 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).................
505a0 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
505c0 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)...........................
505e0 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).....
50600 20 20 20 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-
50620 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.?\[)..............
50640 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
50660 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)................
50680 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
506a0 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)))...................
506c0 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
506e0 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).........................
50700 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)))..
50720 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.......
50740 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-
50760 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)..............
50780 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
507a0 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))))......................
507c0 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.
507e0 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
50800 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.]
50820 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.
50840 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
50860 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
50880 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))).........
508a0 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 .............(??................
508c0 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)).;
508e0 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.?.......................(
50900 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)............
50920 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.
50940 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).........................(
50960 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)))......
50980 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 ................(?/.............
509a0 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............
509c0 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
509e0 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./....................
50a00 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)........
50a20 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-
50a40 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).........
50a60 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
50a80 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)..................
50aa0 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)
50ac0 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
50ae0 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)......
50b00 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
50b20 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))..........
50b40 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..................
50b60 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...............
50b80 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-
50ba0 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)......................
50bc0 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
50be0 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))))...................(?{..
50c00 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
50c20 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
50c40 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)........
50c60 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
50c80 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.......
50ca0 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.
50cc0 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
50ce0 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
50d00 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
50d20 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-
50d40 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
50d60 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.......
50d80 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
50da0 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
50dc0 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
50de0 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
50e00 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
50e20 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
50e40 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
50e60 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)
50e80 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)))....
50ea0 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.(/=
50ec0 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.
50ee0 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-
50f00 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.(
50f20 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))
50f40 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
50f60 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
50f80 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
50fa0 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).?>).................
50fc0 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
50fe0 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.>......
51000 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.
51020 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
51040 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
51060 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.
51080 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
510a0 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
510c0 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
510e0 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)))..
51100 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.(
51120 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
51140 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
51160 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
51180 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).
511a0 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
511c0 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
511e0 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.
51200 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).?>).............
51220 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
51240 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.>..
51260 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
51280 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.
512a0 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
512c0 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
512e0 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
51300 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)......
51320 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.
51340 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)...
51360 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.....
51380 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.
513a0 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-
513c0 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
513e0 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
51400 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))...........(?>.
51420 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)..
51440 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).
51460 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)
51480 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
514a0 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
514c0 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
514e0 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
51500 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.......(
51520 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.(
51540 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
51560 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
51580 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).?
515a0 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
515c0 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-
515e0 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
51600 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
51620 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)))
51640 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
51660 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.
51680 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
516a0 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
516c0 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
516e0 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
51700 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.
51720 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)...........
51740 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).......
51760 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))..
51780 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
517a0 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
517c0 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
517e0 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))
51800 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
51820 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
51840 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...
51860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51880 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.................
518a0 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
518c0 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...........................
518e0 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
51900 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...........................
51920 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
51940 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
51960 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..
51980 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
519a0 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)........
519c0 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
519e0 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
51a00 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
51a20 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
51a40 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?
51a60 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
51a80 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
51aa0 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"."_
51ac0 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)......
51ae0 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
51b00 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
51b20 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
51b40 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
51b60 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...."^"
51b80 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
51ba0 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
51bc0 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
51be0 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
51c00 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
51c20 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
51c40 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
51c60 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.")..
51c80 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.
51ca0 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-
51cc0 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
51ce0 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
51d00 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".................
51d20 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).
51d40 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.
51d60 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.
51d80 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
51da0 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
51dc0 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\\)
51de0 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
51e00 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
51e20 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.").
51e40 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..
51e60 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
51e80 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"
51ea0 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"
51ec0 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).........
51ee0 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
51f00 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
51f20 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.")..
51f40 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...
51f60 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
51f80 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
51fa0 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"."
51fc0 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".
51fe0 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
52000 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).......
52020 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.
52040 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
52060 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
52080 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
520a0 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...."^"...
520c0 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
520e0 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.
52100 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
52120 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"...
52140 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".
52160 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
52180 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..
521a0 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
521c0 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
521e0 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
52200 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
52220 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
52240 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
52260 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
52280 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"
522a0 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"......."
522c0 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"
522e0 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"...
52300 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
52320 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".......
52340 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
52360 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
52380 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"
523a0 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
523c0 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.
523e0 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
52400 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
52420 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
52440 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"......."
52460 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".
52480 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"....
524a0 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
524c0 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
524e0 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
52500 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"....
52520 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
52540 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
52560 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
52580 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
525a0 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"
525c0 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"."
525e0 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
52600 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
52620 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
52640 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
52660 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
52680 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".......;
526a0 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
526c0 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
526e0 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.
52700 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+.......
52720 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__"."_
52740 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
52760 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__"."__
52780 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
527a0 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"."
527c0 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
527e0 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
52800 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
52820 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
52840 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
52860 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
52880 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
528a0 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...............
528c0 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
528e0 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)...........................(
52900 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)))....
52920 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
52940 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
52960 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))
52980 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
529a0 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..
529c0 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
529e0 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.
52a00 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
52a20 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...
52a40 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.(
52a60 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
52a80 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))................
52aa0 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)..
52ac0 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-
52ae0 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)......................
52b00 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
52b20 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").......
52b40 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
52b60 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
52b80 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
52ba0 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))..........
52bc0 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
52be0 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")......................
52c00 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
52c20 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)..............
52c40 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
52c60 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
52c80 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
52ca0 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
52cc0 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).......................
52ce0 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))).....
52d00 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................
52d20 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).............
52d40 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
52d60 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")....
52d80 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
52da0 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
52dc0 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-
52de0 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))............
52e00 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
52e20 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
52e40 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
52e60 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)........................
52e80 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))))....
52ea0 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..............
52ec0 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
52ee0 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)..........
52f00 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-
52f20 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
52f40 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
52f60 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
52f80 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))......
52fa0 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
52fc0 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
52fe0 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.........................
53000 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
53020 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.
53040 20 20 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
53060 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))...........
53080 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))))
530a0 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-
530c0 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
530e0 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
53100 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
53120 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
53140 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.
53160 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
53180 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..
531a0 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
531c0 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
531e0 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
53200 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
53220 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
53240 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
53260 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
53280 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
532a0 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....
532c0 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
532e0 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
53300 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).................
53320 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)
53340 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...........(
53360 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)....
53380 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
533a0 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
533c0 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))))..
533e0 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.
53400 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-
53420 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)...........
53440 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
53460 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...........
53480 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
534a0 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
534c0 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
534e0 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
53500 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))
53520 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!...............
53540 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
53560 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
53580 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
535a0 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
535c0 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
535e0 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
53600 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).
53620 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
53640 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)..............
53660 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
53680 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-
536a0 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
536c0 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
536e0 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.
53700 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
53720 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)
53740 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
53760 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
53780 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[
537a0 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-
537c0 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-
537e0 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
53800 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).
53820 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
53840 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
53860 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...
53880 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
538a0 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
538c0 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.
538e0 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..
53900 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
53920 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
53940 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
53960 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
53980 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
539a0 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
539c0 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
539e0 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
53a00 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..............................
53a20 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))).......
53a40 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
53a60 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
53a80 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.....
53aa0 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))))..;;.
53ac0 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
53ae0 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.
53b00 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
53b20 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
53b40 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
53b60 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
53b80 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.
53ba0 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-*\\(@"...........
53bc0 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
53be0 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
53c00 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"))..........."\\)"..........."
53c20 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
53c40 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-*\\[
53c60 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:]_$\.]+\\)?\\]?"..;
53c80 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
53ca0 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
53cc0 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
53ce0 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
53d00 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-*\\(@
53d20 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....
53d40 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
53d60 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"....
53d80 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
53da0 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"...
53dc0 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".............."
53de0 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".
53e00 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"..........
53e20 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
53e40 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"...........
53e60 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"
53e80 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-*\\({[^}
53ea0 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.
53ec0 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
53ee0 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
53f00 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-*\\(@\\(?:"..
53f20 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............
53f40 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
53f60 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"........
53f80 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
53fa0 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".........
53fc0 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
53fe0 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"......
54000 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".............
54020 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".
54040 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"...........
54060 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
54080 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".......
540a0 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
540c0 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".....
540e0 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".............
54100 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"...
54120 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"))..........
54140 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]+\\)")..
54160 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
54180 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
541a0 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."
541c0 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-*\\(@\\(?:".......
541e0 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
54200 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"....
54220 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"..............
54240 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"....
54260 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"............
54280 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
542a0 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
542c0 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".........
542e0 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"..............
54300 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"..
54320 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"..............
54340 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
54360 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".......
54380 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
543a0 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".....
543c0 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".............."
543e0 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
54400 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"....
54420 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"...........
54440 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
54460 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".......
54480 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".............."
544a0 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
544c0 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".......
544e0 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".............."
54500 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
54520 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"....
54540 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"..............
54560 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
54580 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"........
545a0 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-*"
545c0 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.")
545e0 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
54600 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\\
54620 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]+\\)\\(#.+\\)
54640 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
54660 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-
54680 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-
546a0 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]+\\)\\
546c0 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
546e0 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
54700 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..."\\(</?\\)\\([[:
54720 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
54740 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).
54760 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
54780 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.().
547a0 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
547c0 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
547e0 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
54800 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).....
54820 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...........
54840 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)
54860 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).?{
54880 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+.(
548a0 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)).............
548c0 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))..
548e0 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
54900 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
54920 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)...............
54940 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)...........
54960 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))).
54980 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).......
549a0 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
549c0 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
549e0 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
54a00 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
54a20 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
54a40 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.
54a60 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))....
54a80 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
54aa0 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).
54ac0 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
54ae0 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)........
54b00 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
54b20 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....
54b40 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.
54b60 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
54b80 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))..........
54ba0 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
54bc0 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
54be0 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
54c00 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
54c20 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-
54c40 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..........................
54c60 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.
54c80 20 20 20 20 20 20 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
54ca0 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..........
54cc0 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
54ce0 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..................
54d00 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
54d20 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...........................
54d40 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))
54d60 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)..
54d80 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
54da0 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)................
54dc0 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))).
54de0 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
54e00 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
54e20 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.
54e40 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
54e60 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).............
54e80 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
54ea0 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).............................
54ec0 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)...................
54ee0 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
54f00 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-
54f20 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)........
54f40 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.
54f60 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).............................'
54f80 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)........
54fa0 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
54fc0 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)........................
54fe0 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)..............
55000 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
55020 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
55040 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
55060 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
55080 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
550a0 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)....
550c0 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
550e0 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.
55100 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).
55120 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.
55140 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
55160 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().{...}........
55180 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).........
551a0 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.
551c0 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().{...}......
551e0 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
55200 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
55220 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))
55240 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
55260 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
55280 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
552a0 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
552c0 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
552e0 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))......
55300 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
55320 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..................
55340 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
55360 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
55380 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
553a0 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
553c0 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
553e0 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
55400 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
55420 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.........
55440 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.................
55460 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)))
55480 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
554a0 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
554c0 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.
554e0 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
55500 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
55520 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.
55540 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
55560 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
55580 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
555a0 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
555c0 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
555e0 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
55600 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.
55620 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
55640 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
55660 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
55680 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
556a0 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
556c0 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
556e0 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-*-
55700 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.`
55720 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.
55740 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
55760 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
55780 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
557a0 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
557c0 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.
557e0 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
55800 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
55820 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
55840 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.
55860 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
55880 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
558a0 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...
558c0 20 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
558e0 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
55900 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)...................(
55920 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
55940 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).................
55960 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
55980 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)................
559a0 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
559c0 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)
559e0 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
55a00 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).................
55a20 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
55a40 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)))........
55a60 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
55a80 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
55aa0 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
55ac0 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
55ae0 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
55b00 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.
55b20 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)........
55b40 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
55b60 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).....................(
55b80 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
55ba0 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
55bc0 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))
55be0 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."
55c00 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
55c20 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)...................
55c40 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
55c60 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
55c80 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.
55ca0 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
55cc0 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
55ce0 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
55d00 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
55d20 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.
55d40 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.
55d60 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
55d80 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
55da0 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.
55dc0 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
55de0 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
55e00 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
55e20 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.
55e40 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
55e60 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
55e80 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
55ea0 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
55ec0 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))..........
55ee0 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))....
55f00 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-
55f20 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
55f40 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
55f60 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........
55f80 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.
55fa0 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
55fc0 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
55fe0 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
56000 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.(
56020 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
56040 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))))...........
56060 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
56080 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
560a0 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
560c0 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
560e0 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
56100 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))
56120 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
56140 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)..
56160 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
56180 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
561a0 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.
561c0 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
561e0 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
56200 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
56220 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."
56240 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.....
56260 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).......(
56280 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
562a0 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.
562c0 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)
562e0 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
56300 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
56320 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.(=)............
56340 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-
56360 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))......................
56380 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).;;.
563a0 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.(...)......................
563c0 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
563e0 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
56400 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.
56420 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
56440 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)................
56460 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)))))...
56480 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)....
564a0 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
564c0 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
564e0 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......................
56500 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).
56520 20 20 20 20 20 20 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 ..............................(=
56540 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
56560 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))).........................
56580 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
565a0 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.........................
565c0 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))....
565e0 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-
56600 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)...............
56620 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
56640 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)))........
56660 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.
56680 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},...
566a0 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
566c0 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
566e0 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
56700 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
56720 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
56740 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))........
56760 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
56780 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)...................
567a0 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
567c0 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)))........
567e0 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
56800 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..................
56820 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
56840 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
56860 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
56880 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............................(
568a0 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
568c0 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).....................
568e0 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-
56900 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.
56920 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
56940 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....................
56960 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.
56980 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)...................
569a0 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
569c0 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
569e0 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
56a00 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
56a20 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))..
56a40 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
56a60 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
56a80 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
56aa0 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
56ac0 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
56ae0 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
56b00 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.
56b20 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
56b40 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
56b60 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
56b80 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
56ba0 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
56bc0 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
56be0 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).....(
56c00 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
56c20 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
56c40 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
56c60 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?...
56c80 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
56ca0 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
56cc0 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
56ce0 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.
56d00 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
56d20 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.......(
56d40 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)........
56d60 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-
56d80 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
56da0 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
56dc0 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
56de0 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
56e00 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
56e20 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
56e40 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.
56e60 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
56e80 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
56ea0 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))...........
56ec0 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.
56ee0 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
56f00 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))..........
56f20 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......
56f40 20 20 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
56f60 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..............................
56f80 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
56fa0 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...........................
56fc0 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
56fe0 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))...............
57000 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.=.'(
57020 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 )...............................
57040 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............................
57060 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....
57080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
570a0 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
570c0 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....................
570e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
57100 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).
57120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
57140 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)))......
57160 20 20 20 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
57180 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
571a0 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)))..
571c0 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
571e0 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.
57200 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
57220 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
57240 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.
57260 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
57280 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
572a0 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
572c0 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.......
572e0 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
57300 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)............................
57320 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).........
57340 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.
57360 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.....................
57380 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
573a0 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)............
573c0 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
573e0 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)......................
57400 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
57420 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
57440 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.(
57460 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)........
57480 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....
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 28 6a 73 32 2d 6e 6f 64 ........................(js2-nod
574c0 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)))).........
574e0 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...
57500 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
57520 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)......................
57540 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
57560 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
57580 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
575a0 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
575c0 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
575e0 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
57600 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-
57620 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
57640 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)............
57660 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))....
57680 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
576a0 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)
576c0 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-
576e0 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
57700 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-
57720 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.
57740 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
57760 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
57780 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
577a0 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
577c0 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))).....(
577e0 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).
57800 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
57820 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
57840 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".
57860 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
57880 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)))...
578a0 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
578c0 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
578e0 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)))..
57900 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
57920 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
57940 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
57960 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.
57980 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
579a0 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))........
579c0 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
579e0 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
57a00 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).......................
57a20 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
57a40 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)))
57a60 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
57a80 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
57aa0 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......
57ac0 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
57ae0 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
57b00 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.......
57b20 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
57b40 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.
57b60 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
57b80 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?...............(
57ba0 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)))....
57bc0 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.
57be0 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
57c00 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
57c20 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
57c40 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
57c60 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
57c80 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
57ca0 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
57cc0 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))).............(
57ce0 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
57d00 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).............
57d20 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)....
57d40 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
57d60 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
57d80 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).....
57da0 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
57dc0 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-
57de0 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)))).............
57e00 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
57e20 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
57e40 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,.
57e60 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........
57e80 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..
57ea0 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....
57ec0 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
57ee0 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
57f00 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
57f20 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)............
57f40 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).
57f60 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.(
57f80 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)))))...........
57fa0 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,.
57fc0 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..
57fe0 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.....
58000 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....
58020 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))..
58040 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
58060 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...........
58080 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)
580a0 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.
580c0 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
580e0 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)).....................
58100 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))).........
58120 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
58140 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
58160 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
58180 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)
581a0 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
581c0 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)...........
581e0 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
58200 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))...
58220 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
58240 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
58260 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
58280 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-
582a0 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).
582c0 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
582e0 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)
58300 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
58320 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
58340 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....................
58360 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))................(
58380 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
583a0 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...........
583c0 20 20 20 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-
583e0 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.........
58400 20 20 20 20 20 20 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
58420 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)
58440 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
58460 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))....................
58480 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)))))......
584a0 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..........
584c0 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))...........
584e0 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
58500 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
58520 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.().
58540 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
58560 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
58580 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
585a0 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
585c0 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,
585e0 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
58600 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.
58620 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
58640 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
58660 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
58680 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
586a0 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
586c0 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.
586e0 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.
58700 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.".
58720 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.:
58740 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-
58760 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.....
58780 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
587a0 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
587c0 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
587e0 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)))....
58800 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............
58820 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
58840 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
58860 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.
58880 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
588a0 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
588c0 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
588e0 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
58900 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
58920 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
58940 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
58960 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
58980 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
589a0 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.
589c0 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))
589e0 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))....
58a00 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
58a20 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.
58a40 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...........(
58a60 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
58a80 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)).
58aa0 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-
58ac0 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-
58ae0 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
58b00 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........
58b20 20 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
58b40 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
58b60 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
58b80 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
58ba0 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
58bc0 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)).
58be0 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
58c00 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))).............
58c20 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
58c40 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
58c60 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)).....
58c80 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
58ca0 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
58cc0 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
58ce0 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.............
58d00 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
58d20 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
58d40 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
58d60 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
58d80 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)))..
58da0 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
58dc0 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
58de0 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
58e00 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
58e20 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
58e40 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
58e60 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...
58e80 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
58ea0 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
58ec0 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).
58ee0 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
58f00 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
58f20 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))
58f40 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
58f60 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
58f80 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
58fa0 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
58fc0 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
58fe0 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
59000 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
59020 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
59040 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.(
59060 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
59080 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))..................
590a0 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.............
590c0 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-
590e0 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))..................
59100 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."/\\*.
59120 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."\\(?:.\\|$\\)"))))..
59140 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
59160 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.........
59180 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)........
591a0 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
591c0 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
591e0 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)..
59200 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.
59220 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
59240 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
59260 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
59280 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))).....
592a0 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
592c0 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
592e0 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
59300 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
59320 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
59340 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))
59360 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
59380 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
593a0 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
593c0 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
593e0 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
59400 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
59420 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
59440 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"
59460 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........
59480 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
594a0 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..
594c0 20 20 20 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
594e0 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....
59500 20 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
59520 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....
59540 20 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
59560 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
59580 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.......
595a0 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
595c0 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..........
595e0 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
59600 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......
59620 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
59640 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....
59660 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
59680 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..........
596a0 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)))...
596c0 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
596e0 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
59700 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......
59720 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.
59740 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.
59760 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
59780 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
597a0 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
597c0 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...
597e0 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
59800 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)))
59820 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
59840 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.........................'(
59860 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
59880 0a 20 20 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
598a0 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..
598c0 20 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)
598e0 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
59900 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.........................
59920 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
59940 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......................
59960 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
59980 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
599a0 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
599c0 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)..............
599e0 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....
59a00 20 20 20 20 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-
59a20 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)))...
59a40 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
59a60 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")))).
59a80 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
59aa0 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
59ac0 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
59ae0 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
59b00 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
59b20 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
59b40 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.
59b60 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.
59b80 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.
59ba0 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
59bc0 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
59be0 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
59c00 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..
59c20 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
59c40 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
59c60 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
59c80 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
59ca0 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
59cc0 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;
59ce0 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
59d00 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
59d20 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.;;..
59d40 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
59d60 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.;;
59d80 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
59da0 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.
59dc0 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
59de0 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.
59e00 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.
59e20 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
59e40 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
59e60 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
59e80 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
59ea0 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()}
59ec0 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.
59ee0 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
59f00 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
59f20 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().
59f40 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
59f60 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
59f80 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
59fa0 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
59fc0 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.
59fe0 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
5a000 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
5a020 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
5a040 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
5a060 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.
5a080 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
5a0a0 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
5a0c0 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:.;;..
5a0e0 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
5a100 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
5a120 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
5a140 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
5a160 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
5a180 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/
5a1a0 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
5a1c0 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.
5a1e0 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[
5a200 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
5a220 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
5a240 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
5a260 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
5a280 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
5a2a0 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.
5a2c0 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
5a2e0 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
5a300 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
5a320 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..
5a340 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.
5a360 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
5a380 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
5a3a0 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()
5a3c0 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.
5a3e0 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().{...}.//.
5a400 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.
5a420 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
5a440 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
5a460 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
5a480 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.
5a4a0 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
5a4c0 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
5a4e0 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
5a500 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.
5a520 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:..
5a540 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).;;.
5a560 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.
5a580 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).;
5a5a0 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
5a5c0 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
5a5e0 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
5a600 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
5a620 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.
5a640 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
5a660 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>..
5a680 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).;
5a6a0 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))))..;;
5a6c0 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
5a6e0 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.
5a700 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
5a720 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
5a740 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
5a760 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
5a780 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..
5a7a0 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
5a7c0 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
5a7e0 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
5a800 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.
5a820 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
5a840 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
5a860 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/
5a880 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....(
5a8a0 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-
5a8c0 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
5a8e0 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
5a900 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
5a920 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)..........
5a940 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
5a960 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
5a980 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
5a9a0 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)
5a9c0 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
5a9e0 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"
5aa00 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
5aa20 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
5aa40 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
5aa60 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
5aa80 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-
5aaa0 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
5aac0 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.........(
5aae0 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).
5ab00 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
5ab20 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-
5ab40 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
5ab60 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
5ab80 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).........
5aba0 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
5abc0 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
5abe0 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
5ac00 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
5ac20 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
5ac40 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
5ac60 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
5ac80 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.
5aca0 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
5acc0 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.
5ace0 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
5ad00 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
5ad20 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)))
5ad40 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
5ad60 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.
5ad80 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
5ada0 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.
5adc0 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
5ade0 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-
5ae00 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)..
5ae20 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
5ae40 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
5ae60 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
5ae80 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
5aea0 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
5aec0 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
5aee0 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-
5af00 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
5af20 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))...........
5af40 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...
5af60 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
5af80 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..
5afa0 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)...........
5afc0 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
5afe0 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
5b000 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
5b020 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)))
5b040 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,.
5b060 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
5b080 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
5b0a0 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
5b0c0 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
5b0e0 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..........(
5b100 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
5b120 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
5b140 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
5b160 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
5b180 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
5b1a0 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().{...}.}}..........(
5b1c0 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)........
5b1e0 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
5b200 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....
5b220 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.
5b240 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....
5b260 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.
5b280 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
5b2a0 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-
5b2c0 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
5b2e0 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
5b300 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)
5b320 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,.
5b340 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.
5b360 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
5b380 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
5b3a0 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.
5b3c0 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
5b3e0 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
5b400 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
5b420 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-
5b440 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
5b460 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))....
5b480 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.
5b4a0 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
5b4c0 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
5b4e0 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
5b500 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
5b520 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
5b540 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
5b560 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
5b580 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
5b5a0 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
5b5c0 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
5b5e0 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
5b600 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.
5b620 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
5b640 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
5b660 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)).......(
5b680 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)
5b6a0 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
5b6c0 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).;.[
5b6e0 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
5b700 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]+$".................
5b720 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
5b740 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.
5b760 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
5b780 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
5b7a0 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
5b7c0 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.(
5b7e0 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
5b800 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
5b820 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
5b840 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
5b860 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
5b880 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
5b8a0 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
5b8c0 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.=.{...},.
5b8e0 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-
5b900 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
5b920 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
5b940 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
5b960 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
5b980 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
5b9a0 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'."..
5b9c0 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
5b9e0 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.
5ba00 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'.....
5ba20 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)....
5ba40 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
5ba60 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
5ba80 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
5baa0 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................
5bac0 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)))).
5bae0 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
5bb00 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().{...}............(
5bb20 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
5bb40 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))).....
5bb60 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
5bb80 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
5bba0 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
5bbc0 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,..........
5bbe0 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.
5bc00 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
5bc20 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
5bc40 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.
5bc60 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
5bc80 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
5bca0 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
5bcc0 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
5bce0 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
5bd00 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
5bd20 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
5bd40 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.........
5bd60 20 20 20 20 20 20 20 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 ...............................(
5bd80 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
5bda0 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)))....................
5bdc0 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-
5bde0 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
5be00 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
5be20 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.
5be40 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..
5be60 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
5be80 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
5bea0 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
5bec0 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
5bee0 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*.
5bf00 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)
5bf20 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
5bf40 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)).....
5bf60 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..
5bf80 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
5bfa0 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
5bfc0 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
5bfe0 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
5c000 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
5c020 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))....
5c040 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
5c060 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.
5c080 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
5c0a0 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
5c0c0 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'."...(
5c0e0 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
5c100 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()
5c120 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
5c140 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.(
5c160 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)))..
5c180 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
5c1a0 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(){...}
5c1c0 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
5c1e0 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
5c200 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
5c220 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);......
5c240 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
5c260 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
5c280 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
5c2a0 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)).....
5c2c0 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".
5c2e0 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
5c300 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
5c320 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
5c340 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
5c360 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
5c380 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
5c3a0 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
5c3c0 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
5c3e0 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
5c400 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.
5c420 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
5c440 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
5c460 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)...
5c480 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.
5c4a0 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....
5c4c0 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
5c4e0 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..
5c500 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
5c520 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
5c540 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,.
5c560 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
5c580 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
5c5a0 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
5c5c0 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
5c5e0 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)....
5c600 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)
5c620 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..........
5c640 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
5c660 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))......
5c680 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
5c6a0 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
5c6c0 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.
5c6e0 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)........
5c700 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
5c720 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.......
5c740 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.
5c760 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
5c780 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
5c7a0 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
5c7c0 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)...........
5c7e0 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
5c800 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
5c820 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)))...........................(
5c840 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).
5c860 20 20 20 20 20 20 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
5c880 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
5c8a0 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
5c8c0 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)))..............
5c8e0 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))...............(
5c900 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
5c920 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
5c940 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)........
5c960 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
5c980 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............
5c9a0 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
5c9c0 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)...............
5c9e0 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
5ca00 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
5ca20 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)
5ca40 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
5ca60 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
5ca80 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).................(
5caa0 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))))))).....;;.
5cac0 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
5cae0 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
5cb00 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
5cb20 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
5cb40 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)
5cb60 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
5cb80 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
5cba0 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
5cbc0 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)...
5cbe0 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.
5cc00 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.
5cc20 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
5cc40 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
5cc60 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)))
5cc80 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
5cca0 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
5ccc0 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
5cce0 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
5cd00 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
5cd20 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
5cd40 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
5cd60 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
5cd80 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
5cda0 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.;;
5cdc0 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
5cde0 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
5ce00 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
5ce20 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.
5ce40 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.
5ce60 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.
5ce80 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
5cea0 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
5cec0 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
5cee0 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..
5cf00 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
5cf20 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
5cf40 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
5cf60 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
5cf80 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
5cfa0 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
5cfc0 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
5cfe0 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
5d000 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.
5d020 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.
5d040 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
5d060 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:.;;.......'((
5d080 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>
5d0a0 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".;;....
5d0c0 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).;;...........(
5d0e0 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
5d100 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--
5d120 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
5d140 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.
5d160 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
5d180 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
5d1a0 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.
5d1c0 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).
5d1e0 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.(
5d200 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
5d220 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
5d240 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
5d260 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.
5d280 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
5d2a0 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
5d2c0 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
5d2e0 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
5d300 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
5d320 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
5d340 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
5d360 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
5d380 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
5d3a0 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
5d3c0 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
5d3e0 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)
5d400 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
5d420 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)...................
5d440 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)
5d460 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)).........................
5d480 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.(
5d4a0 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..
5d4c0 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
5d4e0 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
5d500 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.........
5d520 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
5d540 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
5d560 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
5d580 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
5d5a0 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
5d5c0 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........;;.
5d5e0 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
5d600 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)........;;
5d620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d640 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))).......
5d660 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
5d680 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
5d6a0 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)
5d6c0 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..
5d6e0 20 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."
5d700 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)............
5d720 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))
5d740 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
5d760 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
5d780 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
5d7a0 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)...............
5d7c0 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.(
5d7e0 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>"........
5d800 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-
5d820 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............
5d840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5d860 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)
5d880 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)
5d8a0 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
5d8c0 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.
5d8e0 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
5d900 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
5d920 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
5d940 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
5d960 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
5d980 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
5d9a0 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
5d9c0 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
5d9e0 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.
5da00 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...
5da20 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
5da40 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
5da60 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.
5da80 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)...
5daa0 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
5dac0 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
5dae0 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.
5db00 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
5db20 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.`
5db40 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
5db60 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
5db80 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))..
5dba0 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
5dbc0 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)
5dbe0 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
5dc00 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...
5dc20 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
5dc40 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
5dc60 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
5dc80 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
5dca0 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
5dcc0 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
5dce0 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
5dd00 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
5dd20 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)
5dd40 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
5dd60 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-
5dd80 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
5dda0 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)...
5ddc0 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
5dde0 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.
5de00 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);
5de20 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.
5de40 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
5de60 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)
5de80 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."(".....
5dea0 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
5dec0 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)....................
5dee0 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
5df00 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)..........................
5df20 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
5df40 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)..............
5df60 20 20 20 20 20 20 20 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 ..............................."
5df80 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")...........................
5dfa0 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
5dfc0 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)))...........................
5dfe0 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...................
5e000 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 ................".")............
5e020 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
5e040 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
5e060 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.
5e080 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
5e0a0 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
5e0c0 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
5e0e0 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
5e100 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
5e120 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
5e140 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-
5e160 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.
5e180 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
5e1a0 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
5e1c0 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
5e1e0 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
5e200 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
5e220 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
5e240 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
5e260 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
5e280 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
5e2a0 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.
5e2c0 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
5e2e0 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
5e300 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
5e320 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
5e340 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
5e360 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.(
5e380 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)......................
5e3a0 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).........
5e3c0 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
5e3e0 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-
5e400 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)..
5e420 20 20 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-
5e440 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...................
5e460 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).
5e480 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)...
5e4a0 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
5e4c0 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
5e4e0 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....
5e500 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.
5e520 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)))))..(
5e540 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.
5e560 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
5e580 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
5e5a0 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,
5e5c0 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
5e5e0 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,
5e600 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
5e620 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))....
5e640 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.
5e660 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
5e680 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)))..
5e6a0 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
5e6c0 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
5e6e0 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.
5e700 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).
5e720 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.&
5e740 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
5e760 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
5e780 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
5e7a0 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
5e7c0 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.(/=
5e7e0 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
5e800 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
5e820 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
5e840 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)..."
5e860 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
5e880 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
5e8a0 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
5e8c0 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
5e8e0 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
5e900 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)...................
5e920 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
5e940 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))...........................
5e960 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
5e980 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
5e9a0 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)
5e9c0 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.(
5e9e0 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
5ea00 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
5ea20 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
5ea40 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
5ea60 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
5ea80 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
5eaa0 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
5eac0 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).
5eae0 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
5eb00 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
5eb20 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
5eb40 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.'
5eb60 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
5eb80 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)))
5eba0 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
5ebc0 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
5ebe0 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
5ec00 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)
5ec20 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-
5ec40 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
5ec60 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
5ec80 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.()
5eca0 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)...
5ecc0 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
5ece0 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
5ed00 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)..."
5ed20 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
5ed40 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.(=.
5ed60 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
5ed80 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
5eda0 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
5edc0 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."
5ede0 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
5ee00 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
5ee20 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.(
5ee40 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)).............
5ee60 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
5ee80 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
5eea0 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).
5eec0 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
5eee0 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
5ef00 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)).....
5ef20 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
5ef40 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).........
5ef60 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.
5ef80 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
5efa0 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))........
5efc0 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
5efe0 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).
5f000 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
5f020 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
5f040 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
5f060 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.......
5f080 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
5f0a0 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)............
5f0c0 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
5f0e0 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.........
5f100 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
5f120 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)................;;.
5f140 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
5f160 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
5f180 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
5f1a0 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
5f1c0 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
5f1e0 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
5f200 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
5f220 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
5f240 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
5f260 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-
5f280 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.......
5f2a0 20 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.(-.
5f2c0 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
5f2e0 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.().
5f300 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
5f320 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_
5f340 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
5f360 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
5f380 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
5f3a0 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
5f3c0 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
5f3e0 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
5f400 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
5f420 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
5f440 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...
5f460 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))..(
5f480 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.(
5f4a0 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.
5f4c0 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...
5f4e0 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
5f500 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
5f520 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
5f540 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
5f560 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
5f580 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
5f5a0 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
5f5c0 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
5f5e0 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.
5f600 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.--.
5f620 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
5f640 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
5f660 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))........
5f680 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
5f6a0 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))))...
5f6c0 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
5f6e0 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
5f700 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
5f720 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
5f740 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
5f760 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
5f780 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
5f7a0 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
5f7c0 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."..
5f7e0 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)..
5f800 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
5f820 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-
5f840 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
5f860 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
5f880 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
5f8a0 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-
5f8c0 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
5f8e0 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".
5f900 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)).....
5f920 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).....
5f940 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))..
5f960 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
5f980 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
5f9a0 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)......
5f9c0 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-
5f9e0 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
5fa00 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
5fa20 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
5fa40 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
5fa60 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
5fa80 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=."
5faa0 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
5fac0 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.
5fae0 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.........
5fb00 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
5fb20 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))).........
5fb40 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))))
5fb60 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.()
5fb80 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
5fba0 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
5fbc0 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).......
5fbe0 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
5fc00 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)))......
5fc20 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
5fc40 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
5fc60 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-
5fc80 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
5fca0 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
5fcc0 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"))
5fce0 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)
5fd00 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
5fd20 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."...
5fd40 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)).
5fd60 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
5fd80 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
5fda0 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
5fdc0 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
5fde0 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...
5fe00 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)).
5fe20 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
5fe40 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
5fe60 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
5fe80 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
5fea0 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.
5fec0 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.
5fee0 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-
5ff00 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.
5ff20 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
5ff40 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
5ff60 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.
5ff80 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
5ffa0 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
5ffc0 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.
5ffe0 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
60000 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
60020 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
60040 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
60060 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-
60080 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
600a0 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..............
600c0 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
600e0 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
60100 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
60120 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
60140 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
60160 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
60180 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
601a0 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-
601c0 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-
601e0 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)
60200 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)
60220 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.(
60240 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.
60260 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
60280 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
602a0 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.
602c0 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,.
602e0 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.
60300 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).....
60320 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
60340 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))
60360 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.
60380 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
603a0 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
603c0 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
603e0 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.
60400 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
60420 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
60440 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
60460 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
60480 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
604a0 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
604c0 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'
604e0 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
60500 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,.......
60520 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
60540 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
60560 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
60580 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
605a0 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.
605c0 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
605e0 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,.
60600 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
60620 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
60640 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
60660 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
60680 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
606a0 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.
606c0 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
606e0 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
60700 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.
60720 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
60740 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
60760 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
60780 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
607a0 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,.
607c0 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
607e0 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)))..
60800 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.
60820 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.((
60840 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)...
60860 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
60880 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))
608a0 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-
608c0 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
608e0 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
60900 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
60920 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.(
60940 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)).....
60960 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)......
60980 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
609a0 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))......
609c0 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.
609e0 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
60a00 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
60a20 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
60a40 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
60a60 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-
60a80 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
60aa0 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-
60ac0 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
60ae0 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."
60b00 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
60b20 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.
60b40 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
60b60 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
60b80 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
60ba0 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
60bc0 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
60be0 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
60c00 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
60c20 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
60c40 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
60c60 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
60c80 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
60ca0 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
60cc0 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.
60ce0 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
60d00 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
60d20 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
60d40 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
60d60 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)..
60d80 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
60da0 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
60dc0 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
60de0 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
60e00 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
60e20 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)....
60e40 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
60e60 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
60e80 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)
60ea0 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
60ec0 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
60ee0 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
60f00 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.........
60f20 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..........
60f40 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..;
60f60 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
60f80 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
60fa0 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.(/=.
60fc0 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
60fe0 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)
61000 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
61020 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-
61040 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........................
61060 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)......
61080 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
610a0 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
610c0 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.....
610e0 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
61100 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))....
61120 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
61140 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-
61160 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
61180 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)..
611a0 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
611c0 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
611e0 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").......
61200 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
61220 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
61240 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.....
61260 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))...
61280 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)
612a0 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
612c0 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
612e0 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
61300 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
61320 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
61340 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
61360 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))))....
61380 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-
613a0 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.
613c0 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))...
613e0 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
61400 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
61420 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
61440 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
61460 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
61480 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
614a0 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
614c0 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
614e0 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
61500 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-
61520 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
61540 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
61560 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
61580 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))....
615a0 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
615c0 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
615e0 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
61600 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
61620 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
61640 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...........
61660 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
61680 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
616a0 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))).............
616c0 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
616e0 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
61700 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).
61720 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
61740 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
61760 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
61780 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
617a0 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
617c0 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......
617e0 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
61800 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....................
61820 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)...
61840 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
61860 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))
61880 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
618a0 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..........................
618c0 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
618e0 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)......................
61900 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)
61920 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
61940 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
61960 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"....
61980 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-
619a0 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
619c0 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))
619e0 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
61a00 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...
61a20 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))
61a40 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.......
61a60 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-
61a80 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.
61aa0 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.
61ac0 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
61ae0 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
61b00 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
61b20 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)...................
61b40 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)............
61b60 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)))....
61b80 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.....
61ba0 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.
61bc0 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
61be0 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......
61c00 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
61c20 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.
61c40 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)...........
61c60 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-
61c80 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))................
61ca0 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
61cc0 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)....................(
61ce0 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
61d00 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
61d20 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")..........
61d40 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
61d60 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
61d80 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.
61da0 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
61dc0 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.
61de0 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)....
61e00 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
61e20 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)..........
61e40 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)))
61e60 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)........
61e80 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)...........
61ea0 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)))).
61ec0 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
61ee0 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
61f00 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
61f20 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...
61f40 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
61f60 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).....
61f80 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
61fa0 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.
61fc0 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.
61fe0 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-
62000 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).
62020 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
62040 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
62060 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
62080 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
620a0 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
620c0 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
620e0 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
62100 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
62120 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.`
62140 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
62160 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
62180 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
621a0 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
621c0 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
621e0 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.
62200 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
62220 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
62240 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)........................
62260 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)...
62280 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-
622a0 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
622c0 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)).................
622e0 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
62300 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)).........................
62320 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)
62340 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
62360 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"
62380 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.
623a0 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
623c0 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.
623e0 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
62400 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
62420 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
62440 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-
62460 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
62480 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-
624a0 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
624c0 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."
624e0 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...
62500 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
62520 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
62540 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
62560 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
62580 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
625a0 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.
625c0 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
625e0 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.".
62600 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
62620 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)..
62640 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
62660 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
62680 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).
626a0 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.(
626c0 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)..........................
626e0 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
62700 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))................
62720 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).......
62740 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
62760 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.........
62780 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
627a0 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
627c0 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
627e0 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
62800 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
62820 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
62840 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."...(
62860 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).....
62880 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
628a0 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
628c0 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
628e0 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
62900 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).....................
62920 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
62940 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)))...........
62960 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
62980 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....
629a0 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
629c0 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-
629e0 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
62a00 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)..........
62a20 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...
62a40 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
62a60 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.
62a80 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)...............
62aa0 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.
62ac0 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-
62ae0 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
62b00 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
62b20 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).......................
62b40 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
62b60 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..............
62b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62ba0 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
62bc0 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
62be0 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
62c00 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)....
62c20 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
62c40 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
62c60 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)))...........
62c80 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..........
62ca0 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
62cc0 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
62ce0 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).............................
62d00 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)..........
62d20 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
62d40 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)..............
62d60 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
62d80 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
62da0 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
62dc0 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
62de0 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)))
62e00 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
62e20 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")...........
62e40 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
62e60 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
62e80 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)
62ea0 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
62ec0 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-
62ee0 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)..................
62f00 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
62f20 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))
62f40 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
62f60 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
62f80 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)))))..............
62fa0 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....
62fc0 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
62fe0 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)......................
63000 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
63020 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
63040 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))......
63060 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
63080 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))..................
630a0 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)
630c0 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
630e0 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)).........
63100 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-
63120 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))........
63140 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)...
63160 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
63180 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))...........
631a0 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-
631c0 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)))...............
631e0 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
63200 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..........................
63220 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
63240 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................
63260 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
63280 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
632a0 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.
632c0 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
632e0 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
63300 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
63320 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))).....
63340 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."
63360 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.......
63380 20 20 20 20 20 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
633a0 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.
633c0 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...
633e0 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
63400 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)...................
63420 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
63440 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.
63460 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)))))).
63480 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
634a0 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
634c0 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
634e0 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-
63500 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
63520 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))).....
63540 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
63560 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
63580 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
635a0 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
635c0 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
635e0 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)
63600 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
63620 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
63640 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
63660 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
63680 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
636a0 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-
636c0 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.......
636e0 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
63700 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.
63720 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
63740 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
63760 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
63780 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
637a0 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.....
637c0 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.....
637e0 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
63800 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))................
63820 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
63840 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))......
63860 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))
63880 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
638a0 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.
638c0 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))....
638e0 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."
63900 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"............
63920 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
63940 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).......
63960 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
63980 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
639a0 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
639c0 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
639e0 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
63a00 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
63a20 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)))....
63a40 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
63a60 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
63a80 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))....
63aa0 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
63ac0 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-
63ae0 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.
63b00 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
63b20 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
63b40 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..
63b60 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
63b80 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)).
63ba0 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
63bc0 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)...
63be0 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
63c00 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
63c20 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
63c40 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
63c60 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
63c80 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).
63ca0 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
63cc0 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
63ce0 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
63d00 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
63d20 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)..
63d40 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
63d60 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
63d80 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))..
63da0 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
63dc0 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
63de0 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)))...
63e00 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
63e20 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
63e40 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.
63e60 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
63e80 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
63ea0 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
63ec0 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
63ee0 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
63f00 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
63f20 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
63f40 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-
63f60 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
63f80 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...........................
63fa0 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......
63fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
63fe0 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........
64000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
64020 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)).......
64040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
64060 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.
64080 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)..........................
640a0 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)
640c0 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-
640e0 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
64100 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)....................
64120 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.'
64140 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
64160 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).
64180 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-
641a0 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)))........
641c0 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
641e0 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..
64200 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
64220 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)
64240 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
64260 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-
64280 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))).
642a0 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
642c0 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)
642e0 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
64300 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
64320 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
64340 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
64360 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
64380 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
643a0 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.........;
643c0 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
643e0 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
64400 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
64420 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
64440 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)).
64460 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.
64480 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.
644a0 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
644c0 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
644e0 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
64500 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
64520 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.
64540 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..........
64560 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).......
64580 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
645a0 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
645c0 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
645e0 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
64600 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"))...
64620 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
64640 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
64660 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)).........
64680 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
646a0 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
646c0 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
646e0 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
64700 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
64720 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
64740 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
64760 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
64780 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.........;
647a0 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
647c0 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.........(
647e0 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
64800 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)...............
64820 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
64840 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..............
64860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
64880 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))))..
648a0 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-
648c0 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........................
648e0 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).
64900 20 20 20 20 20 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-
64920 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
64940 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).....
64960 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
64980 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
649a0 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-
649c0 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
649e0 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
64a00 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......;
64a20 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
64a40 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
64a60 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
64a80 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
64aa0 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
64ac0 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
64ae0 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
64b00 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
64b20 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
64b40 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
64b60 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
64b80 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
64ba0 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
64bc0 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.(
64be0 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
64c00 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
64c20 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)..
64c40 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.
64c60 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
64c80 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..........
64ca0 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
64cc0 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)).....;
64ce0 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.
64d00 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
64d20 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,
64d40 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
64d60 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.....
64d80 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
64da0 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.......(
64dc0 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
64de0 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.'
64e00 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........................(
64e20 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
64e40 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.......................
64e60 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
64e80 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)).........
64ea0 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
64ec0 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))..
64ee0 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
64f00 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
64f20 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.
64f40 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
64f60 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
64f80 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
64fa0 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
64fc0 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.
64fe0 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
65000 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
65020 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
65040 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
65060 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
65080 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.
650a0 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
650c0 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
650e0 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
65100 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
65120 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.
65140 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.
65160 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.
65180 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
651a0 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
651c0 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
651e0 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
65200 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
65220 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
65240 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)........
65260 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)).......(
65280 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
652a0 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.
652c0 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
652e0 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
65300 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
65320 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
65340 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
65360 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).........
65380 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
653a0 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)
653c0 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)
653e0 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
65400 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
65420 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
65440 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
65460 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)).......
65480 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
654a0 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.(
654c0 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))
654e0 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
65500 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
65520 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
65540 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
65560 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
65580 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
655a0 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.............
655c0 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-
655e0 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
65600 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).
65620 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.....
65640 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
65660 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
65680 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
656a0 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
656c0 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
656e0 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).....(
65700 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
65720 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)...
65740 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........#'
65760 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.
65780 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
657a0 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.....
657c0 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
657e0 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
65800 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.
65820 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)...
65840 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....#'
65860 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-
65880 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..
658a0 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
658c0 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
658e0 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
65900 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-
65920 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-
65940 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)
65960 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.....
65980 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
659a0 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
659c0 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
659e0 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
65a00 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-
65a20 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
65a40 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
65a60 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...
65a80 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
65aa0 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
65ac0 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
65ae0 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)...
65b00 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
65b20 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."
65b40 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
65b60 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-
65b80 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-
65ba0 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.....
65bc0 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......
65be0 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.......
65c00 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
65c20 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.
65c40 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.................
65c60 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)..............
65c80 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
65ca0 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
65cc0 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
65ce0 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......
65d00 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.......
65d20 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......
65d40 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.....
65d60 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..
65d80 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-
65da0 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
65dc0 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
65de0 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
65e00 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
65e20 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-
65e40 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
65e60 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
65e80 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
65ea0 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))........
65ec0 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)..
65ee0 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-
65f00 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
65f20 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
65f40 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
65f60 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)..............
65f80 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))))
65fa0 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
65fc0 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
65fe0 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
66000 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
66020 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
66040 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-
66060 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
66080 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
660a0 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
660c0 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
660e0 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)
66100 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
66120 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
66140 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-
66160 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.
66180 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)..
661a0 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))....
661c0 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)))..
661e0 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
66200 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
66220 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...
66240 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).(
66260 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)))
66280 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
662a0 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
662c0 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
662e0 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.;....
66300 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
66320 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))).......
66340 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-
66360 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
66380 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.
663a0 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
663c0 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
663e0 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").........
66400 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
66420 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))).........(
66440 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
66460 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
66480 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
664a0 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
664c0 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
664e0 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.
66500 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.
66520 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
66540 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
66560 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
66580 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.
665a0 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
665c0 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).
665e0 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."
66600 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
66620 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)))..
66640 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))...
66660 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
66680 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").........
666a0 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)
666c0 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.
666e0 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)...."...
66700 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
66720 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
66740 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-
66760 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
66780 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........................
667a0 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)......
667c0 20 20 20 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
667e0 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).................
66800 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
66820 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)))..(
66840 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.
66860 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.
66880 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.((
668a0 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))....
668c0 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-
668e0 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-
66900 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
66920 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)........
66940 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
66960 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)......................
66980 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........................
669a0 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
669c0 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))...............
669e0 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)
66a00 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.(
66a20 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))...........
66a40 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...
66a60 20 20 20 20 20 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
66a80 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)...................
66aa0 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
66ac0 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)..............................
66ae0 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............
66b00 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
66b20 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.........................
66b40 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.......
66b60 20 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
66b80 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)..
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 72 ..............................:r
66bc0 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
66be0 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.
66c00 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).
66c20 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
66c40 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.(
66c60 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.
66c80 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
66ca0 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))).
66cc0 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
66ce0 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
66d00 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."...
66d20 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
66d40 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
66d60 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
66d80 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-
66da0 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
66dc0 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)............
66de0 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...........
66e00 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.(-.(
66e20 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).....
66e40 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-
66e60 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....
66e80 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
66ea0 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))........
66ec0 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
66ee0 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
66f00 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
66f20 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
66f40 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)
66f60 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
66f80 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................
66fa0 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..............
66fc0 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
66fe0 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)................
67000 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.
67020 20 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
67040 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......................
67060 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))).....
67080 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....
670a0 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
670c0 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)).........
670e0 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..........
67100 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
67120 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
67140 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-
67160 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.
67180 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
671a0 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
671c0 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
671e0 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.->
67200 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
67220 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.-
67240 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
67260 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,
67280 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
672a0 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
672c0 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.
672e0 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
67300 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
67320 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
67340 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.."
67360 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
67380 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
673a0 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...........
673c0 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
673e0 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......((
67400 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).......(
67420 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
67440 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-
67460 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
67480 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
674a0 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-
674c0 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
674e0 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
67500 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.
67520 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
67540 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).....
67560 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))
67580 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
675a0 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
675c0 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))).........(
675e0 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
67600 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).....
67620 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)....
67640 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)...
67660 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
67680 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
676a0 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
676c0 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
676e0 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-
67700 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
67720 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
67740 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
67760 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
67780 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
677a0 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
677c0 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
677e0 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
67800 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.
67820 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
67840 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
67860 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
67880 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
678a0 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
678c0 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
678e0 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
67900 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))).
67920 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
67940 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-
67960 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
67980 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
679a0 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)
679c0 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
679e0 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
67a00 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)....
67a20 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
67a40 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.
67a60 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
67a80 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)))
67aa0 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
67ac0 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)
67ae0 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
67b00 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
67b20 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).............
67b40 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
67b60 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)))
67b80 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
67ba0 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
67bc0 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
67be0 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).
67c00 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
67c20 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"))))
67c40 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
67c60 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"))
67c80 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
67ca0 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
67cc0 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
67ce0 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
67d00 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-
67d20 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
67d40 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
67d60 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
67d80 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
67da0 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.......
67dc0 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")
67de0 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
67e00 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")..........(
67e20 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
67e40 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......................
67e60 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.......................
67e80 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).
67ea0 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
67ec0 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............
67ee0 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
67f00 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)..................
67f20 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
67f40 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).....................
67f60 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
67f80 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)).......................
67fa0 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-
67fc0 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
67fe0 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
68000 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)).......
68020 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
68040 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
68060 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
68080 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
680a0 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.
680c0 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
680e0 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\\='\"
68100 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
68120 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
68140 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
68160 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
68180 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
681a0 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.
681c0 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
681e0 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)............:
68200 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
68220 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)
68240 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
68260 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
68280 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.
682a0 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
682c0 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
682e0 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
68300 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..................:
68320 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.(-
68340 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)...
68360 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"
68380 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)
683a0 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)
683c0 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)
683e0 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
68400 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").....
68420 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
68440 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
68460 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
68480 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
684a0 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
684c0 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
684e0 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
68500 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
68520 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.
68540 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
68560 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
68580 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
685a0 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)))..
685c0 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
685e0 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
68600 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
68620 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
68640 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
68660 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
68680 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.
686a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
686c0 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
686e0 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"........................
68700 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
68720 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
68740 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-
68760 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.
68780 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.
687a0 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.
687c0 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
687e0 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.
68800 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
68820 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
68840 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
68860 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
68880 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
688a0 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.
688c0 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."..
688e0 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
68900 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
68920 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
68940 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
68960 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
68980 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.(
689a0 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
689c0 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)....................
689e0 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.
68a00 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)))))....
68a20 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
68a40 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")....
68a60 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............
68a80 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.....................
68aa0 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
68ac0 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")...................
68ae0 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
68b00 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)))))
68b20 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.........
68b40 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-
68b60 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.............
68b80 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.....
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 3a 6c 65 6e 20 ...........................:len.
68bc0 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).
68be0 20 20 20 20 20 20 20 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 ...............................:
68c00 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..
68c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68c40 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...........
68c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68c80 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)..
68ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68cc0 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
68ce0 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))........................
68d00 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
68d20 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........................
68d40 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
68d60 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.........................
68d80 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...
68da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68dc0 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)
68de0 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
68e00 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..................
68e20 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
68e40 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
68e60 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
68e80 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
68ea0 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
68ec0 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.......................
68ee0 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
68f00 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).
68f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
68f40 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
68f60 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))...................
68f80 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
68fa0 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)).
68fc0 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
68fe0 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.................
69000 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-
69020 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)...................
69040 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
69060 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).........................
69080 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
690a0 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
690c0 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........
690e0 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
69100 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)...................
69120 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
69140 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
69160 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................
69180 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)
691a0 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
691c0 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-
691e0 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
69200 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))............
69220 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
69240 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
69260 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.(
69280 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
692a0 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)..................
692c0 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
692e0 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))............
69300 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
69320 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
69340 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
69360 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
69380 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)).
693a0 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
693c0 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......
693e0 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).....(
69400 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
69420 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
69440 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))).....
69460 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
69480 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
694a0 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
694c0 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...............................
694e0 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...................
69500 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
69520 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
69540 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-
69560 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
69580 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
695a0 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
695c0 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")...........
695e0 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
69600 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
69620 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
69640 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").....
69660 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.............
69680 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.
696a0 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)................
696c0 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
696e0 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......
69700 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)........
69720 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)
69740 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)
69760 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.
69780 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................((=
697a0 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
697c0 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)).
697e0 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.
69800 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")).
69820 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
69840 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
69860 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
69880 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
698a0 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
698c0 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......................
698e0 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).................
69900 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
69920 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"))................(
69940 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
69960 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")...........
69980 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)))......
699a0 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
699c0 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......
699e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
69a00 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
69a20 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)..........
69a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
69a60 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))......
69a80 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.
69aa0 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)............
69ac0 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
69ae0 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)...........
69b00 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)
69b20 0a 20 20 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
69b40 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)..................
69b60 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)).......
69b80 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-
69ba0 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)......................
69bc0 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
69be0 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)).....
69c00 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
69c20 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))...............
69c40 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)))........
69c60 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
69c80 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
69ca0 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).
69cc0 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
69ce0 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
69d00 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)))...
69d20 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.....
69d40 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
69d60 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.
69d80 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
69da0 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.
69dc0 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))..
69de0 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)
69e00 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
69e20 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
69e40 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.
69e60 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)......
69e80 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
69ea0 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).............
69ec0 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)..
69ee0 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
69f00 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
69f20 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.
69f40 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-
69f60 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
69f80 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).............
69fa0 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-
69fc0 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))....
69fe0 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
6a000 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
6a020 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
6a040 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
6a060 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.
6a080 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
6a0a0 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
6a0c0 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
6a0e0 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)
6a100 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
6a120 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
6a140 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
6a160 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
6a180 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
6a1a0 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
6a1c0 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)...............
6a1e0 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)....
6a200 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
6a220 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)..............
6a240 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...
6a260 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.
6a280 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.
6a2a0 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)
6a2c0 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
6a2e0 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.
6a300 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-
6a320 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)
6a340 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)).....;;.
6a360 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.
6a380 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
6a3a0 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.
6a3c0 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
6a3e0 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
6a400 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).........(
6a420 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
6a440 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)
6a460 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
6a480 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
6a4a0 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
6a4c0 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.`
6a4e0 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.
6a500 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.
6a520 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
6a540 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
6a560 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
6a580 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
6a5a0 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
6a5c0 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
6a5e0 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
6a600 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
6a620 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"))
6a640 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
6a660 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))
6a680 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
6a6a0 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
6a6c0 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
6a6e0 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
6a700 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
6a720 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.....
6a740 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))
6a760 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)
6a780 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
6a7a0 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
6a7c0 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.
6a7e0 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)...........
6a800 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))).......(
6a820 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."
6a840 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)
6a860 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-
6a880 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
6a8a0 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).......
6a8c0 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-
6a8e0 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)................
6a900 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
6a920 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)..................
6a940 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
6a960 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)............................
6a980 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)))......
6a9a0 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
6a9c0 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)................
6a9e0 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.
6aa00 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)).....
6aa20 20 20 20 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.(
6aa40 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)...
6aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6aa80 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-
6aaa0 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)............................
6aac0 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
6aae0 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))......................
6ab00 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).......
6ab20 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
6ab40 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))).......................
6ab60 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
6ab80 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)............................(
6aba0 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
6abc0 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 )...............................
6abe0 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)......
6ac00 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
6ac20 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))).............
6ac40 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
6ac60 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
6ac80 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
6aca0 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))
6acc0 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
6ace0 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
6ad00 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)))
6ad20 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
6ad40 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
6ad60 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-
6ad80 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
6ada0 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
6adc0 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
6ade0 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
6ae00 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)...
6ae20 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)...
6ae40 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)))).
6ae60 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
6ae80 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
6aea0 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
6aec0 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
6aee0 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
6af00 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
6af20 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.....
6af40 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)...
6af60 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
6af80 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)............
6afa0 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
6afc0 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
6afe0 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)))....
6b000 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
6b020 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
6b040 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).
6b060 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-
6b080 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
6b0a0 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))).
6b0c0 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
6b0e0 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
6b100 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-
6b120 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).........
6b140 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-
6b160 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
6b180 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.................
6b1a0 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......
6b1c0 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)))
6b1e0 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
6b200 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)
6b220 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
6b240 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.
6b260 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.
6b280 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.".
6b2a0 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
6b2c0 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
6b2e0 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
6b300 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.
6b320 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
6b340 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
6b360 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.
6b380 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..;
6b3a0 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
6b3c0 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
6b3e0 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
6b400 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
6b420 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)..
6b440 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
6b460 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
6b480 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
6b4a0 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))..
6b4c0 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
6b4e0 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
6b500 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).
6b520 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...........(
6b540 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
6b560 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
6b580 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
6b5a0 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
6b5c0 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))
6b5e0 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.
6b600 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
6b620 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
6b640 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........
6b660 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
6b680 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
6b6a0 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")))
6b6c0 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
6b6e0 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
6b700 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)
6b720 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
6b740 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
6b760 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
6b780 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
6b7a0 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.
6b7c0 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
6b7e0 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
6b800 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
6b820 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.(
6b840 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
6b860 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
6b880 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).
6b8a0 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).
6b8c0 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
6b8e0 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)))...........
6b900 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
6b920 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)).........
6b940 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
6b960 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)
6b980 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.............
6b9a0 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).............
6b9c0 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))))
6b9e0 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
6ba00 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)...................(
6ba20 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
6ba40 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
6ba60 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")........
6ba80 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.
6baa0 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-
6bac0 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
6bae0 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)
6bb00 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).....................;;
6bb20 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
6bb40 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
6bb60 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
6bb80 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....
6bba0 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
6bbc0 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
6bbe0 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)))....
6bc00 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
6bc20 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.
6bc40 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
6bc60 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
6bc80 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
6bca0 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
6bcc0 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.(
6bce0 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)....
6bd00 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
6bd20 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
6bd40 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..........................
6bd60 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))).............(
6bd80 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.
6bda0 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
6bdc0 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
6bde0 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.(=.
6be00 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)........
6be20 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
6be40 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).....
6be60 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-
6be80 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))
6bea0 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.
6bec0 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")........
6bee0 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-
6bf00 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-
6bf20 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.(
6bf40 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....
6bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6bf80 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................
6bfa0 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
6bfc0 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...............................
6bfe0 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....................
6c000 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)).......
6c020 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
6c040 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....
6c060 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).
6c080 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)
6c0a0 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)....
6c0c0 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
6c0e0 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
6c100 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))..
6c120 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
6c140 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)..................(>.(
6c160 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
6c180 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
6c1a0 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"))).....
6c1c0 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
6c1e0 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.................
6c200 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
6c220 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...............................
6c240 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...........
6c260 20 20 20 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
6c280 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...............
6c2a0 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
6c2c0 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.......................
6c2e0 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
6c300 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.........................
6c320 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
6c340 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...............................
6c360 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.......
6c380 20 20 20 20 20 20 20 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 ...............................:
6c3a0 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...........................
6c3c0 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
6c3e0 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
6c400 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)..
6c420 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
6c440 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
6c460 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
6c480 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
6c4a0 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
6c4c0 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,...........;
6c4e0 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.
6c500 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...
6c520 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
6c540 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.
6c560 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
6c580 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
6c5a0 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........
6c5c0 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
6c5e0 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
6c600 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-
6c620 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
6c640 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)).
6c660 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
6c680 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
6c6a0 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
6c6c0 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.
6c6e0 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-
6c700 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-
6c720 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
6c740 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
6c760 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......
6c780 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
6c7a0 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
6c7c0 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"))....
6c7e0 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
6c800 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
6c820 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
6c840 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....
6c860 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
6c880 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)..
6c8a0 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
6c8c0 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))...............
6c8e0 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
6c900 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))..............
6c920 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
6c940 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......
6c960 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
6c980 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...............(
6c9a0 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
6c9c0 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
6c9e0 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
6ca00 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).......
6ca20 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
6ca40 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))...........
6ca60 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)))..
6ca80 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..............
6caa0 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:.....
6cac0 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
6cae0 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.}).{.....}.............
6cb00 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-
6cb20 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
6cb40 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
6cb60 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
6cb80 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-
6cba0 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
6cbc0 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
6cbe0 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...........
6cc00 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.
6cc20 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").................
6cc40 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
6cc60 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-
6cc80 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
6cca0 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)................
6ccc0 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
6cce0 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
6cd00 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
6cd20 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)................
6cd40 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
6cd60 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)..........
6cd80 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
6cda0 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
6cdc0 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)).............
6cde0 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.
6ce00 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").................
6ce20 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
6ce40 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
6ce60 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
6ce80 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
6cea0 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).......
6cec0 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."
6cee0 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").......
6cf00 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
6cf20 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
6cf40 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
6cf60 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
6cf80 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
6cfa0 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
6cfc0 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
6cfe0 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
6d000 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
6d020 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-
6d040 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
6d060 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...........
6d080 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
6d0a0 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
6d0c0 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
6d0e0 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
6d100 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
6d120 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
6d140 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
6d160 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"......................
6d180 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).......
6d1a0 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
6d1c0 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))......
6d1e0 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
6d200 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-
6d220 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).......(
6d240 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
6d260 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
6d280 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
6d2a0 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)
6d2c0 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
6d2e0 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
6d300 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............................
6d320 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.(-.
6d340 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)............
6d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6d380 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
6d3a0 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
6d3c0 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-
6d3e0 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.......
6d400 20 20 20 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.
6d420 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).............
6d440 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.
6d460 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.......................
6d480 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
6d4a0 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
6d4c0 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
6d4e0 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.
6d500 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
6d520 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
6d540 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-
6d560 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)........
6d580 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
6d5a0 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.
6d5c0 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
6d5e0 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.
6d600 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
6d620 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)).
6d640 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
6d660 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)....
6d680 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
6d6a0 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
6d6c0 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..
6d6e0 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
6d700 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
6d720 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
6d740 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.......
6d760 20 20 20 20 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
6d780 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)....
6d7a0 20 20 20 20 20 20 20 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 ...............................:
6d7c0 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
6d7e0 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
6d800 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
6d820 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
6d840 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
6d860 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
6d880 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
6d8a0 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
6d8c0 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.
6d8e0 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
6d900 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
6d920 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
6d940 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
6d960 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
6d980 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.().
6d9a0 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...
6d9c0 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
6d9e0 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
6da00 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
6da20 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
6da40 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
6da60 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
6da80 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.
6daa0 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
6dac0 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
6dae0 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.
6db00 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
6db20 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
6db40 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
6db60 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
6db80 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).............;;
6dba0 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
6dbc0 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
6dbe0 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.(
6dc00 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))......
6dc20 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.(
6dc40 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
6dc60 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
6dc80 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).......;;
6dca0 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
6dcc0 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
6dce0 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
6dd00 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.
6dd20 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
6dd40 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
6dd60 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
6dd80 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
6dda0 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
6ddc0 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.....
6dde0 20 20 20 20 20 20 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
6de00 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)..................
6de20 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
6de40 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.............................
6de60 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))....
6de80 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
6dea0 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.
6dec0 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
6dee0 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
6df00 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
6df20 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
6df40 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)).......
6df60 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)).
6df80 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-
6dfa0 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
6dfc0 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
6dfe0 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......
6e000 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'
6e020 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...
6e040 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
6e060 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).......(
6e080 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
6e0a0 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).........
6e0c0 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)....
6e0e0 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
6e100 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.....
6e120 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
6e140 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
6e160 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
6e180 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.
6e1a0 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)
6e1c0 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......
6e1e0 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
6e200 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...........
6e220 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
6e240 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
6e260 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
6e280 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.
6e2a0 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
6e2c0 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))...........
6e2e0 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
6e300 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
6e320 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
6e340 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))))).....(
6e360 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.
6e380 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........................
6e3a0 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)..
6e3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6e3e0 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................
6e400 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
6e420 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
6e440 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.-.
6e460 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
6e480 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.
6e4a0 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
6e4c0 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
6e4e0 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..
6e500 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
6e520 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
6e540 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
6e560 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
6e580 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")
6e5a0 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
6e5c0 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
6e5e0 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
6e600 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
6e620 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
6e640 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-
6e660 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-
6e680 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
6e6a0 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.
6e6c0 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.
6e6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6e700 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
6e720 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 )...............................
6e740 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..................
6e760 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......
6e780 20 20 20 20 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.
6e7a0 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).............
6e7c0 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
6e7e0 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
6e800 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)).
6e820 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.()..
6e840 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
6e860 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
6e880 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.(
6e8a0 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))...
6e8c0 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
6e8e0 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
6e900 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
6e920 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
6e940 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.
6e960 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.............................
6e980 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.
6e9a0 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)......................
6e9c0 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))...
6e9e0 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
6ea00 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
6ea20 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
6ea40 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-
6ea60 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.........
6ea80 20 20 20 20 20 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
6eaa0 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)...........
6eac0 20 20 20 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
6eae0 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)......
6eb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6eb20 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.........
6eb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6eb60 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)...........
6eb80 20 20 20 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
6eba0 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......
6ebc0 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
6ebe0 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
6ec00 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
6ec20 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
6ec40 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-
6ec60 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
6ec80 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)
6eca0 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
6ecc0 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.........
6ece0 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
6ed00 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-
6ed20 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))
6ed40 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.
6ed60 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;..
6ed80 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
6eda0 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
6edc0 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
6ede0 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
6ee00 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)).
6ee20 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.()..
6ee40 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
6ee60 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
6ee80 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
6eea0 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
6eec0 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-
6eee0 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.
6ef00 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
6ef20 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
6ef40 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
6ef60 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
6ef80 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
6efa0 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
6efc0 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
6efe0 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."...(
6f000 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
6f020 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)
6f040 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
6f060 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)...(
6f080 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
6f0a0 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
6f0c0 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-
6f0e0 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
6f100 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)).....
6f120 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
6f140 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
6f160 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...........................
6f180 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
6f1a0 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
6f1c0 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-
6f1e0 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
6f200 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).........
6f220 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
6f240 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"..........................."
6f260 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
6f280 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................
6f2a0 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).............
6f2c0 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))...
6f2e0 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)).....;
6f300 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
6f320 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
6f340 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
6f360 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
6f380 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
6f3a0 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
6f3c0 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)...............
6f3e0 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)).............
6f400 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
6f420 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).......
6f440 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.
6f460 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)........................
6f480 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..
6f4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f4c0 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))......
6f4e0 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
6f500 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.......................
6f520 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)
6f540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6f560 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
6f580 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).......;;.
6f5a0 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
6f5c0 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
6f5e0 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
6f600 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
6f620 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
6f640 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........;;.
6f660 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.
6f680 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'
6f6a0 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
6f6c0 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
6f6e0 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
6f700 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
6f720 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,.
6f740 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
6f760 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
6f780 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
6f7a0 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
6f7c0 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
6f7e0 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.
6f800 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.
6f820 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............
6f840 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
6f860 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
6f880 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-
6f8a0 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
6f8c0 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
6f8e0 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
6f900 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
6f920 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
6f940 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
6f960 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
6f980 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....
6f9a0 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
6f9c0 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......................
6f9e0 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)
6fa00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6fa20 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..................
6fa40 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
6fa60 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
6fa80 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
6faa0 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...
6fac0 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
6fae0 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
6fb00 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
6fb20 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
6fb40 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
6fb60 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
6fb80 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-
6fba0 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
6fbc0 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)................(
6fbe0 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-
6fc00 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)..
6fc20 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)).....
6fc40 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.
6fc60 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))......
6fc80 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))......
6fca0 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
6fcc0 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
6fce0 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
6fd00 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.
6fd20 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
6fd40 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
6fd60 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
6fd80 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
6fda0 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
6fdc0 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.
6fde0 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
6fe00 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))
6fe20 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))).
6fe40 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
6fe60 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......
6fe80 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)..
6fea0 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.
6fec0 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")...........
6fee0 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-
6ff00 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))).......
6ff20 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
6ff40 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
6ff60 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.
6ff80 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
6ffa0 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
6ffc0 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
6ffe0 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
70000 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
70020 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)....
70040 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.:
70060 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
70080 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.(
700a0 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)).
700c0 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
700e0 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
70100 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))
70120 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
70140 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
70160 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
70180 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
701a0 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.
701c0 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
701e0 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
70200 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
70220 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
70240 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)..........
70260 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
70280 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
702a0 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".
702c0 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.(
702e0 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).......
70300 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
70320 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"))....
70340 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
70360 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
70380 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).
703a0 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
703c0 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
703e0 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).......
70400 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).....
70420 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
70440 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.....
70460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
70480 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.......................
704a0 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).
704c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
704e0 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
70500 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).....
70520 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
70540 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..............................:
70560 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).................
70580 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
705a0 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
705c0 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
705e0 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
70600 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
70620 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
70640 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
70660 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
70680 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
706a0 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.
706c0 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
706e0 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
70700 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.............
70720 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
70740 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)))........
70760 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
70780 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........................
707a0 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
707c0 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
707e0 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....
70800 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
70820 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)))
70840 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-
70860 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
70880 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)....
708a0 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
708c0 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'
708e0 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
70900 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
70920 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.
70940 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
70960 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
70980 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
709a0 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,
709c0 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
709e0 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
70a00 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
70a20 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
70a40 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
70a60 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
70a80 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
70aa0 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
70ac0 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.
70ae0 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
70b00 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
70b20 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
70b40 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
70b60 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
70b80 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
70ba0 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-
70bc0 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
70be0 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
70c00 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
70c20 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))...
70c40 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
70c60 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
70c80 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.(=.(
70ca0 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)).......
70cc0 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
70ce0 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
70d00 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)...........(
70d20 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)......
70d40 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
70d60 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
70d80 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
70da0 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
70dc0 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
70de0 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
70e00 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..
70e20 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.........
70e40 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
70e60 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......
70e80 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)....
70ea0 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
70ec0 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
70ee0 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
70f00 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
70f20 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
70f40 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
70f60 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.
70f80 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
70fa0 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
70fc0 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
70fe0 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).
71000 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
71020 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))).
71040 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.()
71060 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
71080 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
710a0 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
710c0 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
710e0 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.
71100 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
71120 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
71140 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-
71160 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.
71180 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.......
711a0 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
711c0 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
711e0 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..
71200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
71220 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)....
71240 20 20 20 20 20 20 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
71260 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)).
71280 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
712a0 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-
712c0 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
712e0 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
71300 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.
71320 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
71340 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
71360 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.
71380 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.
713a0 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.".
713c0 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-
713e0 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)..............
71400 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............
71420 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
71440 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).............................
71460 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
71480 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
714a0 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
714c0 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
714e0 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'.
71500 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
71520 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.
71540 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,.
71560 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
71580 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
715a0 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.
715c0 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.
715e0 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
71600 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
71620 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
71640 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
71660 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
71680 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
716a0 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
716c0 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
716e0 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........................
71700 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))....
71720 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
71740 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.......
71760 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:
71780 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},.
717a0 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,
717c0 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
717e0 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
71800 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
71820 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.............
71840 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
71860 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
71880 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).............
718a0 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).....
718c0 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.
718e0 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))....
71900 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
71920 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].=..........
71940 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
71960 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)......
71980 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
719a0 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
719c0 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-
719e0 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
71a00 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")........
71a20 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
71a40 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
71a60 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)...............
71a80 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)..
71aa0 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)........
71ac0 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.
71ae0 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.
71b00 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-
71b20 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))).
71b40 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
71b60 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
71b80 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).............
71ba0 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))......
71bc0 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
71be0 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.....
71c00 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.
71c20 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)......
71c40 20 20 20 20 20 20 20 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 ...............................'
71c60 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....
71c80 20 20 20 20 20 20 20 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 ...............................'
71ca0 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)...
71cc0 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))...
71ce0 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-
71d00 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...............
71d20 20 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.(-
71d40 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)...................
71d60 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-
71d80 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..
71da0 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.
71dc0 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
71de0 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
71e00 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
71e20 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
71e40 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
71e60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
71e80 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.............
71ea0 20 20 20 20 20 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
71ec0 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).....
71ee0 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
71f00 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)).....
71f20 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
71f40 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-
71f60 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
71f80 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
71fa0 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)....
71fc0 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
71fe0 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
72000 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
72020 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
72040 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
72060 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.
72080 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
720a0 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-
720c0 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.(
720e0 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.
72100 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
72120 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.
72140 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
72160 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'.".
72180 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.:
721a0 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)
721c0 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.
721e0 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").......
72200 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).(-.
72220 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)))..
72240 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
72260 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.......
72280 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
722a0 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
722c0 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
722e0 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")..
72300 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
72320 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
72340 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
72360 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))...
72380 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....
723a0 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...............
723c0 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
723e0 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......
72400 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
72420 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
72440 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
72460 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.(
72480 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
724a0 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)..............
724c0 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
724e0 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)......
72500 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
72520 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....................
72540 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)).
72560 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...
72580 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-
725a0 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
725c0 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)
725e0 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
72600 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))...........
72620 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
72640 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
72660 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
72680 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
726a0 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
726c0 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
726e0 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
72700 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).....................
72720 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........................
72740 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
72760 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
72780 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
727a0 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
727c0 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..
727e0 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
72800 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
72820 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
72840 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
72860 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.(
72880 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...............
728a0 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
728c0 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
728e0 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
72900 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
72920 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)))
72940 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
72960 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......((
72980 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.
729a0 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
729c0 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.
729e0 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
72a00 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))...
72a20 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
72a40 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
72a60 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
72a80 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")....
72aa0 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
72ac0 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
72ae0 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")....
72b00 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")).....
72b20 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
72b40 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
72b60 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.(
72b80 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).......
72ba0 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
72bc0 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
72be0 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
72c00 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-
72c20 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))).....
72c40 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
72c60 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
72c80 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
72ca0 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
72cc0 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
72ce0 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
72d00 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-
72d20 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
72d40 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
72d60 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
72d80 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
72da0 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
72dc0 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))..........
72de0 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."
72e00 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)))......
72e20 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
72e40 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...................
72e60 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-
72e80 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-
72ea0 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...........;
72ec0 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
72ee0 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.......
72f00 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
72f20 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........
72f40 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.
72f60 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-
72f80 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))
72fa0 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
72fc0 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
72fe0 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
73000 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
73020 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
73040 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
73060 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
73080 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))......(
730a0 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
730c0 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
730e0 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
73100 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.
73120 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
73140 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........
73160 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
73180 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
731a0 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.
731c0 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
731e0 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-
73200 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)
73220 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.
73240 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
73260 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
73280 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).............
732a0 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))........
732c0 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.:
732e0 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......................
73300 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)))..
73320 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
73340 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))......
73360 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
73380 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
733a0 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-
733c0 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)))))..(
733e0 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.
73400 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
73420 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
73440 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...
73460 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)...
73480 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).....
734a0 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
734c0 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.(-.(
734e0 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))..;.
73500 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
73520 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
73540 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
73560 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
73580 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
735a0 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...........
735c0 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.
735e0 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
73600 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.(
73620 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)..........
73640 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
73660 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
73680 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..............................
736a0 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...............
736c0 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.(-.
736e0 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)..............
73700 20 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
73720 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.........................
73740 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........
73760 20 20 20 20 20 20 20 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 ...............................:
73780 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-
737a0 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)))...
737c0 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-
737e0 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
73800 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
73820 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
73840 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
73860 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.....
73880 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
738a0 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-
738c0 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
738e0 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
73900 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
73920 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
73940 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.
73960 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.......;;.
73980 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
739a0 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.
739c0 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
739e0 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
73a00 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
73a20 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`
73a40 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
73a60 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'.
73a80 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
73aa0 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
73ac0 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
73ae0 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
73b00 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
73b20 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
73b40 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
73b60 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-
73b80 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
73ba0 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).......;
73bc0 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
73be0 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
73c00 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
73c20 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......
73c40 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)
73c60 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
73c80 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
73ca0 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.(=,.|=,.^=,....,.%=)....
73cc0 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
73ce0 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...
73d00 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).........;;.
73d20 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
73d40 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
73d60 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
73d80 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.
73da0 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.
73dc0 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
73de0 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
73e00 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).
73e20 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
73e40 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.................
73e60 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.
73e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
73ea0 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
73ec0 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)........................
73ee0 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..
73f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
73f20 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................
73f40 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
73f60 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
73f80 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
73fa0 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)..
73fc0 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
73fe0 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.
74000 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
74020 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........
74040 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.
74060 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
74080 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)..............
740a0 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
740c0 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...
740e0 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
74100 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-
74120 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.
74140 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
74160 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).....
74180 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)).........(
741a0 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
741c0 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..............
741e0 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
74200 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
74220 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
74240 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)))...
74260 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
74280 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
742a0 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
742c0 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
742e0 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
74300 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.........
74320 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........
74340 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.
74360 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)......
74380 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
743a0 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
743c0 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
743e0 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
74400 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.
74420 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
74440 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)........
74460 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-
74480 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..
744a0 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
744c0 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......................
744e0 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-
74500 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)..............
74520 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
74540 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......................
74560 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
74580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
745a0 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........
745c0 20 20 20 20 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
745e0 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........................
74600 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))......
74620 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-
74640 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))
74660 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
74680 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)..."
746a0 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
746c0 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.
746e0 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
74700 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
74720 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
74740 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
74760 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-
74780 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
747a0 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
747c0 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.(
747e0 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
74800 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).
74820 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
74840 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)...................
74860 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
74880 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))......
748a0 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))).
748c0 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
748e0 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....................
74900 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.........
74920 20 20 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.(
74940 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).....
74960 20 20 20 20 20 20 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
74980 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....................
749a0 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.......
749c0 20 20 20 20 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
749e0 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
74a00 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))..
74a20 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
74a40 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)))..
74a60 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
74a80 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
74aa0 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........................
74ac0 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.....................
74ae0 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))
74b00 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
74b20 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-
74b40 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
74b60 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
74b80 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......
74ba0 20 20 20 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...
74bc0 20 20 20 20 20 20 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
74be0 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))..(
74c00 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.()..
74c20 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
74c40 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
74c60 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
74c80 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..........
74ca0 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.......
74cc0 20 20 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
74ce0 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))..(
74d00 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.().
74d20 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
74d40 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
74d60 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
74d80 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.......
74da0 20 20 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....
74dc0 20 20 20 20 20 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
74de0 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))
74e00 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.
74e20 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
74e40 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
74e60 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
74e80 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.........
74ea0 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......
74ec0 20 20 20 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-
74ee0 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
74f00 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-
74f20 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
74f40 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
74f60 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)....
74f80 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
74fa0 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.............
74fc0 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..........
74fe0 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
75000 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)))....
75020 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
75040 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
75060 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
75080 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-
750a0 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
750c0 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)
750e0 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.
75100 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..........
75120 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.......
75140 20 20 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
75160 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-
75180 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
751a0 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-
751c0 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.
751e0 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
75200 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
75220 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).
75240 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.
75260 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)).
75280 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-
752a0 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)).........
752c0 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.
752e0 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.
75300 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
75320 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-
75340 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...
75360 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).........
75380 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)).
753a0 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..
753c0 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)
753e0 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.(
75400 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
75420 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
75440 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.......(
75460 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)).......(
75480 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)
754a0 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
754c0 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))
754e0 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)......
75500 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)
75520 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.().
75540 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)
75560 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
75580 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
755a0 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
755c0 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
755e0 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
75600 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
75620 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)...
75640 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))).....
75660 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
75680 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
756a0 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.(
756c0 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
756e0 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
75700 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......
75720 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))......
75740 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)
75760 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
75780 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
757a0 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)....
757c0 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
757e0 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
75800 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
75820 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
75840 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
75860 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).......
75880 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
758a0 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
758c0 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
758e0 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-
75900 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..........
75920 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
75940 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)))....
75960 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
75980 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
759a0 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
759c0 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
759e0 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
75a00 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
75a20 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
75a40 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
75a60 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.
75a80 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
75aa0 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.
75ac0 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
75ae0 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)."..
75b00 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
75b20 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
75b40 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))..........(
75b60 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................
75b80 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
75ba0 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..
75bc0 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
75be0 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
75c00 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.
75c20 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)).......(
75c40 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)))..
75c60 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
75c80 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.....................
75ca0 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..........
75cc0 20 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.(-
75ce0 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).......................
75d00 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)).....
75d20 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).
75d40 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
75d60 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
75d80 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
75da0 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
75dc0 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
75de0 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
75e00 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)
75e20 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.
75e40 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)).
75e60 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
75e80 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
75ea0 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)..........
75ec0 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".
75ee0 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
75f00 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
75f20 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
75f40 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
75f60 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))......
75f80 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))
75fa0 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-
75fc0 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)..
75fe0 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)......
76000 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
76020 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
76040 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
76060 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
76080 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
760a0 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
760c0 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
760e0 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
76100 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).
76120 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
76140 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
76160 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.......(
76180 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-
761a0 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.(=.
761c0 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-
761e0 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).....
76200 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
76220 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
76240 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
76260 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
76280 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
762a0 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
762c0 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
762e0 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
76300 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
76320 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
76340 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.
76360 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).....
76380 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
763a0 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
763c0 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)......
763e0 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
76400 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
76420 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
76440 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-
76460 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......
76480 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
764a0 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.
764c0 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.
764e0 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.(
76500 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)).........
76520 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
76540 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))......
76560 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)...........(
76580 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.
765a0 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
765c0 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
765e0 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).......
76600 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
76620 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
76640 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)))
76660 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
76680 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
766a0 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.
766c0 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
766e0 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
76700 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.
76720 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
76740 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
76760 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.
76780 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.
767a0 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
767c0 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
767e0 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.
76800 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-
76820 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
76840 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
76860 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))..
76880 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)
768a0 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-
768c0 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")).....
768e0 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)
76900 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.
76920 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
76940 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
76960 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))).......(
76980 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.
769a0 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
769c0 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.
769e0 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....
76a00 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
76a20 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
76a40 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)...........
76a60 20 20 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.(
76a80 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
76aa0 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)...
76ac0 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
76ae0 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
76b00 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
76b20 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-
76b40 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
76b60 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
76b80 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
76ba0 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
76bc0 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")........
76be0 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-
76c00 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)...
76c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
76c40 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
76c60 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)..............................
76c80 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)).....
76ca0 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
76cc0 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)).....
76ce0 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
76d00 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.......
76d20 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
76d40 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
76d60 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)...........
76d80 20 20 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.(
76da0 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
76dc0 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)...
76de0 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
76e00 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
76e20 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
76e40 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
76e60 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............................
76e80 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
76ea0 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)).
76ec0 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
76ee0 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.
76f00 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))...
76f20 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.(
76f40 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.
76f60 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
76f80 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
76fa0 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.
76fc0 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
76fe0 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)....
77000 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
77020 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))........
77040 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-
77060 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
77080 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).....
770a0 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
770c0 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))............
770e0 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.
77100 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
77120 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
77140 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)....................(
77160 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
77180 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.....
771a0 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
771c0 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).....................
771e0 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)
77200 0a 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.(=
77220 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))))))...
77240 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.
77260 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)))..
77280 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
772a0 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
772c0 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))
772e0 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.
77300 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
77320 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
77340 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
77360 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)............
77380 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'
773a0 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
773c0 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-
773e0 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
77400 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
77420 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...
77440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
77460 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..................
77480 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
774a0 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
774c0 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)).....
774e0 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
77500 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
77520 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
77540 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
77560 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
77580 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...............
775a0 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).....
775c0 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
775e0 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)).............
77600 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...
77620 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
77640 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
77660 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)..........
77680 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
776a0 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
776c0 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)).......
776e0 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
77700 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.................
77720 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))......
77740 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-
77760 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-
77780 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
777a0 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)
777c0 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.
777e0 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
77800 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
77820 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
77840 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))).
77860 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
77880 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.
778a0 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)
778c0 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
778e0 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
77900 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))).....
77920 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
77940 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
77960 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
77980 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.(
779a0 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)
779c0 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
779e0 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
77a00 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.
77a20 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-
77a40 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
77a60 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..
77a80 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.
77aa0 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))..
77ac0 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
77ae0 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
77b00 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
77b20 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
77b40 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.
77b60 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
77b80 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
77ba0 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
77bc0 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
77be0 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.....
77c00 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
77c20 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
77c40 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.(=
77c60 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)).
77c80 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
77ca0 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)))........((=.
77cc0 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).......
77ce0 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
77d00 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
77d20 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
77d40 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
77d60 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
77d80 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)))........
77da0 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.
77dc0 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)))....
77de0 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-
77e00 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
77e20 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.
77e40 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))...
77e60 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)))...
77e80 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)..
77ea0 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
77ec0 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
77ee0 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-
77f00 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.
77f20 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
77f40 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)
77f60 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
77f80 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
77fa0 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
77fc0 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-
77fe0 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)))
78000 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
78020 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).
78040 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
78060 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
78080 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-
780a0 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
780c0 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...............................
780e0 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
78100 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)..............
78120 20 20 20 20 20 20 20 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 ...............................:
78140 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....................
78160 20 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
78180 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
781a0 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).
781c0 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
781e0 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
78200 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.=
78220 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.`
78240 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
78260 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
78280 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)
782a0 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
782c0 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
782e0 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-
78300 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
78320 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
78340 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
78360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
78380 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.............
783a0 20 20 20 20 20 20 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
783c0 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....................
783e0 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
78400 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.
78420 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
78440 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)..
78460 20 20 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
78480 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))....
784a0 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
784c0 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
784e0 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
78500 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
78520 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)))....
78540 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.
78560 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
78580 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
785a0 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
785c0 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.`
785e0 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
78600 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
78620 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).
78640 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))
78660 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.
78680 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").........
786a0 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)
786c0 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
786e0 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..............
78700 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
78720 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
78740 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.............
78760 20 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
78780 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)................
787a0 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
787c0 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)...................
787e0 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-
78800 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
78820 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.........
78840 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
78860 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)................
78880 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
788a0 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
788c0 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)
788e0 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
78900 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
78920 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)))..
78940 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.(
78960 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
78980 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-
789a0 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
789c0 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........
789e0 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
78a00 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.....
78a20 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
78a40 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)).....
78a60 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
78a80 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...........................
78aa0 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...............
78ac0 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
78ae0 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
78b00 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
78b20 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
78b40 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
78b60 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.
78b80 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))......
78ba0 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
78bc0 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)......
78be0 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
78c00 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
78c20 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
78c40 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)
78c60 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
78c80 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.
78ca0 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
78cc0 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."...
78ce0 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).....
78d00 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-
78d20 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
78d40 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.
78d60 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
78d80 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)...
78da0 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).......
78dc0 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.
78de0 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
78e00 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
78e20 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
78e40 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-
78e60 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")...
78e80 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
78ea0 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).........
78ec0 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
78ee0 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.................
78f00 20 20 20 20 20 20 20 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 ...............................:
78f20 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).....
78f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
78f60 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..........
78f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
78fa0 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
78fc0 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
78fe0 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)...........
79000 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.
79020 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
79040 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).........
79060 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
79080 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
790a0 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
790c0 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
790e0 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)........
79100 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
79120 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
79140 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
79160 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.......
79180 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
791a0 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
791c0 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
791e0 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)
79200 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)).......
79220 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-
79240 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)))
79260 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,.
79280 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
792a0 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
792c0 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
792e0 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
79300 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::*'
79320 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.........((=
79340 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
79360 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
79380 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
793a0 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"
793c0 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
793e0 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-
79400 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
79420 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 )...............................
79440 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)
79460 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
79480 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.
794a0 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).......
794c0 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
794e0 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...............................
79500 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).
79520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
79540 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)))
79560 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
79580 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.
795a0 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.
795c0 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
795e0 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
79600 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
79620 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
79640 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
79660 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.(
79680 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))..
796a0 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
796c0 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
796e0 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
79700 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).
79720 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
79740 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:.@
79760 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]..
79780 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
797a0 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-
797c0 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
797e0 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)..
79800 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-
79820 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-
79840 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
79860 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
79880 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
798a0 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
798c0 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
798e0 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-
79900 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
79920 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
79940 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.
79960 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
79980 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.`
799a0 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
799c0 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
799e0 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
79a00 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
79a20 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.`..
79a40 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
79a60 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
79a80 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,.
79aa0 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.::...
79ac0 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
79ae0 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
79b00 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
79b20 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
79b40 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)))......
79b60 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-
79b80 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-
79ba0 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
79bc0 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
79be0 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
79c00 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.........
79c20 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
79c40 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
79c60 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
79c80 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
79ca0 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)......
79cc0 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
79ce0 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
79d00 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)...
79d20 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
79d40 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."*"))).........
79d60 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]........
79d80 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
79da0 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
79dc0 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)))........
79de0 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
79e00 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")
79e20 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
79e40 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)).........
79e60 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...........
79e80 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
79ea0 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
79ec0 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...............................
79ee0 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
79f00 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)................
79f20 20 20 20 20 20 20 20 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 ...............................:
79f40 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...................
79f60 20 20 20 20 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
79f80 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................
79fa0 20 20 20 20 20 20 20 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 ...............................:
79fc0 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
79fe0 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))))))..
7a000 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
7a020 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-
7a040 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
7a060 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
7a080 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],
7a0a0 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
7a0c0 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))..........
7a0e0 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
7a100 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)
7a120 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
7a140 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
7a160 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
7a180 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
7a1a0 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)...............
7a1c0 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)))...
7a1e0 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.......
7a200 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
7a220 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....................
7a240 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
7a260 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).........................
7a280 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
7a2a0 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..........................
7a2c0 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
7a2e0 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...........................
7a300 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..
7a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7a340 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.............
7a360 20 20 20 20 20 20 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
7a380 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)...........
7a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7a3c0 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))).......
7a3e0 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
7a400 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
7a420 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.(
7a440 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))....
7a460 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
7a480 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.()...
7a4a0 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
7a4c0 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
7a4e0 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
7a500 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
7a520 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.
7a540 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
7a560 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
7a580 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......(
7a5a0 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
7a5c0 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
7a5e0 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
7a600 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.
7a620 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)).....
7a640 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
7a660 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)......
7a680 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
7a6a0 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
7a6c0 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))......(
7a6e0 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-
7a700 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)))...
7a720 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
7a740 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)
7a760 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)......
7a780 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-
7a7a0 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))......((
7a7c0 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-
7a7e0 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
7a800 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
7a820 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
7a840 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-
7a860 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
7a880 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..
7a8a0 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
7a8c0 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)...........
7a8e0 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
7a900 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
7a920 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")).
7a940 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-
7a960 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
7a980 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
7a9a0 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
7a9c0 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
7a9e0 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
7aa00 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))..
7aa20 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
7aa40 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
7aa60 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
7aa80 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
7aaa0 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)).
7aac0 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
7aae0 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......
7ab00 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
7ab20 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........................
7ab40 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)..
7ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7ab80 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
7aba0 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)..............................
7abc0 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
7abe0 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
7ac00 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))))......((
7ac20 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)...........(=.
7ac40 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
7ac60 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
7ac80 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))...
7aca0 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
7acc0 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)
7ace0 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
7ad00 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.
7ad20 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
7ad40 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)................
7ad60 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)........
7ad80 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
7ada0 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.......
7adc0 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
7ade0 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.............
7ae00 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.......
7ae20 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
7ae40 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
7ae60 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").........(
7ae80 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)))......((=.
7aea0 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
7aec0 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").....
7aee0 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))......((=
7af00 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
7af20 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
7af40 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
7af60 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
7af80 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-
7afa0 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
7afc0 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
7afe0 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.
7b000 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
7b020 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
7b040 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
7b060 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").......(
7b080 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
7b0a0 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.()..
7b0c0 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
7b0e0 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
7b100 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
7b120 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
7b140 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-
7b160 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-
7b180 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
7b1a0 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")....
7b1c0 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
7b1e0 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
7b200 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))..
7b220 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))..
7b240 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
7b260 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..................
7b280 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
7b2a0 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)......
7b2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7b2e0 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
7b300 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)..
7b320 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
7b340 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
7b360 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)
7b380 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
7b3a0 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..................
7b3c0 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
7b3e0 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
7b400 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.
7b420 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
7b440 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.......
7b460 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.
7b480 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'?.............
7b4a0 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))........
7b4c0 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))...
7b4e0 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-
7b500 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
7b520 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
7b540 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
7b560 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
7b580 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...
7b5a0 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
7b5c0 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
7b5e0 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
7b600 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
7b620 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))).
7b640 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
7b660 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
7b680 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)))
7b6a0 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
7b6c0 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
7b6e0 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
7b700 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
7b720 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))))..(
7b740 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
7b760 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
7b780 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
7b7a0 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))
7b7c0 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
7b7e0 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
7b800 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
7b820 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...
7b840 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))...
7b860 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
7b880 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)......
7b8a0 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
7b8c0 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
7b8e0 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
7b900 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
7b920 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
7b940 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
7b960 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
7b980 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
7b9a0 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"........................
7b9c0 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
7b9e0 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)).........(
7ba00 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...............
7ba20 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
7ba40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7ba60 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
7ba80 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 )...............................
7baa0 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))
7bac0 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-
7bae0 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
7bb00 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
7bb20 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
7bb40 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
7bb60 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"))......
7bb80 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
7bba0 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
7bbc0 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)).........(
7bbe0 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)......
7bc00 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
7bc20 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)))..
7bc40 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
7bc60 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)..
7bc80 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
7bca0 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
7bcc0 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
7bce0 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
7bd00 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'
7bd20 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
7bd40 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
7bd60 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............
7bd80 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.
7bda0 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
7bdc0 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.
7bde0 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-
7be00 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
7be20 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..
7be40 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
7be60 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
7be80 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"))...
7bea0 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
7bec0 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
7bee0 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)).............
7bf00 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.........
7bf20 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.(
7bf40 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
7bf60 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)...................
7bf80 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
7bfa0 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..............
7bfc0 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)))........
7bfe0 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)...........(
7c000 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
7c020 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
7c040 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
7c060 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
7c080 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
7c0a0 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
7c0c0 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)...
7c0e0 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
7c100 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
7c120 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
7c140 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
7c160 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
7c180 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
7c1a0 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
7c1c0 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
7c1e0 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)...
7c200 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)
7c220 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
7c240 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-
7c260 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.
7c280 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)
7c2a0 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
7c2c0 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.
7c2e0 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-
7c300 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
7c320 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
7c340 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-
7c360 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
7c380 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
7c3a0 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
7c3c0 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
7c3e0 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.....
7c400 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
7c420 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))
7c440 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
7c460 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
7c480 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
7c4a0 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))))....
7c4c0 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
7c4e0 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)))...
7c500 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
7c520 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
7c540 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
7c560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7c580 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)
7c5a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7c5c0 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..............
7c5e0 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.(
7c600 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).................
7c620 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
7c640 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)))..
7c660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7c680 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)).....;;
7c6a0 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
7c6c0 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
7c6e0 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
7c700 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
7c720 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
7c740 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
7c760 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
7c780 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
7c7a0 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)...
7c7c0 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
7c7e0 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
7c800 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
7c820 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
7c840 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
7c860 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
7c880 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-
7c8a0 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)....
7c8c0 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
7c8e0 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
7c900 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
7c920 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
7c940 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-
7c960 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
7c980 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.
7c9a0 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
7c9c0 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
7c9e0 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)..
7ca00 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
7ca20 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
7ca40 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).....(
7ca60 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...
7ca80 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).......
7caa0 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-
7cac0 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
7cae0 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)))........
7cb00 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)....
7cb20 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)....
7cb40 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.
7cb60 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
7cb80 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
7cba0 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)).
7cbc0 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.(
7cbe0 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)).........
7cc00 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)))......
7cc20 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-
7cc40 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
7cc60 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......
7cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7cca0 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)......
7ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7cce0 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....................
7cd00 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
7cd20 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).......................
7cd40 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
7cd60 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)......................
7cd80 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))....
7cda0 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.
7cdc0 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
7cde0 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
7ce00 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
7ce20 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
7ce40 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
7ce60 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
7ce80 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-
7cea0 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
7cec0 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
7cee0 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
7cf00 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
7cf20 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
7cf40 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.
7cf60 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
7cf80 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
7cfa0 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
7cfc0 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.
7cfe0 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
7d000 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=.(
7d020 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"
7d040 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.............(
7d060 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................
7d080 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
7d0a0 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.........
7d0c0 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-
7d0e0 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
7d100 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")))..
7d120 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
7d140 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.
7d160 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
7d180 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
7d1a0 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
7d1c0 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))..
7d1e0 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
7d200 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
7d220 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
7d240 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........
7d260 20 20 20 20 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
7d280 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))...
7d2a0 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)..
7d2c0 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
7d2e0 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
7d300 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"))).....;;
7d320 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
7d340 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.....
7d360 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
7d380 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
7d3a0 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
7d3c0 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
7d3e0 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.
7d400 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
7d420 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
7d440 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)........
7d460 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-
7d480 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
7d4a0 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
7d4c0 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
7d4e0 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
7d500 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.
7d520 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
7d540 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
7d560 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.(
7d580 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)))
7d5a0 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
7d5c0 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).(-.
7d5e0 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
7d600 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
7d620 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
7d640 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
7d660 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.
7d680 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
7d6a0 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
7d6c0 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).
7d6e0 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
7d700 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.....
7d720 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)
7d740 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
7d760 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
7d780 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))..(
7d7a0 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.()...
7d7c0 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
7d7e0 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
7d800 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"))..
7d820 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
7d840 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
7d860 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
7d880 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
7d8a0 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
7d8c0 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
7d8e0 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
7d900 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)....
7d920 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
7d940 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
7d960 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)...........
7d980 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)
7d9a0 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.
7d9c0 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
7d9e0 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
7da00 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).....
7da20 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
7da40 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
7da60 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
7da80 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
7daa0 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....].{.
7dac0 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
7dae0 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).
7db00 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).
7db20 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-
7db40 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")....
7db60 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
7db80 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
7dba0 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
7dbc0 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)).......
7dbe0 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)...........
7dc00 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
7dc20 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.
7dc40 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")....
7dc60 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
7dc80 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
7dca0 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......
7dcc0 20 20 20 20 20 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
7dce0 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).........
7dd00 20 20 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.
7dd20 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............................
7dd40 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...............
7dd60 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
7dd80 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............................
7dda0 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
7ddc0 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........
7dde0 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
7de00 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.
7de20 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
7de40 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
7de60 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
7de80 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
7dea0 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
7dec0 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............................
7dee0 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
7df00 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)..........................
7df20 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)))...
7df40 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
7df60 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
7df80 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
7dfa0 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
7dfc0 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
7dfe0 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
7e000 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
7e020 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
7e040 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
7e060 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).
7e080 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.
7e0a0 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}.
7e0c0 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-
7e0e0 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)))......
7e100 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
7e120 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
7e140 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
7e160 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
7e180 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
7e1a0 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
7e1c0 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
7e1e0 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))........((
7e200 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).........(
7e220 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)))))))
7e240 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
7e260 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
7e280 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)
7e2a0 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).........(
7e2c0 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
7e2e0 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
7e300 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
7e320 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
7e340 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.
7e360 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
7e380 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
7e3a0 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
7e3c0 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
7e3e0 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
7e400 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.
7e420 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.
7e440 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
7e460 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
7e480 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
7e4a0 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
7e4c0 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
7e4e0 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))).
7e500 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
7e520 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.
7e540 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............
7e560 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
7e580 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
7e5a0 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
7e5c0 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.....
7e5e0 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
7e600 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=."
7e620 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
7e640 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
7e660 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).........(
7e680 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.(
7e6a0 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)))......
7e6c0 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
7e6e0 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
7e700 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)))......
7e720 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
7e740 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)....................(
7e760 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)..................
7e780 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
7e7a0 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.
7e7c0 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
7e7e0 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
7e800 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
7e820 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...............
7e840 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))
7e860 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
7e880 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)...........
7e8a0 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..........
7e8c0 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
7e8e0 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-
7e900 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)))).......;;
7e920 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
7e940 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
7e960 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
7e980 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)...............
7e9a0 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-
7e9c0 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
7e9e0 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.....
7ea00 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.
7ea20 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))........
7ea40 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
7ea60 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
7ea80 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.(
7eaa0 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)....
7eac0 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
7eae0 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)..........
7eb00 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)).......
7eb20 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.........
7eb40 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
7eb60 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
7eb80 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
7eba0 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).......
7ebc0 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
7ebe0 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
7ec00 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
7ec20 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
7ec40 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
7ec60 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))......
7ec80 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).........
7eca0 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
7ecc0 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.
7ece0 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.
7ed00 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
7ed20 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
7ed40 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))..
7ed60 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)........
7ed80 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
7eda0 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
7edc0 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
7ede0 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"..............
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 20 20 20 70 6f ..............................po
7ee20 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)))........;;
7ee40 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
7ee60 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...........
7ee80 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)
7eea0 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...........
7eec0 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
7eee0 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
7ef00 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)))........(
7ef20 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
7ef40 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-
7ef60 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.......
7ef80 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))))......
7efa0 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.
7efc0 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.....
7efe0 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
7f000 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
7f020 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
7f040 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")))....
7f060 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
7f080 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
7f0a0 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))).........
7f0c0 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)..........
7f0e0 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.................(
7f100 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
7f120 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
7f140 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
7f160 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
7f180 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.(
7f1a0 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
7f1c0 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
7f1e0 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...........
7f200 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.(
7f220 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))..
7f240 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......
7f260 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
7f280 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
7f2a0 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
7f2c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7f2e0 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
7f300 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))......................
7f320 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
7f340 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...................
7f360 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
7f380 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)....
7f3a0 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
7f3c0 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
7f3e0 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......................
7f400 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
7f420 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).......................
7f440 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-
7f460 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)................
7f480 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
7f4a0 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
7f4c0 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))
7f4e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7f500 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-
7f520 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
7f540 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
7f560 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 ))).............................
7f580 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
7f5a0 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))........................
7f5c0 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
7f5e0 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))..........
7f600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7f620 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))
7f640 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
7f660 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."
7f680 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"....
7f6a0 20 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
7f6c0 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........................
7f6e0 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
7f700 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))..............
7f720 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
7f740 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))))......
7f760 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.
7f780 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)))....
7f7a0 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
7f7c0 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")...
7f7e0 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
7f800 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
7f820 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).
7f840 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
7f860 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.
7f880 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,.
7f8a0 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
7f8c0 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
7f8e0 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
7f900 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
7f920 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
7f940 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)............(>=.
7f960 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))......
7f980 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)
7f9a0 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)).......
7f9c0 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
7f9e0 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
7fa00 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))
7fa20 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
7fa40 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))......
7fa60 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
7fa80 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.(=
7faa0 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)...
7fac0 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
7fae0 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
7fb00 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-
7fb20 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
7fb40 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
7fb60 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
7fb80 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.
7fba0 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
7fbc0 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))..........
7fbe0 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))
7fc00 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
7fc20 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))).....
7fc40 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)..
7fc60 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
7fc80 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).................
7fca0 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
7fcc0 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
7fce0 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)).....
7fd00 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)
7fd20 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.
7fd40 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
7fd60 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..................
7fd80 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-
7fda0 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))....................
7fdc0 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-
7fde0 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
7fe00 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)..............
7fe20 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))
7fe40 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
7fe60 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
7fe80 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
7fea0 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
7fec0 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.
7fee0 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
7ff00 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
7ff20 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
7ff40 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
7ff60 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:.{
7ff80 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
7ffa0 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)).
7ffc0 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
7ffe0 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]().{
80000 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]().{...
80020 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]().{...}}..
80040 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)..........(
80060 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))...
80080 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
800a0 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
800c0 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-
800e0 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
80100 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
80120 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'}..
80140 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
80160 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.
80180 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
801a0 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))
801c0 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.........
801e0 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
80200 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
80220 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
80240 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"))))
80260 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
80280 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
802a0 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
802c0 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
802e0 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
80300 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
80320 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..........(
80340 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))........
80360 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..
80380 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.
803a0 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}...
803c0 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
803e0 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...
80400 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-
80420 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)).............
80440 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
80460 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
80480 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))...
804a0 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-
804c0 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)).................
804e0 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)))).....
80500 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-
80520 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
80540 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.
80560 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).............
80580 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..............
805a0 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..............
805c0 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
805e0 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
80600 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)......
80620 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
80640 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
80660 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
80680 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
806a0 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
806c0 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
806e0 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
80700 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
80720 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
80740 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
80760 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
80780 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...
807a0 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.......
807c0 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
807e0 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.....
80800 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
80820 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)...................
80840 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))
80860 0a 20 20 20 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)
80880 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..
808a0 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...
808c0 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))
808e0 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
80900 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))))
80920 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.(
80940 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)..."
80960 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
80980 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
809a0 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(...).
809c0 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(
809e0 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
80a00 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
80a20 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
80a40 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(
80a60 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
80a80 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
80aa0 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
80ac0 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
80ae0 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
80b00 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.
80b20 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
80b40 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.
80b60 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
80b80 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)....
80ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80bc0 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).........
80be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80c00 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)))).......
80c20 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))........
80c40 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
80c60 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)))....
80c80 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.
80ca0 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"))..........
80cc0 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
80ce0 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................
80d00 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........
80d20 20 20 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
80d40 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)......................
80d60 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
80d80 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).
80da0 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.(
80dc0 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)))..
80de0 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)..
80e00 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
80e20 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..................
80e40 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
80e60 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)..........................
80e80 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........
80ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
80ec0 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
80ee0 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
80f00 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
80f20 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
80f40 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
80f60 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,.
80f80 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
80fa0 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
80fc0 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
80fe0 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))......
81000 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)
81020 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........
81040 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)
81060 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)).......
81080 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
810a0 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-
810c0 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)...
810e0 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
81100 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.......................
81120 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............
81140 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
81160 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
81180 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
811a0 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))).
811c0 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
811e0 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.
81200 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
81220 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
81240 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
81260 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.
81280 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
812a0 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
812c0 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.(
812e0 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)
81300 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
81320 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
81340 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..............
81360 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)........
81380 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
813a0 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,...
813c0 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
813e0 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)).......
81400 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
81420 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)))...
81440 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.
81460 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
81480 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
814a0 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.
814c0 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
814e0 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
81500 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
81520 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
81540 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
81560 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...
81580 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).....
815a0 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
815c0 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..
815e0 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
81600 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
81620 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
81640 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
81660 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
81680 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
816a0 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)....
816c0 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
816e0 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
81700 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
81720 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
81740 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
81760 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)))).........;;.
81780 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
817a0 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)).........
817c0 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
817e0 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
81800 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..........................
81820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
81840 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............
81860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
81880 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-
818a0 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)....................
818c0 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
818e0 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))....
81900 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.
81920 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
81940 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
81960 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
81980 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
819a0 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.....
819c0 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
819e0 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
81a00 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)).
81a20 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
81a40 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)).....
81a60 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
81a80 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
81aa0 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
81ac0 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.
81ae0 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
81b00 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
81b20 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.;
81b40 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
81b60 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'...;;
81b80 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'
81ba0 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
81bc0 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
81be0 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
81c00 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
81c20 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
81c40 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
81c60 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
81c80 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.
81ca0 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
81cc0 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.
81ce0 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
81d00 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.
81d20 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.
81d40 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
81d60 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.;;.
81d80 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-
81da0 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
81dc0 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.
81de0 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
81e00 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
81e20 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.
81e40 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
81e60 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
81e80 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.
81ea0 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
81ec0 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.()...
81ee0 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
81f00 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)
81f20 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)))
81f40 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
81f60 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
81f80 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)...
81fa0 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
81fc0 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
81fe0 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
82000 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
82020 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-
82040 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
82060 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."[])}
82080 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
820a0 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
820c0 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).
820e0 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
82100 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-
82120 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
82140 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
82160 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."
82180 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
821a0 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......
821c0 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
821e0 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))...........
82200 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)).....;.
82220 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...........
82240 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
82260 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........
82280 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))
822a0 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.
822c0 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
822e0 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
82300 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
82320 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
82340 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
82360 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
82380 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
823a0 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
823c0 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).
823e0 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.
82400 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
82420 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
82440 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...........
82460 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
82480 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").......
824a0 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).?\())))).
824c0 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.
824e0 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
82500 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
82520 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
82540 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.".\
82560 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-.+:
82580 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.(
825a0 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
825c0 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
825e0 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
82600 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.
82620 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
82640 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.
82660 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
82680 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
826a0 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.
826c0 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
826e0 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
82700 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."
82720 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
82740 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-
82760 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).....
82780 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-
827a0 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'
827c0 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
827e0 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.........................(
82800 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..
82820 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
82840 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))))).
82860 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
82880 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..
828a0 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
828c0 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
828e0 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
82900 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
82920 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
82940 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.
82960 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
82980 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
829a0 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....
829c0 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.
829e0 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
82a00 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........................
82a20 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).......
82a40 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
82a60 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).........................
82a80 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)........
82aa0 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
82ac0 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
82ae0 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))...............
82b00 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
82b20 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
82b40 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.........
82b60 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
82b80 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
82ba0 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...........
82bc0 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..
82be0 20 20 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-
82c00 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).................
82c20 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)...
82c40 20 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
82c60 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)..................
82c80 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)).....
82ca0 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
82cc0 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
82ce0 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
82d00 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-
82d20 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.
82d40 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
82d60 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.......
82d80 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
82da0 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
82dc0 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
82de0 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).................
82e00 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))
82e20 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
82e40 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
82e60 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 -+".............................
82e80 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
82ea0 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
82ec0 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))..........
82ee0 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
82f00 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")...................
82f20 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)))).......
82f40 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
82f60 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)........
82f80 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))......
82fa0 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
82fc0 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
82fe0 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
83000 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.
83020 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
83040 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
83060 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.
83080 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
830a0 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
830c0 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
830e0 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
83100 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)).........
83120 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)
83140 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-
83160 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)....................
83180 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.......................
831a0 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)............
831c0 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
831e0 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.......
83200 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
83220 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...........................
83240 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))..
83260 20 20 20 20 20 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
83280 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).................
832a0 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).
832c0 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 ?,))............................
832e0 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))
83300 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.......
83320 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.
83340 20 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
83360 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)).
83380 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
833a0 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))).................
833c0 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)).........
833e0 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)).......
83400 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
83420 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
83440 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.
83460 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.
83480 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
834a0 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
834c0 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)................
834e0 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).......
83500 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
83520 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
83540 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))......
83560 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
83580 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))..........
835a0 20 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
835c0 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.............................
835e0 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
83600 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 )...............................
83620 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)).....
83640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
83660 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))).....................
83680 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)))).
836a0 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)..
836c0 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
836e0 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........
83700 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
83720 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
83740 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
83760 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
83780 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).'
837a0 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
837c0 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
837e0 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
83800 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
83820 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))........
83840 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
83860 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
83880 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
838a0 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)...........
838c0 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
838e0 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
83900 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)).....
83920 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,.
83940 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..........
83960 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
83980 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))
839a0 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
839c0 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
839e0 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.
83a00 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
83a20 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............;
83a40 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.
83a60 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....
83a80 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
83aa0 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
83ac0 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
83ae0 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..........
83b00 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..................;;.
83b20 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.
83b40 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.
83b60 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
83b80 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
83ba0 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
83bc0 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:
83be0 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.=>.
83c00 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
83c20 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
83c40 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.
83c60 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
83c80 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...........
83ca0 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
83cc0 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
83ce0 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
83d00 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
83d20 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
83d40 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.
83d60 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
83d80 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
83da0 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.......
83dc0 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
83de0 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.
83e00 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))))............;;
83e20 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
83e40 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...........(
83e60 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.......
83e80 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
83ea0 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
83ec0 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).................
83ee0 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
83f00 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
83f20 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))....................
83f40 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
83f60 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-
83f80 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
83fa0 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
83fc0 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...
83fe0 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-
84000 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
84020 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))....
84040 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
84060 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
84080 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
840a0 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
840c0 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.()..."
840e0 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
84100 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
84120 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
84140 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.
84160 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.
84180 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-*
841a0 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...........
841c0 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
841e0 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.
84200 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-*$")...........
84220 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)...........
84240 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))............
84260 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
84280 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.
842a0 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.
842c0 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
842e0 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
84300 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
84320 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
84340 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
84360 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
84380 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-
843a0 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
843c0 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
843e0 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......
84400 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
84420 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
84440 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...
84460 20 20 20 20 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
84480 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)...............
844a0 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)))).....;
844c0 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.
844e0 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
84500 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
84520 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)).
84540 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
84560 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
84580 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
845a0 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
845c0 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)))......
845e0 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
84600 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-
84620 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
84640 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.
84660 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
84680 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
846a0 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
846c0 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.
846e0 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
84700 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.
84720 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
84740 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
84760 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))..
84780 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.
847a0 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
847c0 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
847e0 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)...
84800 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
84820 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
84840 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.........
84860 20 20 20 20 20 20 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
84880 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
848a0 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.
848c0 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-
848e0 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)))).
84900 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
84920 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))).
84940 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-
84960 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)..
84980 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
849a0 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
849c0 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
849e0 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
84a00 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
84a20 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
84a40 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
84a60 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
84a80 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
84aa0 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
84ac0 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
84ae0 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
84b00 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
84b20 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
84b40 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-
84b60 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
84b80 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
84ba0 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
84bc0 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
84be0 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)
84c00 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
84c20 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
84c40 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
84c60 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
84c80 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
84ca0 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
84cc0 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
84ce0 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
84d00 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
84d20 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
84d40 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-
84d60 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
84d80 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
84da0 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
84dc0 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
84de0 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
84e00 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
84e20 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
84e40 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.'
84e60 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
84e80 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-
84ea0 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-
84ec0 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.'
84ee0 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))
84f00 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
84f20 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
84f40 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
84f60 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
84f80 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
84fa0 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-
84fc0 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.`
84fe0 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
85000 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
85020 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-
85040 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
85060 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-
85080 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
850a0 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
850c0 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).....
850e0 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)
85100 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
85120 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
85140 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).
85160 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
85180 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
851a0 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
851c0 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
851e0 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
85200 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
85220 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
85240 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-
85260 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
85280 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
852a0 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
852c0 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
852e0 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
85300 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))
85320 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...
85340 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).........
85360 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.
85380 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".......
853a0 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)..
853c0 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
853e0 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.
85400 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)))).......................
85420 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
85440 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.
85460 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*"))
85480 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
854a0 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
854c0 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
854e0 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))...................
85500 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
85520 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
85540 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.................
85560 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
85580 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))..
855a0 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
855c0 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
855e0 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
85600 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)............
85620 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).
85640 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)))
85660 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
85680 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
856a0 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
856c0 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
856e0 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
85700 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
85720 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...........
85740 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.........
85760 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
85780 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))........
857a0 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..............
857c0 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"...........
857e0 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
85800 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
85820 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)...............
85840 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
85860 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
85880 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-
858a0 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
858c0 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
858e0 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
85900 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
85920 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-
85940 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
85960 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
85980 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
859a0 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."
859c0 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).....
859e0 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
85a00 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
85a20 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-
85a40 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".#'
85a60 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).
85a80 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
85aa0 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
85ac0 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
85ae0 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"..."
85b00 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
85b20 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.
85b40 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
85b60 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
85b80 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
85ba0 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
85bc0 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
85be0 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
85c00 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
85c20 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
85c40 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)).....
85c60 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
85c80 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
85ca0 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
85cc0 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
85ce0 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
85d00 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
85d20 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.
85d40 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)
85d60 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
85d80 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).
85da0 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.
85dc0 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
85de0 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
85e00 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
85e20 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
85e40 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
85e60 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
85e80 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....(
85ea0 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-
85ec0 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.
85ee0 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
85f00 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
85f20 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
85f40 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
85f60 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
85f80 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
85fa0 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
85fc0 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
85fe0 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
86000 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
86020 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))).......
86040 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
86060 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).
86080 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).........
860a0 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
860c0 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
860e0 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
86100 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
86120 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
86140 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)........(
86160 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))..
86180 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
861a0 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
861c0 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
861e0 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-
86200 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
86220 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
86240 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-
86260 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
86280 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.
862a0 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-
862c0 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
862e0 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-
86300 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)
86320 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-
86340 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.
86360 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.
86380 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
863a0 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
863c0 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
863e0 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
86400 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
86420 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-
86440 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
86460 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
86480 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
864a0 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
864c0 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
864e0 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))...
86500 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
86520 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....(
86540 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-
86560 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
86580 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
865a0 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..............(/.(
865c0 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
865e0 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
86600 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
86620 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
86640 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
86660 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
86680 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-
866a0 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
866c0 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
866e0 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-
86700 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
86720 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
86740 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
86760 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-
86780 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
867a0 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).
867c0 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-
867e0 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))...
86800 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
86820 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
86840 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
86860 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
86880 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
868a0 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
868c0 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
868e0 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.
86900 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
86920 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
86940 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
86960 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))....
86980 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
869a0 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))...
869c0 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.
869e0 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
86a00 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
86a20 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
86a40 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
86a60 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
86a80 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.
86aa0 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
86ac0 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
86ae0 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
86b00 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
86b20 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
86b40 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
86b60 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
86b80 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.
86ba0 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
86bc0 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
86be0 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)
86c00 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
86c20 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
86c40 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
86c60 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
86c80 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-
86ca0 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.....
86cc0 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...
86ce0 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
86d00 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
86d20 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
86d40 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.
86d60 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
86d80 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
86da0 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
86dc0 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
86de0 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
86e00 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,.
86e20 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"
86e40 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.'
86e60 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-
86e80 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
86ea0 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
86ec0 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
86ee0 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
86f00 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
86f20 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
86f40 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).
86f60 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
86f80 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
86fa0 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
86fc0 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
86fe0 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)..
87000 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.....
87020 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
87040 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
87060 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
87080 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
870a0 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
870c0 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
870e0 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
87100 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
87120 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
87140 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-
87160 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
87180 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)))..
871a0 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
871c0 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:
871e0 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.
87200 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
87220 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
87240 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).
87260 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
87280 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
872a0 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
872c0 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
872e0 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)).........
87300 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
87320 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
87340 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.
87360 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
87380 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.
873a0 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
873c0 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
873e0 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............
87400 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
87420 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
87440 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
87460 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
87480 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.......
874a0 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
874c0 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
874e0 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
87500 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.
87520 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.
87540 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
87560 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
87580 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
875a0 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.
875c0 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
875e0 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
87600 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.
87620 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
87640 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
87660 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
87680 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)
876a0 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
876c0 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)
876e0 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
87700 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.
87720 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.
87740 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
87760 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
87780 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
877a0 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
877c0 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
877e0 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
87800 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
87820 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
87840 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
87860 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
87880 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
878a0 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
878c0 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)............
878e0 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)..........
87900 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
87920 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-
87940 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..............
87960 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
87980 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-
879a0 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.................
879c0 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...")).........
879e0 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..................
87a00 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
87a20 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...............
87a40 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..
87a60 20 20 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
87a80 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)...........................
87aa0 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.....
87ac0 20 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
87ae0 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.
87b00 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.......................
87b20 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.
87b40 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'.........
87b60 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
87b80 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.............
87ba0 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-
87bc0 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
87be0 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)..............................
87c00 20 20 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
87c20 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))).....................
87c40 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
87c60 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)...................
87c80 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
87ca0 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)................
87cc0 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
87ce0 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)..........................
87d00 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)......
87d20 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.(>=.
87d40 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)..........
87d60 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
87d80 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)))....
87da0 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)))).
87dc0 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...
87de0 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............
87e00 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
87e20 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.
87e40 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)......
87e60 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
87e80 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-
87ea0 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.................
87ec0 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
87ee0 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
87f00 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
87f20 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-
87f40 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
87f60 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...
87f80 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
87fa0 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.
87fc0 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.
87fe0 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
88000 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
88020 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
88040 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
88060 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
88080 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
880a0 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
880c0 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:..
880e0 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
88100 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
88120 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
88140 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
88160 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
88180 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
881a0 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).....
881c0 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
881e0 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)).........(
88200 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)
88220 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
88240 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-
88260 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
88280 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
882a0 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
882c0 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
882e0 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.
88300 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
88320 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
88340 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...........
88360 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
88380 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
883a0 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
883c0 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.............................
883e0 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))..
88400 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
88420 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
88440 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."%
88460 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"..................
88480 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)......
884a0 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
884c0 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
884e0 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
88500 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
88520 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
88540 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
88560 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
88580 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
885a0 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
885c0 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
885e0 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
88600 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'."...(
88620 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.....(
88640 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
88660 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.
88680 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
886a0 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.
886c0 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
886e0 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..
88700 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.
88720 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.
88740 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.................
88760 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
88780 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
887a0 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....................(>
887c0 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)....................(<=
887e0 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
88800 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
88820 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..........
88840 20 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
88860 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
88880 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
888a0 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
888c0 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)))))
888e0 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
88900 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
88920 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-
88940 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-
88960 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)..
88980 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
889a0 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
889c0 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
889e0 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
88a00 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
88a20 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
88a40 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)
88a60 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
88a80 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
88aa0 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..........
88ac0 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.
88ae0 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
88b00 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
88b20 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
88b40 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
88b60 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
88b80 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
88ba0 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
88bc0 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
88be0 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
88c00 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
88c20 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
88c40 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
88c60 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
88c80 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)).......(
88ca0 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
88cc0 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))))..(
88ce0 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.()..."
88d00 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
88d20 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."..
88d40 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))........
88d60 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
88d80 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
88da0 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
88dc0 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)........
88de0 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
88e00 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
88e20 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
88e40 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
88e60 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
88e80 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).....
88ea0 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
88ec0 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
88ee0 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
88f00 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
88f20 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
88f40 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.....;;
88f60 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
88f80 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.(
88fa0 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
88fc0 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.(
88fe0 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-
89000 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
89020 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))
89040 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-
89060 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
89080 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-
890a0 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
890c0 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
890e0 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
89100 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
89120 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
89140 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
89160 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))))..
89180 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
891a0 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
891c0 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
891e0 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
89200 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
89220 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
89240 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
89260 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)....
89280 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)))...
892a0 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
892c0 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
892e0 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
89300 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
89320 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-
89340 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).....
89360 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
89380 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")).............
893a0 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
893c0 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
893e0 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")...
89400 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
89420 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)).....................
89440 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
89460 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))...........................(
89480 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
894a0 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
894c0 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
894e0 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)))........................
89500 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
89520 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)))......................
89540 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
89560 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)))))..................
89580 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.....................
895a0 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)...........
895c0 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
895e0 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.............................
89600 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).............
89620 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
89640 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).....................
89660 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.
89680 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
896a0 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))))..(
896c0 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.().
896e0 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
89700 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
89720 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
89740 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))..
89760 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.
89780 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
897a0 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._
897c0 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.
897e0 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.
89800 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
89820 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
89840 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
89860 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
89880 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).......
898a0 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
898c0 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........
898e0 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.
89900 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
89920 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...........
89940 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
89960 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.'
89980 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
899a0 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
899c0 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)).......
899e0 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))
89a00 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
89a20 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
89a40 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
89a60 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
89a80 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.`
89aa0 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
89ac0 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
89ae0 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.((
89b00 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)))....
89b20 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
89b40 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
89b60 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
89b80 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-
89ba0 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).
89bc0 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")))......;;.
89be0 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.
89c00 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).....
89c20 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.
89c40 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.......
89c60 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
89c80 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
89ca0 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
89cc0 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
89ce0 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
89d00 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
89d20 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
89d40 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
89d60 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))).
89d80 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
89da0 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"))....
89dc0 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."+
89de0 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).....(
89e00 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
89e20 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)...
89e40 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
89e60 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-
89e80 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
89ea0 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
89ec0 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
89ee0 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)..
89f00 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
89f20 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
89f40 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
89f60 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.....
89f80 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."\\*[^/]")......
89fa0 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
89fc0 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
89fe0 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
8a000 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
8a020 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-
8a040 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."
8a060 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.....
8a080 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)))
8a0a0 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.
8a0c0 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:...
8a0e0 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.
8a100 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
8a120 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
8a140 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...........
8a160 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))
8a180 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
8a1a0 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
8a1c0 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
8a1e0 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
8a200 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
8a220 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
8a240 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............;
8a260 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./*.
8a280 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.).....
8a2a0 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
8a2c0 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.*....
8a2e0 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........
8a300 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).................
8a320 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.................
8a340 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")
8a360 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
8a380 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
8a3a0 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"
8a3c0 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
8a3e0 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."*.")
8a400 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
8a420 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
8a440 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").....
8a460 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).........
8a480 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
8a4a0 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
8a4c0 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
8a4e0 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
8a500 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
8a520 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
8a540 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
8a560 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
8a580 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
8a5a0 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
8a5c0 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.
8a5e0 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
8a600 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."//"
8a620 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."/.\
8a640 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)
8a660 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-
8a680 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
8a6a0 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
8a6c0 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
8a6e0 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
8a700 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")..........
8a720 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
8a740 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.......(
8a760 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))))))..(
8a780 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
8a7a0 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
8a7c0 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
8a7e0 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).......(
8a800 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").....(
8a820 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
8a840 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
8a860 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
8a880 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
8a8a0 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
8a8c0 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-
8a8e0 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
8a900 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
8a920 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
8a940 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
8a960 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
8a980 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
8a9a0 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
8a9c0 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
8a9e0 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
8aa00 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
8aa20 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.
8aa40 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
8aa60 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
8aa80 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..
8aaa0 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.
8aac0 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
8aae0 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
8ab00 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)......
8ab20 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)))
8ab40 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
8ab60 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-
8ab80 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).
8aba0 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
8abc0 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
8abe0 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
8ac00 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
8ac20 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
8ac40 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
8ac60 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
8ac80 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.((
8aca0 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)))......
8acc0 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-
8ace0 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
8ad00 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...........
8ad20 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
8ad40 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
8ad60 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
8ad80 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
8ada0 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.
8adc0 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
8ade0 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
8ae00 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.
8ae20 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
8ae40 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..
8ae60 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
8ae80 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
8aea0 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
8aec0 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
8aee0 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
8af00 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
8af20 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))))......
8af40 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..
8af60 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
8af80 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
8afa0 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
8afc0 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
8afe0 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..
8b000 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).(
8b020 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
8b040 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
8b060 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
8b080 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
8b0a0 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
8b0c0 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.(
8b0e0 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
8b100 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
8b120 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
8b140 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
8b160 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)....
8b180 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
8b1a0 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.
8b1c0 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
8b1e0 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
8b200 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.
8b220 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........;;./*.....*/.
8b240 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
8b260 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
8b280 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
8b2a0 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.....
8b2c0 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
8b2e0 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))))...........
8b300 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
8b320 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
8b340 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
8b360 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
8b380 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.
8b3a0 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).
8b3c0 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-/
8b3e0 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
8b400 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
8b420 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
8b440 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)).........
8b460 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
8b480 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)......................
8b4a0 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
8b4c0 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
8b4e0 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
8b500 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).
8b520 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
8b540 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
8b560 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
8b580 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.
8b5a0 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
8b5c0 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
8b5e0 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.
8b600 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
8b620 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
8b640 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
8b660 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
8b680 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))...
8b6a0 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
8b6c0 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
8b6e0 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
8b700 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
8b720 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))....
8b740 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
8b760 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
8b780 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.....
8b7a0 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
8b7c0 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)))..........
8b7e0 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
8b800 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......
8b820 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
8b840 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)))..........
8b860 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
8b880 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).......
8b8a0 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
8b8c0 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
8b8e0 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-.
8b900 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.
8b920 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
8b940 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
8b960 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
8b980 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."..
8b9a0 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.(
8b9c0 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
8b9e0 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
8ba00 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).(
8ba20 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.
8ba40 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
8ba60 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
8ba80 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."...
8baa0 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
8bac0 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
8bae0 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
8bb00 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)...
8bb20 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...
8bb40 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)...
8bb60 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)))..(
8bb80 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.()
8bba0 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
8bbc0 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
8bbe0 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
8bc00 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
8bc20 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."...(
8bc40 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
8bc60 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-
8bc80 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
8bca0 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).
8bcc0 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
8bce0 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
8bd00 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
8bd20 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
8bd40 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
8bd60 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
8bd80 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-
8bda0 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)
8bdc0 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.
8bde0 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
8be00 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)
8be20 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
8be40 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.(
8be60 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))).....
8be80 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
8bea0 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).
8bec0 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
8bee0 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))))).
8bf00 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
8bf20 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
8bf40 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
8bf60 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
8bf80 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
8bfa0 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
8bfc0 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)).
8bfe0 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-
8c000 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)))........
8c020 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
8c040 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)))....
8c060 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.'
8c080 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
8c0a0 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)))...
8c0c0 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
8c0e0 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).
8c100 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-
8c120 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.(
8c140 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).'
8c160 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..;./
8c180 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))..;./*...
8c1a0 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
8c1c0 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
8c1e0 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))...
8c200 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.
8c220 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
8c240 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
8c260 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
8c280 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
8c2a0 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].
8c2c0 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
8c2e0 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
8c300 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
8c320 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.......
8c340 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
8c360 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.
8c380 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
8c3a0 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-
8c3c0 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
8c3e0 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)
8c400 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).....
8c420 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
8c440 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-
8c460 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
8c480 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))..
8c4a0 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.
8c4c0 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
8c4e0 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
8c500 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
8c520 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.
8c540 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
8c560 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
8c580 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
8c5a0 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.
8c5c0 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-
8c5e0 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
8c600 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
8c620 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
8c640 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
8c660 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.
8c680 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
8c6a0 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-
8c6c0 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
8c6e0 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
8c700 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))...........
8c720 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-//-
8c740 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
8c760 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
8c780 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
8c7a0 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
8c7c0 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
8c7e0 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
8c800 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.".
8c820 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
8c840 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
8c860 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
8c880 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)
8c8a0 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)......
8c8c0 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-//
8c8e0 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
8c900 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
8c920 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.'
8c940 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
8c960 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
8c980 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)))))..
8c9a0 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
8c9c0 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
8c9e0 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
8ca00 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
8ca20 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
8ca40 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)
8ca60 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-
8ca80 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).
8caa0 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
8cac0 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
8cae0 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.
8cb00 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
8cb20 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.-
8cb40 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
8cb60 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
8cb80 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
8cba0 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
8cbc0 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)...................
8cbe0 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
8cc00 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
8cc20 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.
8cc40 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."...
8cc60 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
8cc80 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
8cca0 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)
8ccc0 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
8cce0 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)))......
8cd00 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
8cd20 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)))..
8cd40 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
8cd60 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
8cd80 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
8cda0 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
8cdc0 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.(
8cde0 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
8ce00 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)...
8ce20 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
8ce40 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-
8ce60 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
8ce80 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
8cea0 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
8cec0 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."...
8cee0 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
8cf00 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
8cf20 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).
8cf40 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.
8cf60 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
8cf80 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.
8cfa0 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.
8cfc0 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
8cfe0 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."...(
8d000 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
8d020 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
8d040 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
8d060 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-
8d080 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
8d0a0 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).
8d0c0 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
8d0e0 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
8d100 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...........
8d120 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"..............
8d140 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
8d160 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
8d180 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
8d1a0 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
8d1c0 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.
8d1e0 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.
8d200 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
8d220 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
8d240 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
8d260 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
8d280 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
8d2a0 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
8d2c0 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
8d2e0 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
8d300 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
8d320 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.........
8d340 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
8d360 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
8d380 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
8d3a0 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)).
8d3c0 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........;
8d3e0 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
8d400 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
8d420 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
8d440 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........;
8d460 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
8d480 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......
8d4a0 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.
8d4c0 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?........((
8d4e0 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))........
8d500 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))...........
8d520 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
8d540 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
8d560 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
8d580 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
8d5a0 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
8d5c0 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)).....
8d5e0 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-
8d600 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))).
8d620 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
8d640 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.
8d660 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
8d680 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))...............
8d6a0 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))......
8d6c0 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,.
8d6e0 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
8d700 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
8d720 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
8d740 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))......
8d760 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
8d780 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))).............
8d7a0 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.......
8d7c0 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)))......
8d7e0 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
8d800 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)))............
8d820 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
8d840 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))).....................
8d860 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
8d880 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..........
8d8a0 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
8d8c0 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................
8d8e0 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
8d900 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)............................
8d920 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
8d940 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)))))........
8d960 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......
8d980 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
8d9a0 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.
8d9c0 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
8d9e0 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.
8da00 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))........
8da20 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
8da40 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)))....
8da60 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)
8da80 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
8daa0 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..........
8dac0 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))
8dae0 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)
8db00 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.
8db20 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
8db40 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)).................
8db60 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
8db80 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
8dba0 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))))..............;;.
8dbc0 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.
8dbe0 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.
8dc00 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-
8dc20 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........................
8dc40 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
8dc60 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))...........
8dc80 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
8dca0 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................
8dcc0 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
8dce0 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).........................
8dd00 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.(
8dd20 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
8dd40 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))))........
8dd60 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
8dd80 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))).................
8dda0 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
8ddc0 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
8dde0 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
8de00 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
8de20 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.(
8de40 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
8de60 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
8de80 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
8dea0 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
8dec0 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
8dee0 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
8df00 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-
8df20 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))
8df40 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.(
8df60 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
8df80 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
8dfa0 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)).....
8dfc0 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)))..
8dfe0 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
8e000 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-
8e020 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
8e040 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
8e060 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
8e080 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
8e0a0 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
8e0c0 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
8e0e0 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.(
8e100 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
8e120 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))..........
8e140 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
8e160 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......
8e180 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).........
8e1a0 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)...........
8e1c0 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-
8e1e0 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
8e200 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.(
8e220 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-
8e240 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.
8e260 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)..
8e280 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
8e2a0 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))
8e2c0 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
8e2e0 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
8e300 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
8e320 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)))).....
8e340 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.()...
8e360 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."
8e380 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
8e3a0 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)))
8e3c0 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
8e3e0 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."...
8e400 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
8e420 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))).
8e440 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.()..."
8e460 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
8e480 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
8e4a0 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))).
8e4c0 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.
8e4e0 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
8e500 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
8e520 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
8e540 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
8e560 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
8e580 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
8e5a0 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
8e5c0 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
8e5e0 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
8e600 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
8e620 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
8e640 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.
8e660 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.
8e680 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
8e6a0 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
8e6c0 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
8e6e0 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
8e700 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
8e720 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").
8e740 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
8e760 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.
8e780 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))......
8e7a0 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
8e7c0 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.
8e7e0 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
8e800 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))............(
8e820 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.'>.'<)).....
8e840 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.'<.
8e860 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
8e880 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)....
8e8a0 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....
8e8c0 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
8e8e0 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).......................
8e900 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
8e920 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))))........
8e940 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
8e960 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....
8e980 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)..
8e9a0 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
8e9c0 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)...........(
8e9e0 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))...........(
8ea00 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))......
8ea20 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)))..
8ea40 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)))..
8ea60 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
8ea80 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
8eaa0 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
8eac0 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
8eae0 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
8eb00 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))
8eb20 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.
8eb40 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..........(
8eb60 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)............
8eb80 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)
8eba0 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.
8ebc0 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.
8ebe0 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
8ec00 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
8ec20 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
8ec40 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
8ec60 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
8ec80 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
8eca0 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.(
8ecc0 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
8ece0 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)
8ed00 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)
8ed20 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.........(
8ed40 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
8ed60 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
8ed80 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
8eda0 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
8edc0 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
8ede0 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
8ee00 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).......
8ee20 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
8ee40 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
8ee60 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...
8ee80 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
8eea0 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
8eec0 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
8eee0 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))..
8ef00 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
8ef20 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-
8ef40 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
8ef60 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.
8ef80 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
8efa0 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
8efc0 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
8efe0 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."...(
8f000 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
8f020 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."\\_>").
8f040 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
8f060 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)).........
8f080 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
8f0a0 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
8f0c0 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
8f0e0 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
8f100 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))))....
8f120 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....
8f140 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
8f160 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)))
8f180 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
8f1a0 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
8f1c0 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
8f1e0 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
8f200 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
8f220 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
8f240 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
8f260 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
8f280 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
8f2a0 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
8f2c0 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-
8f2e0 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)..
8f300 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
8f320 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
8f340 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
8f360 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
8f380 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
8f3a0 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
8f3c0 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.(
8f3e0 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
8f400 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
8f420 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.
8f440 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
8f460 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
8f480 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)))
8f4a0 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
8f4c0 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.
8f4e0 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
8f500 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
8f520 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
8f540 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.
8f560 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
8f580 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.
8f5a0 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.
8f5c0 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)
8f5e0 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
8f600 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
8f620 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)))).
8f640 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.............
8f660 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)
8f680 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
8f6a0 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))).........
8f6c0 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
8f6e0 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))).........
8f700 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
8f720 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)).
8f740 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-
8f760 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
8f780 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
8f7a0 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
8f7c0 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.
8f7e0 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
8f800 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
8f820 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-
8f840 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
8f860 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
8f880 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
8f8a0 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)))...
8f8c0 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-
8f8e0 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).......;;
8f900 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,.
8f920 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.......
8f940 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)..
8f960 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
8f980 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))..
8f9a0 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)....
8f9c0 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
8f9e0 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)...........
8fa00 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
8fa20 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
8fa40 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
8fa60 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
8fa80 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-
8faa0 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).................
8fac0 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))))))..
8fae0 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
8fb00 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
8fb20 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
8fb40 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
8fb60 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
8fb80 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
8fba0 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
8fbc0 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
8fbe0 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
8fc00 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
8fc20 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
8fc40 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...........
8fc60 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
8fc80 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))..........
8fca0 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
8fcc0 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
8fce0 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..............
8fd00 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))........
8fd20 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
8fd40 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)......................
8fd60 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...
8fd80 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...............(
8fda0 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
8fdc0 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
8fde0 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.
8fe00 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
8fe20 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
8fe40 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
8fe60 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.
8fe80 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.
8fea0 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
8fec0 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
8fee0 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.(
8ff00 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
8ff20 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).....................
8ff40 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.
8ff60 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.
8ff80 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
8ffa0 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
8ffc0 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
8ffe0 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
90000 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
90020 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
90040 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)......
90060 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)
90080 0a 20 20 20 20 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
900a0 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))...............
900c0 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
900e0 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
90100 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
90120 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)......
90140 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
90160 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
90180 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)........
901a0 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)))))..(
901c0 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.()..."
901e0 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
90200 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*
90220 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
90240 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.........
90260 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
90280 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.........
902a0 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-
902c0 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
902e0 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
90300 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
90320 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
90340 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
90360 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
90380 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
903a0 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
903c0 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
903e0 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-
90400 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-
90420 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
90440 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-
90460 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
90480 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))...
904a0 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.
904c0 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-
904e0 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).........
90500 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
90520 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
90540 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))).........................
90560 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...
90580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
905a0 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.=.'().........
905c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
905e0 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)..............
90600 20 20 20 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
90620 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).................
90640 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.
90660 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
90680 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
906a0 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)..................
906c0 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
906e0 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
90700 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
90720 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
90740 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
90760 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))...............(
90780 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
907a0 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).....................
907c0 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
907e0 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)).............
90800 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
90820 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))).....
90840 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)...............
90860 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.
90880 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
908a0 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
908c0 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
908e0 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
90900 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
90920 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......
90940 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
90960 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....
90980 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).......
909a0 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
909c0 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.(
909e0 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).......
90a00 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
90a20 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.
90a40 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))........................(
90a60 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....................
90a80 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)))))....
90aa0 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)))...
90ac0 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
90ae0 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
90b00 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.
90b20 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)..
90b40 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
90b60 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-
90b80 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
90ba0 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)
90bc0 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
90be0 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
90c00 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)
90c20 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
90c40 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
90c60 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
90c80 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
90ca0 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).
90cc0 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
90ce0 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)...................
90d00 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.
90d20 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)......................
90d40 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
90d60 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
90d80 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)............
90da0 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
90dc0 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).............
90de0 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-
90e00 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
90e20 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-
90e40 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
90e60 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
90e80 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
90ea0 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
90ec0 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
90ee0 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
90f00 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}}".
90f20 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
90f40 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
90f60 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
90f80 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
90fa0 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)
90fc0 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
90fe0 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))).
91000 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).....
91020 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
91040 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
91060 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
91080 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
910a0 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
910c0 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
910e0 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.
91100 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
91120 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."...
91140 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..
91160 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
91180 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
911a0 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
911c0 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
911e0 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
91200 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))..
91220 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
91240 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))............
91260 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*.((
91280 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
912a0 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.
912c0 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))).......
912e0 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
91300 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
91320 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)).......
91340 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..........
91360 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
91380 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
913a0 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-
913c0 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
913e0 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))......
91400 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..
91420 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
91440 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)).....
91460 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-
91480 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))).............
914a0 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
914c0 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)............
914e0 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
91500 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................
91520 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-
91540 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)........
91560 20 20 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
91580 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
915a0 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
915c0 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
915e0 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.......................
91600 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..................
91620 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))))))......
91640 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.....
91660 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
91680 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).
916a0 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...........
916c0 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)...
916e0 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
91700 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))...........
91720 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
91740 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)).................
91760 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))........
91780 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
917a0 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
917c0 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
917e0 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)).............
91800 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
91820 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
91840 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
91860 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)))..........
91880 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
918a0 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.....................
918c0 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)))...
918e0 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.(
91900 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........
91920 20 20 20 20 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-
91940 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......
91960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91980 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-
919a0 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..................
919c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
919e0 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)
91a00 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 )...............................
91a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91a40 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)...
91a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91aa0 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)))).
91ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91ae0 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).
91b00 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)))..................
91b20 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..
91b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91b60 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-
91b80 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)........................
91ba0 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
91bc0 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..........
91be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91c00 20 20 20 20 20 20 20 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
91c20 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)))))..................
91c40 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
91c60 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
91c80 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
91ca0 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
91cc0 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.
91ce0 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
91d00 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
91d20 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).
91d40 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))).....(
91d60 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
91d80 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))
91da0 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
91dc0 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.............
91de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e00 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.....
91e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e60 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
91e80 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...
91ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91f00 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...................
91f20 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...................
91f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92000 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
92020 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/
92040 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
92060 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/
92080 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
920a0 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
920c0 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
920e0 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
92100 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
92120 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
92140 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).=====
92160 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
92180 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.
921a0 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
921c0 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
921e0 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
92200 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
92220 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
92240 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.====
92260 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
92280 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
922a0 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</
922c0 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
922e0 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
92300 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
92320 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.===
92340 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
92360 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
92380 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.=====
923a0 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
923c0 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
923e0 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:/
92400 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
92420 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..
92440 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](
92460 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
92480 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
924a0 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
924c0 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
924e0 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
92500 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`
92520 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
92540 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:/
92560 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
92580 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
925a0 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
925c0 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
925e0 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
92600 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
92620 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
92640 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
92660 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
92680 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
926a0 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
926c0 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
926e0 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
92700 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-
92720 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/
92740 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
92760 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
92780 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
927a0 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
927c0 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
927e0 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.
92800 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
92820 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
92840 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
92860 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
92880 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
928a0 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
928c0 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
928e0 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/
92900 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
92920 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
92940 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
92960 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
92980 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
929a0 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
929c0 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
929e0 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
92a00 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
92a20 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
92a40 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
92a60 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
92a80 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
92aa0 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
92ac0 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
92ae0 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
92b00 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
92b20 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:/
92b40 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).
92b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c00 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
92c20 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.............................
92c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c60 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
92c80 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...
92ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d00 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...................
92d20 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...................
92d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92e00 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
92e20 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
92e40 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;.-*-..
92e60 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
92e80 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
92ea0 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
92ec0 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
92ee0 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.
92f00 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
92f20 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
92f40 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
92f60 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
92f80 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)
92fa0 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
92fc0 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
92fe0 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
93000 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
93020 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
93040 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
93060 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
93080 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
930a0 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
930c0 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
930e0 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.
93100 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.
93120 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
93140 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
93160 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.
93180 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'
931a0 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...
931c0 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..
931e0 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.
93200 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
93220 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
93240 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
93260 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
93280 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.
932a0 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
932c0 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
932e0 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
93300 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
93320 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
93340 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.
93360 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
93380 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
933a0 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.
933c0 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
933e0 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
93400 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
93420 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
93440 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
93460 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
93480 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
934a0 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
934c0 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.;;
934e0 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.
93500 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
93520 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,.
93540 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
93560 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.
93580 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.
935a0 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,.
935c0 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.
935e0 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",
93600 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
93620 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
93640 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
93660 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
93680 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
936a0 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
936c0 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
936e0 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
93700 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
93720 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
93740 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
93760 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.;;
93780 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
937a0 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
937c0 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
937e0 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
93800 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
93820 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
93840 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
93860 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
93880 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").
938a0 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
938c0 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.
938e0 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
93900 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.
93920 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)........
93940 20 20 20 20 20 20 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
93960 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)).........
93980 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-
939a0 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..........................
939c0 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
939e0 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
93a00 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.
93a20 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
93a40 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
93a60 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...
93a80 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
93aa0 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.
93ac0 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
93ae0 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
93b00 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
93b20 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
93b40 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,
93b60 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
93b80 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.=.{................
93ba0 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......
93bc0 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.=.{...},....
93be0 20 20 20 20 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:
93c00 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;...............
93c20 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',.
93c40 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
93c60 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
93c80 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.=.{......
93ca0 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
93cc0 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
93ce0 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
93d00 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.
93d20 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
93d40 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.=.
93d60 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.......},.......
93d80 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...:
93da0 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).
93dc0 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
93de0 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.
93e00 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
93e20 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
93e40 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.
93e60 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
93e80 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
93ea0 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...:
93ec0 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-
93ee0 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..
93f00 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
93f20 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
93f40 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"
93f60 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".....................
93f80 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"))
93fa0 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
93fc0 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
93fe0 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.")..(
94000 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.
94020 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."[-+*/%<>&^|?:.]\\([^-
94040 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 +*/.]\\|$\\)\\|!?=\\|"..........
94060 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"
94080 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
940a0 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
940c0 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
940e0 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
94100 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.'(
94120 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)..
94140 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
94160 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.")..
94180 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
941a0 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
941c0 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
941e0 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
94200 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
94220 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
94240 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
94260 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................
94280 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
942a0 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)).................
942c0 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)))).....
942e0 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)..........
94300 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..........
94320 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."\\(\\=\\|[^\\]\\|^
94340 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)))....
94360 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-
94380 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))...........
943a0 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
943c0 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.(
943e0 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
94400 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
94420 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).?\*)))..............(
94440 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."\\*/"))......
94460 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
94480 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
944a0 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))..
944c0 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
944e0 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
94500 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
94520 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.`
94540 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
94560 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
94580 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.(
945a0 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
945c0 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
945e0 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
94600 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
94620 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.
94640 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
94660 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.(-.
94680 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
946a0 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
946c0 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
946e0 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......
94700 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).......
94720 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
94740 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))))))
94760 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
94780 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
947a0 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.
947c0 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
947e0 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)
94800 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
94820 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
94840 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.((
94860 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
94880 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
948a0 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
948c0 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
948e0 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)).......
94900 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)............
94920 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)))....
94940 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).....
94960 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
94980 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).?*)))..
949a0 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.
949c0 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.........
949e0 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))))))
94a00 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
94a20 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
94a40 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
94a60 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
94a80 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
94aa0 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
94ac0 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
94ae0 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
94b00 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..
94b20 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)......
94b40 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
94b60 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))........
94b80 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).............
94ba0 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.
94bc0 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)))........
94be0 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).............
94c00 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
94c20 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
94c40 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
94c60 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
94c80 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
94ca0 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
94cc0 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
94ce0 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
94d00 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
94d20 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
94d40 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
94d60 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
94d80 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
94da0 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-
94dc0 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
94de0 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)...................
94e00 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).??))))........(
94e20 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-
94e40 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
94e60 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.
94e80 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)).?/))))........(
94ea0 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-
94ec0 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
94ee0 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
94f00 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
94f20 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."\\*.*\\(?:\\[\
94f40 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 \|".............................
94f60 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.....
94f80 20 20 20 20 20 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 .............................".*
94fa0 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
94fc0 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
94fe0 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
95000 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
95020 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
95040 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
95060 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
95080 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
950a0 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.()
950c0 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
950e0 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."
95100 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-
95120 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
95140 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
95160 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).'(?-.?+))).
95180 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..............
951a0 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)))..
951c0 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
951e0 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
95200 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))).....
95220 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))...
95240 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
95260 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)...
95280 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."\\*\\|\\
952a0 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
952c0 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.()..
952e0 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
95300 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
95320 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
95340 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
95360 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
95380 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
953a0 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
953c0 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
953e0 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
95400 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
95420 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
95440 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]*}").
95460 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]
95480 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.
954a0 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
954c0 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
954e0 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-
95500 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-
95520 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.
95540 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.(
95560 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
95580 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.
955a0 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]*
955c0 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)....................
955e0 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)
95600 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)))...............(
95620 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\\_
95640 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
95660 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..............
95680 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
956a0 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))..................
956c0 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
956e0 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
95700 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
95720 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.
95740 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
95760 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
95780 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
957a0 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
957c0 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
957e0 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)
95800 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
95820 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
95840 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
95860 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
95880 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)....
958a0 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))
958c0 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
958e0 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
95900 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)...................
95920 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))..................
95940 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))).........
95960 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...
95980 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
959a0 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)........................
959c0 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).?,)......
959e0 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
95a00 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).?\;))........
95a20 20 20 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
95a40 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.".").....
95a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
95a80 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
95aa0 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)............................
95ac0 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)).....
95ae0 20 20 20 20 20 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
95b00 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).?\;)))......
95b20 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
95b40 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
95b60 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
95b80 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
95ba0 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)))).
95bc0 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
95be0 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)...........
95c00 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)).......
95c20 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)))))))..
95c40 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
95c60 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
95c80 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.
95ca0 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.
95cc0 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
95ce0 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
95d00 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.
95d20 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
95d40 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.......(
95d60 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
95d80 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
95da0 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
95dc0 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."{")).................
95de0 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
95e00 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)..................(
95e20 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."[{([]")).......
95e40 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...............
95e60 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).............
95e80 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).?\
95ea0 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-
95ec0 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.
95ee0 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
95f00 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))............
95f20 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."
95f40 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)))...........
95f60 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)))....
95f80 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
95fa0 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
95fc0 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]*").......
95fe0 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
96000 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))).....................
96020 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
96040 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)...........
96060 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)
96080 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)...........................(
960a0 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)
960c0 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
960e0 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
96100 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
96120 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
96140 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
96160 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
96180 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
961a0 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.
961c0 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
961e0 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..
96200 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
96220 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.(
96240 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
96260 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
96280 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-
962a0 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
962c0 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
962e0 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
96300 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
96320 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
96340 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).................
96360 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).?,).;.
96380 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...................
963a0 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"))......
963c0 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.
963e0 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
96400 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
96420 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
96440 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.
96460 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
96480 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
964a0 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\
964c0 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).....................
964e0 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
96500 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
96520 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
96540 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))))...............
96560 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)).
96580 20 20 20 20 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
965a0 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)))))..............
965c0 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))))))))..(
965e0 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
96600 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
96620 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
96640 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
96660 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.
96680 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
966a0 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
966c0 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
966e0 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.
96700 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).......
96720 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-
96740 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
96760 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.
96780 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
967a0 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
967c0 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
967e0 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
96800 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
96820 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
96840 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-
96860 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)....
96880 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
968a0 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.
968c0 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
968e0 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.
96900 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-
96920 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
96940 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)...
96960 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
96980 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
969a0 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
969c0 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
969e0 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
96a00 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
96a20 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)..
96a40 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
96a60 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
96a80 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............
96aa0 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.......
96ac0 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............
96ae0 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
96b00 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
96b20 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
96b40 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
96b60 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
96b80 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)............
96ba0 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))....
96bc0 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)...........
96be0 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)))...........
96c00 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......
96c20 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)........
96c40 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
96c60 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..
96c80 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
96ca0 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
96cc0 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
96ce0 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
96d00 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."
96d20 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-
96d40 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
96d60 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
96d80 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
96da0 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)))...
96dc0 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
96de0 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
96e00 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
96e20 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.............................
96e40 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\\_>[^:]"
96e60 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 )...............................
96e80 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:")
96ea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
96ec0 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.............
96ee0 20 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
96f00 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).....................
96f20 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
96f40 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).'(?,.?{)))))))........
96f60 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
96f80 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))............(
96fa0 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
96fc0 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.......
96fe0 20 20 20 20 20 20 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
97000 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)))
97020 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
97040 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
97060 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
97080 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.
970a0 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
970c0 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
970e0 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
97100 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))......
97120 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
97140 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))......
97160 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
97180 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............................(
971a0 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)..................
971c0 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
971e0 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
97200 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-
97220 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-
97240 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)).........
97260 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
97280 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
972a0 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)).....
972c0 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)........
972e0 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
97300 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
97320 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]*\\(/[/*]\\
97340 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
97360 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.".\
97380 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)")..........................
973a0 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.")"))........
973c0 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))...........
973e0 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)...........
97400 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
97420 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
97440 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
97460 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....................
97480 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))...........
974a0 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...
974c0 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
974e0 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))
97500 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......
97520 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
97540 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))))......
97560 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-
97580 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-
975a0 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)................
975c0 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\\_>"
975e0 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
97600 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)
97620 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.
97640 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
97660 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
97680 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
976a0 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
976c0 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)......
976e0 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
97700 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
97720 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
97740 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."...(
97760 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
97780 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
977a0 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
977c0 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
977e0 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
97800 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
97820 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.
97840 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
97860 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
97880 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.
978a0 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..........;;
978c0 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
978e0 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.....
97900 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
97920 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
97940 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.....................
97960 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)
97980 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).(
979a0 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..................
979c0 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
979e0 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)..............................
97a00 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
97a20 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
97a40 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
97a60 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
97a80 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-
97aa0 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
97ac0 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
97ae0 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
97b00 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.
97b20 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
97b40 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
97b60 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
97b80 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
97ba0 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
97bc0 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.
97be0 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
97c00 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
97c20 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
97c40 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
97c60 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
97c80 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
97ca0 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
97cc0 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
97ce0 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
97d00 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
97d20 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
97d40 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
97d60 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.
97d80 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.
97da0 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).....(
97dc0 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
97de0 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..
97e00 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
97e20 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
97e40 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)...;
97e60 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 .(..............................
97e80 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))..;.,.
97ea0 20 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
97ec0 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)).
97ee0 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..
97f00 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.">\\|
97f20 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
97f40 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
97f60 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
97f80 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
97fa0 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
97fc0 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
97fe0 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
98000 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/
98020 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
98040 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'.
98060 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.
98080 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
980a0 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
980c0 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.
980e0 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.`
98100 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
98120 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
98140 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
98160 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.
98180 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.
981a0 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
981c0 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
981e0 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
98200 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.().{.....
98220 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
98240 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>.....);..}.
98260 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.
98280 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
982a0 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\\=
982c0 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
982e0 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
98300 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-
98320 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
98340 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
98360 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-
98380 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
983a0 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
983c0 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
983e0 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
98400 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
98420 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)........
98440 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
98460 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
98480 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)
984a0 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
984c0 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
984e0 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).;.<..............
98500 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...
98520 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.(
98540 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
98560 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
98580 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
985a0 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
985c0 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)..............
985e0 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
98600 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
98620 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.
98640 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
98660 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
98680 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
986a0 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).......
986c0 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
986e0 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-
98700 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
98720 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
98740 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..
98760 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
98780 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)........................(
987a0 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
987c0 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)))...
987e0 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
98800 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
98820 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)....
98840 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
98860 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
98880 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
988a0 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)..
988c0 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
988e0 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)
98900 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.............
98920 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
98940 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.........
98960 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
98980 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"
989a0 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
989c0 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...............;;
989e0 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.......
98a00 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
98a20 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.....
98a40 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
98a60 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
98a80 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
98aa0 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-
98ac0 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)..............
98ae0 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)
98b00 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
98b20 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.
98b40 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))...
98b60 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
98b80 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
98ba0 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
98bc0 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-
98be0 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).....
98c00 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
98c20 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
98c40 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
98c60 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))...........
98c80 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
98ca0 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)...............
98cc0 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
98ce0 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
98d00 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
98d20 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).;.{.............
98d40 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
98d60 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.
98d80 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
98da0 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))...
98dc0 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
98de0 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
98e00 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
98e20 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
98e40 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)..............
98e60 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....................((
98e80 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
98ea0 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)...................
98ec0 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
98ee0 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).................
98f00 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-
98f20 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)))).....................(<.
98f40 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
98f60 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)))....
98f80 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
98fa0 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.......
98fc0 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)).
98fe0 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
99000 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)........
99020 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
99040 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
99060 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
99080 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
990a0 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
990c0 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
990e0 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
99100 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
99120 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
99140 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
99160 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.
99180 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
991a0 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
991c0 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
991e0 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
99200 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.
99220 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
99240 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
99260 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))
99280 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
992a0 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
992c0 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.
992e0 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
99300 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
99320 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
99340 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.....
99360 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
99380 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'
993a0 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......(
993c0 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).....
993e0 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
99400 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
99420 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)...............
99440 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
99460 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)).............
99480 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
994a0 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.
994c0 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
994e0 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
99500 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
99520 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
99540 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.....
99560 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
99580 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).
995a0 20 20 20 20 20 20 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 ..............................(+
995c0 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))).
995e0 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
99600 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
99620 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
99640 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
99660 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
99680 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
996a0 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.
996c0 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
996e0 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
99700 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.(
99720 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)))..
99740 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
99760 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
99780 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))...
997a0 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
997c0 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
997e0 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
99800 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
99820 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....
99840 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
99860 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
99880 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
998a0 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-
998c0 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
998e0 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
99900 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
99920 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
99940 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
99960 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..............
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 ................................